Lokalny edytor inwentarza z serwerowym generowaniem DOCX, CSV i HTML.
C#.NET 10JavaScriptOpenXMLDocker
89%ukończenia
01
Bieżący kierunek
Teraz
Odbiór wdrożenia Inventory i sprzątanie zakończone. Zasoby testowe usunięte, dowody zachowane, PR #30 scalony; produkcja pozostaje na przyjętym 6971496.
Następnie
Kontynuować wspólne zadania platformy: monitoring i alerty, izolację edge w tym samym colo, zakres poświadczeń i hardening. Nie potrzeba kolejnej próby obciążenia Inventory ani wdrożenia tylko dla sprzątania.
02
Zadania
Implementacja100%
Dokończyć UI i zabezpieczenia eksportu
Accepted recovery/legacy migration/raw backup fixes merged and deployed. Real HTTP 50k-cell/near-2MiB CSV, HTML and DOCX correctness and invalid-payload bounds pass on the CI image. No unlimited-load or complete OOM-safety claim.
Jakość100%
Rozbudować testy eksportu i przeglądarki
https://github.com/SzczepanGrela/inventory-generator/actions/runs/37574806859: 84 .NET (zero skips), 34 Python, 12 browser suites; Container, fixable HIGH/CRITICAL scan, attestation, Quality, release preflight and Production all pass. Accepted independent browser recovery/migration tests retained. Local CI-image HTTP qualification: 38 baseline + 59 repeat requests at 1 CPU/512 MiB, valid DOCX/CSV/HTML structures, expected 400/413/429, zero OOM. Worst cgroup peak 469.61 MiB, health up to 2.0571 s in a burst; bounded evidence only.
Jakość100%
Włączyć ruleset i wymagane Quality
October 3 coordinator installed/read back active ruleset 24407679: main requires PR, strict GitHub Actions Quality gate, thread resolution, no force-push/deletion/bypass. Existing production environment requires owner approval, main only; self-review allowed.
Dokumentacja100%
Udokumentować migrację Coolify i znane ograniczenia
Corrected runbooks and release implementation merged. Normal protected release, selected runtime, public clients/headers, isolated health gate, controlled rollback and final bounded rolling workload are accepted. All eight structures and normal baseline retirement passed in the final October 9 attempt; cleanup was pending at that checkpoint. Earlier incomplete attempts and runner warning retain their original scope. October 10 operator confirmation and selected Docker/public-health readbacks accept temporary app, dedicated network/destination and empty-project cleanup. Full passing JSONL archived and verified privately. PR #30 merged October 11 as 672d160 retires exercise tools and records acceptance; production remains 6971496. No repeat drill required.
Wdrożenie85%
Uruchomić DNS, TLS i trzy warstwy limitów
Three slots, no waiting, weighted per-client budgets retained. Local capped HTTP overload/recovery passed; worst peak 469.61/512 MiB without OOM. October 8 public paired run: VPS 13/30 exports passed, 17 application DOCX 429s with Retry-After, recovery 200; observer 12/12 passed, eight during the regular VPS series. Forged X-Forwarded-For remained application 429; forged CF-Connecting-IP received public-path 403, not an observed origin response. October 9 final bounded rolling workload passed at three slots/no queue and intended per-instance limits; process-local overlap accepted for that scope. Same-colo edge isolation remains open.
Wdrożenie100%
Publikować i wdrażać obraz po digestcie
Final 6971496 CI publishes/tests/attests digest sha256:7b9853fa84e67a53d332b0b2ec67c5e0690f97c2c8b8ab3f654d6689440a825e; run 37574806859 deploys it successfully via protected production. Public revision and frontend match. Stale unstarted October 3 deployment cancelled to unblock main queue.
Wdrożenie100%
Odebrać rolling update z bramką zdrowia i odzyskiwanie w ustalonym zakresie
Normal protected release passed at 6971496. Isolated health gate run 37892036349 and controlled failed-smoke rollback run 37894951905 restored the exact prior image, with healthy-before-stop ordering and export smoke. Final October 9 bounded canary rolling run validated eight CSV/HTML/DOCX outputs, old SIGTERM/exit 0 and sole healthy replacement; 51 successful health probes per app, no guard rejection. All exercise gates passed; cleanup was pending at that checkpoint. One earlier runner warning remains unexplained; no zero-downtime claim. October 10 operator confirmation and selected Docker/public-health readbacks accept temporary app, dedicated network/destination and empty-project cleanup. Full passing JSONL archived and verified privately. PR #30 merged October 11 as 672d160 retires exercise tools and records acceptance; production remains 6971496. No repeat drill required. October 20 clarification: migration/first routing may use downtime; final scope includes health-gated rolling, functional smoke, scoped rollback and necessary-data backups/recovery. Stable ID and historical progress/effort retained; no new live acceptance.
Wdrożenie35%
Podłączyć usługę do centralnego monitoringu
Validation logs now use bounded reason codes/counts, with three integration regressions checking submitted names do not appear. Duration/outcome hooks retained. Central integration, delivered alerts and client-IP retention review remain separate acceptance work. Final-operation backup-failure visibility remains applicable to protected datasets; no numeric uptime SLA.
Wdrożenie95%
Zautomatyzować promocję digestu sprawdzonego w CI
Final integrated main Quality -> attested digest -> protected Coolify production succeeded in run 37574806859. Private access/contract/serialization retained; live recovery tests and credential scope review are separate.
Wdrożenie65%
Zweryfikować runtime i rozwiązać wyjątki parsera
Selected operator post-release inspect, recorded October 8, confirms 6971496, non-root, 1 CPU/512 MiB, no extra swap allowance, capability removal, init, isolated network, bounded local logging and exact trusted proxies. PID/security options remain absent and rootfs writable; parser exception remains. This sample does not refresh mounts/tmpfs or process flags.
Dokumentacja70%
Zweryfikować favicon, metadane i dostępny podgląd
Combined browser CI covers PL/EN/ARIA recovery, mobile viewport, keyboard modal focus and exports; public frontend matches 6971496. Representative preview/licensing acceptance remains separate; no blanket WCAG claim.
Jakość0%
Uporządkować śledzone pliki, historię i neutralne nazwy branchy
Planned by owner on 2026-10-17; no repository hygiene audit or cleanup performed. Inventory tracked/ignored/generated/sensitive files; preserve legitimate assets and work; prepare scoped removal/ignore rules, prevention checks and agent-free branch names. Review historical removal separately, with exact paths/refs, isolated rehearsal, SHA/release impact and explicit rewrite approval. Do not rename active branches or rewrite now. Standard and acceptance: https://github.com/SzczepanGrela/grela-dev-roadmap/blob/main/docs/repository-hygiene-standard.md . Initial 2–4 h covers discovery/routine cleanup planning and implementation only when assigned; rewrite/large remediation requires re-estimation.
03
Zgodność ze standardem v2
Profil: Aplikacja webowa na VPS · audyt 2026-10-11
Zarządzanie repozytorium
Częściowe
Scalenia przez PR z wymaganym Quality; bez obchodzenia ochrony. Cel dopisany 17 października: porządki repo i neutralne nazwy branchy niezweryfikowane; wcześniejsze ustalenia zachowują własne daty.
Udokumentować migrację Coolify i znane ograniczenia
Uporządkować śledzone pliki, historię i neutralne nazwy branchy
Quality CI
Gotowe
Wspólne CI i ograniczone testy HTTP/cgroup końcowego obrazu przeszły; odbiór operacyjny jest osobny.
Niezmienne wydanie
Gotowe
Ten sam przetestowany i poświadczony digest wdrożony przez run 37574806859, rewizja 6971496.
Dostęp wdrożeniowy
Częściowe
Uwierzytelnienie produkcji przez prywatne Coolify/Tailscale przeszło; przegląd zakresu uprawnień pozostaje osobny.
Zautomatyzować promocję digestu sprawdzonego w CI
Sieć, TLS i tożsamość klienta
Częściowe
8 października przeszły równoległe testy klientów i próby podrobienia nagłówków. Źródła trafiają do różnych lokalizacji edge; rozdzielenie IP w tej samej lokalizacji pozostaje niepotwierdzone. Starsze dowody sieci/TLS zachowują datę.
Uruchomić DNS, TLS i trzy warstwy limitów
Ochrona przed nadużyciami
Częściowe
Lokalne HTTP pod limitami, publiczne testy klientów/retry/nagłówków i końcowy test rolling przeszły. Trzy sloty bez kolejki i krótki overlap niezależnych liczników przyjęte przy zmierzonych limitach. Izolacja edge w tej samej lokalizacji pozostaje otwarta; pomiary nie eliminują przyszłego ryzyka OOM.
Dokończyć UI i zabezpieczenia eksportu
Uruchomić DNS, TLS i trzy warstwy limitów
Bezpieczeństwo runtime
Częściowe
Wybrany inspect nowego kontenera potwierdza rewizję, limity, użytkownika non-root, cap-drop, init i rotację logów. Brakujące zabezpieczenia PID/security/read-only pozostają wyjątkiem parsera; nieodczytane pola zachowują starszą datę.
Zweryfikować runtime i rozwiązać wyjątki parsera
Readiness i preflight
Gotowe
Końcowy obraz przeszedł ograniczone HTTP/readiness, preflight i publiczny smoke; bez gwarancji opóźnienia przy dowolnym obciążeniu.
Zarządzane wydanie i odzyskiwanie
Gotowe
Zwykłe wdrożenie, odrzucenie niezdrowego kandydata, kontrolowany failed-smoke rollback do dokładnego obrazu i ograniczony test rolling przeszły. Jedno wcześniejsze ostrzeżenie runnera pozostaje niewyjaśnione; przyjęto przetestowane ścieżki dostawy i odzyskiwania, bez gwarancji zerowego downtime. 20 października: przerwa dozwolona na migrację/bootstrap; docelowe wymagania wdrożeń/odzyskiwania pozostają. Status nie oznacza nowego odbioru runtime.
Koordynacja i retencja
Gotowe
Zachowano serializację wdrożeń i retencję; ograniczony overlap przyjęty. Operator potwierdził usunięcie zasobów testowych; zapisano brak kontenerów/sieci i zdrowie po sprzątaniu. Dowody zarchiwizowane, PR #30 usuwa narzędzia ćwiczeń. Obraz produkcyjny zachowany.
Obserwowalność
Częściowe
Uznano ograniczone logi reason-code i regresje braku przesłanych nazw; integracja centralna, retencja i dostarczanie alertów pozostają otwarte.
Podłączyć usługę do centralnego monitoringu
Tożsamość webowa
Częściowe
CI PL/EN, mobile i klawiatury przechodzi na scalonym kodzie; publiczny app.js zgodny. Pozostają podgląd/licencje.
Zweryfikować favicon, metadane i dostępny podgląd
04
Decyzje
Zachować bezstanową architekturę local-first.
Stosować limity per format oraz limity body, rekordów i współbieżności.
Projekt podlega profilowi standardu v2: vps-web.
Używać digestów GHCR z Coolify/Traefik/Tunnel. Sukces ręcznego deployu nie oznacza automatycznego CD, zaufanego IP ani rollbacku.
Czasowo pominąć no-new-privileges w Custom Docker Options z powodu odtworzonego błędu 4.3.14; sprawdzić efektywne ustawienia i wrócić do rozwiązania przez Compose lub aktualizację.
Zachować liczniki procesu dla jednej zwykłej instancji i krótkiego rolling dwóch instancji przy limitach przetestowanych 9 października: trzy sloty bez czekania, 1 CPU/512 MiB na kontener. Warunek pomiarów spełniony; stałe repliki lub większe limity wymagają nowej oceny. Brak wspólnego licznika.
Doprecyzowanie 20 października: przerwy są dozwolone podczas przygotowania, pierwszego wdrożenia i migracji. Docelowy Coolify nadal wymaga rolling update z bramką zdrowia i backupów potrzebnych danych/konfiguracji/kluczy z proporcjonalnym sprawdzeniem odtworzenia. Bez liczbowego SLA, stałych replik i HA wielu hostów. Dla projektów stateless/statycznych/bez serwera stosować właściwy zakres hostingu i danych. Zachować dane, harmonogramy kopii i zabezpieczenia wdrożeń. To plan, nie nowy odbiór ani estymacja; docs/operating-standard.md obejmuje też przyszłe repozytoria.