501 lines
26 KiB
Plaintext
501 lines
26 KiB
Plaintext
✔ F2.1 exige GPS del dispositivo al crear Inventario en campo (3.429956ms)
|
||
✔ F2.1 exige GPS del dispositivo en cada fotografía de campo (1.030084ms)
|
||
✔ F2.1 deriva Área y Operadora desde la Inspección y usa el asset anidado del alta provisional (0.33378ms)
|
||
✔ F2.1 bloquea hallazgos sobre altas de campo hasta tener GPS y foto (0.270432ms)
|
||
✔ D5.2 versions every catalog item and keeps versions append-only (6.384197ms)
|
||
✔ D5.2 catalog administration captures audit and immutable revisions (4.180662ms)
|
||
✔ D3 catalog contains 19 categories and 170 unique finding templates (0.913394ms)
|
||
✔ D3 catalog records the repaired shifted pump row (0.293879ms)
|
||
✔ inspection act endpoints separate reading, creation, editing and cancellation (1.216907ms)
|
||
✔ inspection act DTO accepts urgency, content and selected visit assets (5.840956ms)
|
||
✔ inspection act DTO rejects duplicate assets (1.110755ms)
|
||
✔ cancellation requires a meaningful reason (0.439911ms)
|
||
✔ multi-act guard allows a new act when the inspection has no draft act (0.68808ms)
|
||
✔ multi-act guard blocks only a second draft act for the same inspection (0.484039ms)
|
||
✔ F4 closing endpoints separate read, lock, sign and seal permissions without reopen (1.858206ms)
|
||
✔ D5 canonical JSON sorts object keys recursively and preserves array order (13.102011ms)
|
||
✔ D5 canonical JSON serializes dates as ISO-8601 (0.299507ms)
|
||
✔ D5 present responsible requires identity and position (6.374311ms)
|
||
✔ D5 absent responsible and company outcome require a detailed reason (0.934997ms)
|
||
✔ D5 signature DTO transforms multipart consent and coordinates (0.941777ms)
|
||
✔ D5 signature accepts only PNG content and MIME (1.69017ms)
|
||
✔ D5 signature rejects empty and oversized files (0.657715ms)
|
||
✔ D5 migration protects signatures, frozen findings and sealed acts (11.806093ms)
|
||
✔ D4 evidence endpoints separate reading and creation (8.901288ms)
|
||
✔ D4 communications endpoints separate reading and creation (0.127615ms)
|
||
✔ D4 evidence DTO transforms multipart coordinates and accepts a communication link (17.840655ms)
|
||
✔ D4 communication DTO accepts a company response and normalizes text (5.914019ms)
|
||
✔ D4 communication DTO rejects invalid email and date (0.848225ms)
|
||
✔ D4 evidence detects content by magic bytes (0.866243ms)
|
||
✔ D4 evidence rejects executable text, mismatches and oversize files (1.673835ms)
|
||
✔ D4 migration makes evidence and communications append-only for runtime (7.90005ms)
|
||
✔ F4 finding endpoints separate catalog, content and closure while mutable follow-up is retired (1.708457ms)
|
||
✔ finding DTO accepts catalog findings with a correction deadline (6.266867ms)
|
||
✔ custom findings require a title and reject malformed dates (3.34744ms)
|
||
✔ follow-up DTO keeps company response and verification planning as separate dates (0.581708ms)
|
||
✔ global finding filters accept the two operational work queues (0.605193ms)
|
||
✔ finding close DTO requires a meaningful conclusion (2.289394ms)
|
||
✔ catalog category DTO normalizes the immutable code (0.45799ms)
|
||
✔ catalog item DTO accepts nullable reference fields and normalizes its code (0.514315ms)
|
||
✔ catalog item update rejects an empty title and invalid source number (1.832228ms)
|
||
✔ D5.3.13 separates company response due dates from verification due dates (0.77913ms)
|
||
✔ D5.3.13/F4 exposes the global worklist and controlled finding closure (0.134776ms)
|
||
✔ D5.3.15 separates report consultation from report generation (1.0421ms)
|
||
✔ D5.3.16 separates queue consultation from office verification planning (1.343121ms)
|
||
✔ D5.3.17 reserves verification result capture for field execution (0.09832ms)
|
||
✔ F4 inspection endpoints separate reading, planning, assignment and execution (1.554163ms)
|
||
✔ visit DTO accepts only the minimum planning data required for quick creation (3.881786ms)
|
||
✔ visit update DTO keeps Area, Yacimiento and Operadora immutable after creation (1.705003ms)
|
||
✔ asset and team DTOs reject duplicate references (0.606336ms)
|
||
✔ status DTO accepts controlled states and rejects unknown transitions at input (0.292406ms)
|
||
✔ D5.1/F4 applies the mobile-inspector policy to every field operation (7.760967ms)
|
||
✔ D5.1 leaves company follow-up outside the field-operation gate (4.584499ms)
|
||
✔ D5.1 migration grants operational permissions only to inspector (3.426731ms)
|
||
✔ operational inspection writes reject web cookie sessions (2.77034ms)
|
||
✔ operational inspection writes reject non-inspector bearer users (0.170008ms)
|
||
✔ operational inspection writes accept inspector bearer users (0.179544ms)
|
||
✔ PasswordService hashes with Argon2id and verifies safely (544.690056ms)
|
||
✔ PasswordService performs dummy verification for unknown users (149.788182ms)
|
||
✔ PermissionsGuard leaves handlers without requirements available (1.019707ms)
|
||
✔ PermissionsGuard gives explicit public metadata priority (0.115616ms)
|
||
✔ PermissionsGuard returns 401 when required permissions have no principal (0.573095ms)
|
||
✔ PermissionsGuard returns 403 when any required permission is missing (0.354321ms)
|
||
✔ PermissionsGuard requires changing a temporary password first (0.26898ms)
|
||
✔ PermissionsGuard authorizes when class and handler permissions are granted (0.148277ms)
|
||
✔ PermissionsGuard applies class requirements to every handler (0.117761ms)
|
||
✔ D5.3.15/F4 exposes global acts and report emission after an Act is SEALED (1.856795ms)
|
||
✔ D5.3.15/F4 freezes the immutable sealed Act snapshot as the INF source (0.504641ms)
|
||
✔ D5.3.15 frozen source guarantees survive while F4 expands report workflow states (0.377156ms)
|
||
✔ D5.3.16/F4 builds the verification queue from the next control date and unresolved latest result (0.764437ms)
|
||
✔ D5.3.16 creates one draft verification visit for one company and area (0.336794ms)
|
||
✔ D5.3.16 prevents an open finding from being scheduled into two active verification visits (0.16363ms)
|
||
✔ D5.3.16 exposes linked findings in the created visit (0.104489ms)
|
||
✔ D5.3.16 migration adds traceable verification links and an office planning permission (0.127645ms)
|
||
✔ D5.3.17 records one controlled field result for a linked verification finding (0.898312ms)
|
||
✔ D5.3.17 preserves the original target and only reschedules when explicitly requested (0.237943ms)
|
||
✔ D5.3.17 links verification photos to the verification visit (0.148858ms)
|
||
✔ F4 requires every linked verification result before closing the inspection, not before locking one act (0.199265ms)
|
||
✔ D5.3.17 moves verified conforming findings into an office ready-to-close queue (0.136078ms)
|
||
✔ D5.3.17 migration adds verification outcome and verification evidence linkage (0.225223ms)
|
||
✔ D5.3.18.3 separates finding closure from general follow-up permission (0.958423ms)
|
||
✔ D5.3.18.3 keeps the first company response immutable and requires later presentations in history (0.164552ms)
|
||
✔ D5.3.18 exposes one server-side office workflow for the finding dossier (0.868637ms)
|
||
✔ D5.3.18 preserves administrative and operational dates as independent fields (0.149108ms)
|
||
✔ D5.3.19 adds one searchable common name without replacing technical identity (0.857028ms)
|
||
✔ D5.3.19 stores the administrative response rule and its immutable base (0.186174ms)
|
||
✔ D5.3.19 exposes company area inspector and date filters across operational lists (0.291324ms)
|
||
✔ F1.1 supersedes the historical single-act rule while retaining the D5.3.19 filters (0.13772ms)
|
||
✔ D5.3.19 does not introduce the contextual finding catalog before its office definition (0.205614ms)
|
||
✔ D5.3.20/F4 freezes one report from each sealed act and generates its Word artifact (1.099288ms)
|
||
✔ D5.3.20 stores an integrity-checked Word artifact without changing the frozen source snapshot (0.208889ms)
|
||
✔ D5.3.20 builds OOXML Word from the frozen act snapshot without external document dependencies (0.199234ms)
|
||
✔ F4 keeps report generation act-scoped while findings and inspection lifecycle remain independent (0.133334ms)
|
||
✔ D5.3.21/F4 stores configurable recipients without hardcoding addresses and retires Director delivery (2.751551ms)
|
||
✔ D5.3.21 creates an immutable act PDF and separates its delivery from the editable INF Word (0.225315ms)
|
||
✔ D5.3.21 keeps an auditable retryable outbox with explicit waiting states (0.128236ms)
|
||
✔ F4 SMTP can be administered in database while retaining environment fallback (0.954266ms)
|
||
✔ D5.3.21/F4 delivery stays act-scoped after multiple acts per inspection (0.612635ms)
|
||
✔ D5.3.22 revision ledger is retained as historical INF versioning (1.418486ms)
|
||
✔ F4 explicitly retires Director review approval and final-signature state (0.326709ms)
|
||
✔ F4 removes active Director endpoints but preserves historical signature evidence (0.523599ms)
|
||
✔ F4 replaces Director approval with editable INF then immutable GEDO IF officialization (0.163971ms)
|
||
✔ F4 delivery has no Director recipient while preserving company office and inspector copies (0.104389ms)
|
||
✔ F4 Director-retirement rollback reconstructs schema and RBAC contract without inventing deleted data (0.151453ms)
|
||
✔ F4 document workflow changes do not reopen acts or mutate finding history (0.188067ms)
|
||
✔ D5.3.23 records field discoveries as auditable provisional inventory records (1.90589ms)
|
||
✔ D5.3.23 only lets a mobile assigned inspector create during an active visit (0.15722ms)
|
||
✔ F1.1 preserves D5.3.23 field discovery while linking only to the current draft act (0.259637ms)
|
||
✔ D5.3.23 office review can approve match or reject without deleting historical objects (0.846662ms)
|
||
✔ D5.3.23 preserves immutable inspection history when matching an existing inventory object (0.972884ms)
|
||
✔ D5.3.24 stores parent area and operator as explicit non-overlapping temporal context (4.561793ms)
|
||
✔ D5.3.24 reconstructs previous context from immutable asset versions during migration (0.178853ms)
|
||
✔ D5.3.24 separates ordinary editing from an audited context transfer (0.147896ms)
|
||
✔ D5.3.24 closes the previous interval and appends the replacement without deleting history (0.354802ms)
|
||
✔ D5.3.24 temporal reconstruction resolves context by effective validity at the requested instant (0.125621ms)
|
||
✔ D5.3.25 creates an append-only verification event ledger and reconstructs prior history (1.342089ms)
|
||
✔ D5.3.25 records every office control-date change without replacing historical events (0.698776ms)
|
||
✔ D5.3.25 makes one field result immutable and appends its result event (0.227937ms)
|
||
✔ D5.3.25 preserves successive verification visits as separate historical attempts (0.254849ms)
|
||
✔ D5.3.25 exposes the complete verification history through finding detail and a dedicated endpoint (0.481715ms)
|
||
✔ D5.3.3 separates operational state from data quality and adds registry structures (7.431705ms)
|
||
✔ D5.3.3 keeps physical hierarchy separate from legal and organizational relations (2.708555ms)
|
||
✔ D5.3.3 only accepts OPERATOR relations for exclusive asset assignment (2.094377ms)
|
||
✔ D5.4.1 exports controller-visible selection views so Nest declaration build can name them (0.709313ms)
|
||
✔ D5.4 models type applicability and concrete Inventory exceptions separately (0.818179ms)
|
||
✔ D5.4 exposes only applicable catalog items and enforces the same rule on field creation (0.212656ms)
|
||
✔ D5.4 stores suggested and actual severity independently on the 1 to 10 scale (0.122607ms)
|
||
✔ D5.4 turns OTHER into an office proposal without rewriting the original finding (0.114915ms)
|
||
✔ D5.4 keeps contextual catalog administration in office permissions and audited routes (0.096357ms)
|
||
✔ D5.5 stores explicit Area and Operator context plus append-only checklist generations (1.2584ms)
|
||
✔ D5.5 exposes Area then active OPERATOR choices and a server-generated planning checklist (0.263532ms)
|
||
✔ D5.5 classifies antecedents overdue items and next controls while adding actionable assets automatically (0.218865ms)
|
||
✔ D5.5 treats manual additions as preventive and requires an auditable reason for exclusions (0.380009ms)
|
||
✔ D5.5/F4 keeps verification visits inside the Area Operator contract and start remains APK-only (0.215359ms)
|
||
✔ D5.5/F4 requires a current checklist before planning or start and keeps start under mobile policy (0.178252ms)
|
||
✔ D5.6.1 exposes controlled administrative password reset with the existing user-update permission (3.644905ms)
|
||
✔ D5.6.1 resets lockout revokes sessions and audits without persisting the password value (0.410647ms)
|
||
✔ D5.6.4/F4 generates inspection codes server-side with an annual transactional sequence (5.266079ms)
|
||
✔ D5.6.4/F4 creates one inspection from Area Operator, start and lead inspector without legacy title or end date (0.45272ms)
|
||
✔ D5.6.4 assigns the lead inspector and generates the checklist in the same creation transaction (0.293699ms)
|
||
✔ D5.6.4/F4 uses the same inspection numbering and start-only planning for verification visits (0.28877ms)
|
||
✔ D5.6 immutable act closure survives F4 as LOCKED then SEALED (1.191449ms)
|
||
✔ D5.6 preserves findings responses evidence and verification history as non destructive follow-up (0.503579ms)
|
||
✔ D5.6 keeps Inventory temporal context and contextual finding applicability independent and historical (0.374322ms)
|
||
✔ F4 preserves reviewed web planning and APK-only inspection execution (0.262942ms)
|
||
✔ D5.6 report generation remains attached to sealing each act (0.205674ms)
|
||
✔ F4 replaces Director approval with editable INF then immutable GEDO IF officialization (0.227778ms)
|
||
✔ F4 keeps auditable delivery, removes Director recipient and makes SMTP administrable (0.188818ms)
|
||
✔ D5.6 remains a historical closure baseline while Phase F introduces explicit migrations (0.913143ms)
|
||
✔ F1.1/F4 allows many acts per inspection while keeping only one draft at a time (317.233699ms)
|
||
✔ F1.1/F4 preserves exactly one frozen report per act instead of per inspection (0.718597ms)
|
||
✔ F4 seals one act without closing its parent inspection (1.602787ms)
|
||
✔ F4 closes an inspection only after every non-cancelled act is sealed (0.263041ms)
|
||
✔ F4 requires exactly one terminal company outcome before an act can be sealed (0.218985ms)
|
||
✔ F1.1/F4 keeps field-created Inventory linked only to the current draft act (0.11794ms)
|
||
✔ F1.2 stores one append-only administrative deadline ledger per Act (0.855215ms)
|
||
✔ F1.2 preserves ambiguous historical finding deadlines instead of collapsing them (0.130078ms)
|
||
✔ F1.2 stores company responses and protected PDF metadata at Act level (0.107634ms)
|
||
✔ F1.2 deadline and company response DTOs reject invalid office input (4.554934ms)
|
||
✔ F1.2 derives administrative queues from Acts instead of replacing finding history (0.117219ms)
|
||
✔ F1.3 agrupa pendientes de campo por Acta y Hallazgo (0.716584ms)
|
||
✔ F1.3 expone el briefing para una inspección planificada (0.301832ms)
|
||
✔ F1.3 no usa el plazo del Hallazgo como plazo administrativo (0.118581ms)
|
||
✔ F4 removes the Survey execution controller from the active API (0.9884ms)
|
||
✔ F4 removes Survey execution and review permissions from active authorization (0.2095ms)
|
||
✔ F4 removes Survey execution DTOs together with the retired endpoint surface (0.693468ms)
|
||
✔ F4 drops Survey report tables without CASCADE so unexpected dependencies stop migration (0.211542ms)
|
||
✔ F4 rollback can reconstruct the historical Survey report integrity rules (0.179044ms)
|
||
✔ F4 removes Survey planning controllers from the active API (0.826122ms)
|
||
✔ F4 removes Survey planning permissions and their role bindings (0.17675ms)
|
||
✔ F4 rollback retains the former role-permission map only as a reversible migration path (0.129097ms)
|
||
✔ F4 removes Survey planning DTOs from the active code surface (0.800342ms)
|
||
✔ F4 drops Survey planning tables after removing their permissions (0.197971ms)
|
||
✔ F4 rollback can reconstruct historical Survey planning dates and asset references (0.273005ms)
|
||
✔ TokenService issues and verifies access tokens (8.778059ms)
|
||
✔ TokenService rotates opaque refresh credentials without storing plaintext (1.6312ms)
|
||
ℹ tests 434
|
||
ℹ suites 0
|
||
ℹ pass 434
|
||
ℹ fail 0
|
||
ℹ cancelled 0
|
||
ℹ skipped 0
|
||
ℹ todo 0
|
||
ℹ duration_ms 64777.381131
|
||
|
||
========== BUILD WEB CANDIDATA ==========
|
||
#0 building with "default" instance using docker driver
|
||
|
||
#1 [internal] load build definition from Dockerfile
|
||
#1 transferring dockerfile: 334B done
|
||
#1 DONE 0.0s
|
||
|
||
#2 [internal] load metadata for docker.io/library/node:24-alpine
|
||
#2 DONE 0.5s
|
||
|
||
#3 [internal] load metadata for docker.io/library/nginx:alpine
|
||
#3 DONE 0.5s
|
||
|
||
#4 [internal] load .dockerignore
|
||
#4 transferring context: 75B done
|
||
#4 DONE 0.0s
|
||
|
||
#5 [stage-1 1/3] FROM docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3
|
||
#5 resolve docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 0.0s done
|
||
#5 DONE 0.0s
|
||
|
||
#6 [builder 1/7] FROM docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81
|
||
#6 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.0s done
|
||
#6 DONE 0.0s
|
||
|
||
#7 [internal] load build context
|
||
#7 transferring context: 1.22MB 0.0s done
|
||
#7 DONE 0.1s
|
||
|
||
#8 [builder 2/7] WORKDIR /app
|
||
#8 CACHED
|
||
|
||
#9 [builder 5/7] COPY tsconfig*.json vite.config.ts index.html ./
|
||
#9 CACHED
|
||
|
||
#10 [builder 6/7] COPY src ./src
|
||
#10 CACHED
|
||
|
||
#11 [builder 7/7] RUN npm run build
|
||
#11 CACHED
|
||
|
||
#12 [stage-1 2/3] COPY nginx/default.conf /etc/nginx/conf.d/default.conf
|
||
#12 CACHED
|
||
|
||
#13 [builder 3/7] COPY package*.json ./
|
||
#13 CACHED
|
||
|
||
#14 [builder 4/7] RUN npm ci
|
||
#14 CACHED
|
||
|
||
#15 [stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html
|
||
#15 CACHED
|
||
|
||
#16 exporting to image
|
||
#16 exporting layers done
|
||
#16 exporting manifest sha256:02fbaf4bba1c432aafd59fdb00fd76852ec03451504fb886a8ca525e29ada6e4 done
|
||
#16 exporting config sha256:800648f5bda63a90cd2e563eed28afeaf2fbd1d64e3954ba288096cf2f8a9595 done
|
||
#16 exporting attestation manifest sha256:669036a1ad52c0f798418160b5967281fecc0d1d591faf1eae3b75d743c8d493 0.0s done
|
||
#16 exporting manifest list sha256:c2fbb12beaff12dcc930ea957602119d89f61b0aa0625805ae9b2d6aed942f3c
|
||
#16 exporting manifest list sha256:c2fbb12beaff12dcc930ea957602119d89f61b0aa0625805ae9b2d6aed942f3c 0.0s done
|
||
#16 naming to docker.io/library/dhv2-web:github-20260913_170608 done
|
||
#16 unpacking to docker.io/library/dhv2-web:github-20260913_170608 0.1s done
|
||
#16 DONE 0.3s
|
||
|
||
========== BACKUP PRE ==========
|
||
database-before.dump: OK
|
||
source-before.tar.gz: OK
|
||
.env: OK
|
||
previous.sha: OK
|
||
target.sha: OK
|
||
docker-before.txt: OK
|
||
|
||
========== FAST-FORWARD ==========
|
||
8564f19 deploy: add native Gitea production workflow
|
||
ea890cb ci(gitea): make API health probe DinD-compatible
|
||
ce27cd0 ci(gitea): pin setup-gradle v4.4.3 for act compatibility
|
||
Updating a155d9e..8564f19
|
||
Fast-forward
|
||
.github/workflows/android.yml | 2 +-
|
||
.github/workflows/ci.yml | 7 +-
|
||
scripts/deploy-gitea.sh | 319 ++++++++++++++++++++++++++++++++++++++++++
|
||
3 files changed, 326 insertions(+), 2 deletions(-)
|
||
create mode 100755 scripts/deploy-gitea.sh
|
||
|
||
========== BUILD PRODUCCIÓN ==========
|
||
Image dhv2-api Building
|
||
Image dhv2-web Building
|
||
Image dhv2-migrate Building
|
||
#1 [internal] load local bake definitions
|
||
#1 reading from stdin 1.35kB done
|
||
#1 DONE 0.0s
|
||
|
||
#2 [migrate internal] load build definition from Dockerfile
|
||
#2 transferring dockerfile: 595B done
|
||
#2 DONE 0.0s
|
||
|
||
#3 [web internal] load build definition from Dockerfile
|
||
#3 transferring dockerfile: 407B done
|
||
#3 DONE 0.0s
|
||
|
||
#4 [web internal] load metadata for docker.io/library/node:24-alpine
|
||
#4 DONE 0.2s
|
||
|
||
#5 [api internal] load .dockerignore
|
||
#5 transferring context: 147B done
|
||
#5 DONE 0.0s
|
||
|
||
#6 [web internal] load metadata for docker.io/library/nginx:alpine
|
||
#6 DONE 0.3s
|
||
|
||
#7 [migrate internal] load build context
|
||
#7 DONE 0.0s
|
||
|
||
#8 [web internal] load .dockerignore
|
||
#8 transferring context: 148B 0.0s done
|
||
#8 DONE 0.0s
|
||
|
||
#9 [web internal] load build context
|
||
#9 DONE 0.0s
|
||
|
||
#10 [api builder 1/7] FROM docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81
|
||
#10 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.0s done
|
||
#10 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.0s done
|
||
#10 DONE 0.1s
|
||
|
||
#11 [web stage-1 1/3] FROM docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3
|
||
#11 resolve docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 0.0s done
|
||
#11 DONE 0.0s
|
||
|
||
#7 [migrate internal] load build context
|
||
#7 transferring context: 2.61MB 0.2s done
|
||
#7 DONE 0.2s
|
||
|
||
#9 [web internal] load build context
|
||
#9 transferring context: 1.23MB 0.1s done
|
||
#9 DONE 0.1s
|
||
|
||
#12 [web builder 2/7] WORKDIR /app
|
||
#12 CACHED
|
||
|
||
#13 [web builder 3/7] COPY package*.json ./
|
||
#13 CACHED
|
||
|
||
#14 [web builder 4/7] RUN npm ci
|
||
#14 CACHED
|
||
|
||
#15 [web builder 7/7] RUN npm run build
|
||
#15 CACHED
|
||
|
||
#16 [web stage-1 2/3] COPY nginx/default.conf /etc/nginx/conf.d/default.conf
|
||
#16 CACHED
|
||
|
||
#17 [web builder 6/7] COPY src ./src
|
||
#17 CACHED
|
||
|
||
#18 [web builder 5/7] COPY tsconfig*.json vite.config.ts index.html ./
|
||
#18 CACHED
|
||
|
||
#19 [web stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html
|
||
#19 CACHED
|
||
|
||
#20 [api builder 4/7] RUN npm ci
|
||
#20 CACHED
|
||
|
||
#12 [api builder 2/7] WORKDIR /app
|
||
#12 CACHED
|
||
|
||
#21 [api builder 6/7] COPY src ./src
|
||
#21 CACHED
|
||
|
||
#22 [api runner 4/7] COPY package*.json ./
|
||
#22 CACHED
|
||
|
||
#23 [api runner 6/7] COPY --from=builder /app/dist ./dist
|
||
#23 CACHED
|
||
|
||
#24 [api builder 5/7] COPY nest-cli.json tsconfig.json ./
|
||
#24 CACHED
|
||
|
||
#25 [api runner 3/7] WORKDIR /app
|
||
#25 CACHED
|
||
|
||
#26 [api runner 5/7] RUN npm ci --omit=dev && npm cache clean --force
|
||
#26 CACHED
|
||
|
||
#27 [api builder 7/7] RUN npm run build
|
||
#27 CACHED
|
||
|
||
#28 [api builder 3/7] COPY package*.json ./
|
||
#28 CACHED
|
||
|
||
#29 [api runner 2/7] RUN apk add --no-cache unzip
|
||
#29 CACHED
|
||
|
||
#30 [migrate runner 7/7] RUN mkdir -p /app/storage/asset-media/imports && chown -R node:node /app/storage
|
||
#30 CACHED
|
||
|
||
#31 [api] exporting to image
|
||
#31 exporting layers
|
||
#31 exporting layers 0.0s done
|
||
#31 exporting manifest sha256:48892ee5e869c415e40817cf40cee98bf723d367b6c1684c32f0d145cff20912 0.0s done
|
||
#31 exporting config sha256:20abde41b55a5c9256479d9cd219a899254dc8a4862776f0d959e004ec175878 done
|
||
#31 exporting attestation manifest sha256:12c64b420489cdf9de57111f03295500de8d26d8328c5edb0f6b64f09687d966
|
||
#31 ...
|
||
|
||
#32 [web] exporting to image
|
||
#32 exporting layers 0.0s done
|
||
#32 exporting manifest sha256:0bf39a12fa9f73ee380dc09b3dc6e073f927cd32b3aa01bdf04c8aca928ce384 done
|
||
#32 exporting config sha256:058dfaacab6b4ba85140626e9b12d30058172ddcd1cf6bd0afcdd2ca4deff108 done
|
||
#32 exporting attestation manifest sha256:1c9e253aa962896ea5ae82fe000b632d4b9c500aaab2dbf7cdf95ed8211e29ee 0.1s done
|
||
#32 exporting manifest list sha256:f9031510c5b1cade0ce846fe6692282141f769d48a14466e5ddb926202e846dc 0.0s done
|
||
#32 naming to docker.io/library/dhv2-web:latest 0.0s done
|
||
#32 unpacking to docker.io/library/dhv2-web:latest 0.0s done
|
||
#32 DONE 0.3s
|
||
|
||
#33 [migrate] exporting to image
|
||
#33 exporting layers 0.0s done
|
||
#33 exporting manifest sha256:dda9ac2cc47bc829b260cba0a3aa922b97c0844f8ac4016b2ebfdfe16f3e09c5 done
|
||
#33 exporting config sha256:b29ca23c1122602fd3c54f5ae8ed8524ba695ac9fcb570b66a32a949c81112ef done
|
||
#33 exporting attestation manifest sha256:f3850d5349bebb41e5c399a278d5f5e385c8ab07f20badd5ffa73f3b16449593 0.1s done
|
||
#33 exporting manifest list sha256:48b362ef32fa273c64bc996b795bc22aab9947e4207895fcb05eea9bb3ee449d 0.0s done
|
||
#33 naming to docker.io/library/dhv2-migrate:latest done
|
||
#33 unpacking to docker.io/library/dhv2-migrate:latest 0.0s done
|
||
#33 DONE 0.2s
|
||
|
||
#31 [api] exporting to image
|
||
#31 exporting attestation manifest sha256:12c64b420489cdf9de57111f03295500de8d26d8328c5edb0f6b64f09687d966 0.1s done
|
||
#31 exporting manifest list sha256:8e71e09711428d97ff176ab316341e4859b0385f22662cbea33807e4b11227a2 0.0s done
|
||
#31 naming to docker.io/library/dhv2-api:latest done
|
||
#31 unpacking to docker.io/library/dhv2-api:latest 0.0s done
|
||
#31 DONE 0.2s
|
||
|
||
#34 [web] resolving provenance for metadata file
|
||
#34 DONE 0.0s
|
||
|
||
#35 [migrate] resolving provenance for metadata file
|
||
#35 DONE 0.0s
|
||
|
||
#36 [api] resolving provenance for metadata file
|
||
#36 DONE 0.0s
|
||
Image dhv2-api Built
|
||
Image dhv2-migrate Built
|
||
Image dhv2-web Built
|
||
|
||
========== MIGRACIONES ==========
|
||
Container dhv2-db Running
|
||
Container dhv2-db Waiting
|
||
Container dhv2-db Healthy
|
||
Container dhv2-migrate-run-27b917aaad91 Creating
|
||
Container dhv2-migrate-run-27b917aaad91 Created
|
||
|
||
> dhv2-api@0.29.0-1 migration:run
|
||
> node dist/database/migration-cli.js run
|
||
|
||
Applied migrations: 0
|
||
npm notice
|
||
npm notice New major version of npm available! 11.19.0 -> 12.0.2
|
||
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2
|
||
npm notice To update run: npm install -g npm@12.0.2
|
||
npm notice
|
||
Container dhv2-db Running
|
||
Container dhv2-db Waiting
|
||
Container dhv2-db Healthy
|
||
Container dhv2-migrate-run-e5364493a801 Creating
|
||
Container dhv2-migrate-run-e5364493a801 Created
|
||
|
||
> dhv2-api@0.29.0-1 migration:show
|
||
> node dist/database/migration-cli.js show
|
||
|
||
Pending migrations: no
|
||
npm notice
|
||
npm notice New major version of npm available! 11.19.0 -> 12.0.2
|
||
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2
|
||
npm notice To update run: npm install -g npm@12.0.2
|
||
npm notice
|
||
|
||
========== RECREATE API + WEB ==========
|
||
Container dhv2-api Recreate
|
||
Container dhv2-api Recreated
|
||
Container dhv2-web Recreate
|
||
Container dhv2-web Recreated
|
||
Container dhv2-api Starting
|
||
Container dhv2-api Started
|
||
Container dhv2-web Starting
|
||
Container dhv2-web Started
|
||
|
||
========== HEALTH ==========
|
||
{"status":"ok","service":"dhv2-api","api":"v3","version":"0.29.0-1","phase":"F6.1","database":"ok","time":"2026-09-13T20:07:43.915Z","latencyMs":1}
|
||
|
||
========== VERIFICACIÓN FINAL ==========
|
||
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
|
||
dhv2-api dhv2-api "docker-entrypoint.s…" api 4 seconds ago Up 2 seconds 127.0.0.1:3101->3000/tcp
|
||
dhv2-db postgis/postgis:16-3.5 "docker-entrypoint.s…" db 4 weeks ago Up 4 weeks (healthy) 5432/tcp
|
||
dhv2-web dhv2-web "/docker-entrypoint.…" web 3 seconds ago Up 2 seconds 127.0.0.1:8182->80/tcp
|
||
Servicios críticos: OK
|
||
database-before.dump: OK
|
||
source-before.tar.gz: OK
|
||
.env: OK
|
||
previous.sha: OK
|
||
target.sha: OK
|
||
docker-before.txt: OK
|
||
database-after.dump: OK
|
||
deployed.sha: OK
|
||
deployed-versions.txt: OK
|
||
health.json: OK
|
||
migrations.txt: OK
|
||
docker-after.txt: OK
|
||
|
||
============================================================
|
||
DH V2 · DEPLOY OK
|
||
============================================================
|
||
Commit: 8564f1933c41ab00246d9d741c192e50ab813aab
|
||
API: 0.29.0-1
|
||
WEB: 0.23.0-1
|
||
Backup: /root/DH_V2_BACKUPS/GITHUB_DEPLOY_20260913_170608
|
||
============================================================
|