commit 4ebc62b680b43820111b3ed1a3c7be3bcfa7bf58 Author: DH V2 Deploy Bot Date: Mon Sep 14 19:42:17 2026 -0300 deploy-status: success · phase complete diff --git a/deploy.log b/deploy.log new file mode 100644 index 0000000..cfa5127 --- /dev/null +++ b/deploy.log @@ -0,0 +1,500 @@ +✔ operational inspection writes accept inspector bearer users (0.273448ms) +✔ PasswordService hashes with Argon2id and verifies safely (460.566293ms) +✔ PasswordService performs dummy verification for unknown users (144.512495ms) +✔ PermissionsGuard leaves handlers without requirements available (2.8908ms) +✔ PermissionsGuard gives explicit public metadata priority (1.252806ms) +✔ PermissionsGuard returns 401 when required permissions have no principal (1.744788ms) +✔ PermissionsGuard returns 403 when any required permission is missing (0.315884ms) +✔ PermissionsGuard requires changing a temporary password first (0.28783ms) +✔ PermissionsGuard authorizes when class and handler permissions are granted (0.106463ms) +✔ PermissionsGuard applies class requirements to every handler (0.081335ms) +✔ D5.3.15/F4 exposes global acts and report emission after an Act is SEALED (1.010505ms) +✔ D5.3.15/F4 freezes the immutable sealed Act snapshot as the INF source (0.232515ms) +✔ D5.3.15 frozen source guarantees survive while F4 expands report workflow states (0.125663ms) +✔ D5.3.16/F4 builds the verification queue from the next control date and unresolved latest result (1.108755ms) +✔ D5.3.16 creates one draft verification visit for one company and area (0.142598ms) +✔ D5.3.16 prevents an open finding from being scheduled into two active verification visits (0.084699ms) +✔ D5.3.16 exposes linked findings in the created visit (0.076337ms) +✔ D5.3.16 migration adds traceable verification links and an office planning permission (0.148007ms) +✔ D5.3.17 records one controlled field result for a linked verification finding (0.927046ms) +✔ D5.3.17 preserves the original target and only reschedules when explicitly requested (0.144661ms) +✔ D5.3.17 links verification photos to the verification visit (0.129058ms) +✔ F4 requires every linked verification result before closing the inspection, not before locking one act (0.385098ms) +✔ D5.3.17 moves verified conforming findings into an office ready-to-close queue (0.083678ms) +✔ D5.3.17 migration adds verification outcome and verification evidence linkage (0.081213ms) +✔ D5.3.18.3 separates finding closure from general follow-up permission (0.960509ms) +✔ D5.3.18.3 keeps the first company response immutable and requires later presentations in history (0.212445ms) +✔ D5.3.18 exposes one server-side office workflow for the finding dossier (0.665627ms) +✔ D5.3.18 preserves administrative and operational dates as independent fields (0.128065ms) +✔ D5.3.19 adds one searchable common name without replacing technical identity (2.994639ms) +✔ D5.3.19 stores the administrative response rule and its immutable base (1.764018ms) +✔ D5.3.19 exposes company area inspector and date filters across operational lists (0.339068ms) +✔ F1.1 supersedes the historical single-act rule while retaining the D5.3.19 filters (0.220296ms) +✔ D5.3.19 does not introduce the contextual finding catalog before its office definition (0.201578ms) +✔ D5.3.20/F4 freezes one report from each sealed act and generates its Word artifact (0.946769ms) +✔ D5.3.20 stores an integrity-checked Word artifact without changing the frozen source snapshot (0.284154ms) +✔ D5.3.20 builds OOXML Word from the frozen act snapshot without external document dependencies (0.233537ms) +✔ F4 keeps report generation act-scoped while findings and inspection lifecycle remain independent (0.121376ms) +✔ D5.3.21/F4 stores configurable recipients without hardcoding addresses and retires Director delivery (1.039068ms) +✔ D5.3.21 creates an immutable act PDF and separates its delivery from the editable INF Word (0.151672ms) +✔ D5.3.21 keeps an auditable retryable outbox with explicit waiting states (0.10505ms) +✔ F4 SMTP can be administered in database while retaining environment fallback (0.11726ms) +✔ D5.3.21/F4 delivery stays act-scoped after multiple acts per inspection (0.266668ms) +✔ D5.3.22 revision ledger is retained as historical INF versioning (0.663816ms) +✔ F4 explicitly retires Director review approval and final-signature state (0.17661ms) +✔ F4 removes active Director endpoints but preserves historical signature evidence (0.197503ms) +✔ F4 replaces Director approval with editable INF then immutable GEDO IF officialization (0.151792ms) +✔ F4 delivery has no Director recipient while preserving company office and inspector copies (0.069306ms) +✔ F4 Director-retirement rollback reconstructs schema and RBAC contract without inventing deleted data (0.067144ms) +✔ F4 document workflow changes do not reopen acts or mutate finding history (0.075566ms) +✔ D5.3.23 records field discoveries as auditable provisional inventory records (0.945605ms) +✔ D5.3.23 only lets a mobile assigned inspector create during an active visit (0.131541ms) +✔ F1.1 preserves D5.3.23 field discovery while linking only to the current draft act (0.160185ms) +✔ D5.3.23 office review can approve match or reject without deleting historical objects (0.141466ms) +✔ D5.3.23 preserves immutable inspection history when matching an existing inventory object (0.109869ms) +✔ D5.3.24 stores parent area and operator as explicit non-overlapping temporal context (0.787695ms) +✔ D5.3.24 reconstructs previous context from immutable asset versions during migration (0.132162ms) +✔ D5.3.24 separates ordinary editing from an audited context transfer (0.162628ms) +✔ D5.3.24 closes the previous interval and appends the replacement without deleting history (0.389956ms) +✔ D5.3.24 temporal reconstruction resolves context by effective validity at the requested instant (0.108887ms) +✔ D5.3.25 creates an append-only verification event ledger and reconstructs prior history (2.925843ms) +✔ D5.3.25 records every office control-date change without replacing historical events (0.238084ms) +✔ D5.3.25 makes one field result immutable and appends its result event (0.253027ms) +✔ D5.3.25 preserves successive verification visits as separate historical attempts (0.117791ms) +✔ D5.3.25 exposes the complete verification history through finding detail and a dedicated endpoint (0.113092ms) +✔ D5.3.3 separates operational state from data quality and adds registry structures (7.286901ms) +✔ D5.3.3 keeps physical hierarchy separate from legal and organizational relations (2.554395ms) +✔ D5.3.3 only accepts OPERATOR relations for exclusive asset assignment (2.323032ms) +✔ D5.4.1 exports controller-visible selection views so Nest declaration build can name them (0.850951ms) +✔ D5.4 models type applicability and concrete Inventory exceptions separately (1.05302ms) +✔ D5.4 exposes only applicable catalog items and enforces the same rule on field creation (0.159584ms) +✔ D5.4 stores suggested and actual severity independently on the 1 to 10 scale (0.134255ms) +✔ D5.4 turns OTHER into an office proposal without rewriting the original finding (0.225374ms) +✔ D5.4 keeps contextual catalog administration in office permissions and audited routes (0.09868ms) +✔ D5.5 stores explicit Area and Operator context plus append-only checklist generations (1.076056ms) +✔ D5.5 exposes Area then active OPERATOR choices and a server-generated planning checklist (0.347161ms) +✔ D5.5 classifies antecedents overdue items and next controls while adding actionable assets automatically (0.196149ms) +✔ D5.5 treats manual additions as preventive and requires an auditable reason for exclusions (0.747463ms) +✔ D5.5/F4 keeps verification visits inside the Area Operator contract and start remains APK-only (0.240347ms) +✔ D5.5/F4 requires a current checklist before planning or start and keeps start under mobile policy (0.182851ms) +✔ D5.6.1 exposes controlled administrative password reset with the existing user-update permission (1.497389ms) +✔ D5.6.1 resets lockout revokes sessions and audits without persisting the password value (0.600429ms) +✔ D5.6.4/F4 generates inspection codes server-side with an annual transactional sequence (0.95461ms) +✔ D5.6.4/F4 creates one inspection from Area Operator, start and lead inspector without legacy title or end date (0.51673ms) +✔ D5.6.4 assigns the lead inspector and generates the checklist in the same creation transaction (0.191092ms) +✔ D5.6.4/F4 uses the same inspection numbering and start-only planning for verification visits (0.35978ms) +✔ D5.6 immutable act closure survives F4 as LOCKED then SEALED (1.018527ms) +✔ D5.6 preserves findings responses evidence and verification history as non destructive follow-up (0.309804ms) +✔ D5.6 keeps Inventory temporal context and contextual finding applicability independent and historical (0.731077ms) +✔ F4 preserves reviewed web planning and APK-only inspection execution (0.341893ms) +✔ D5.6 report generation remains attached to sealing each act (0.198665ms) +✔ F4 replaces Director approval with editable INF then immutable GEDO IF officialization (0.211273ms) +✔ F4 keeps auditable delivery, removes Director recipient and makes SMTP administrable (0.193546ms) +✔ D5.6 remains a historical closure baseline while Phase F introduces explicit migrations (0.4903ms) +✔ F1.1/F4 allows many acts per inspection while keeping only one draft at a time (1.254868ms) +✔ F1.1/F4 preserves exactly one frozen report per act instead of per inspection (0.345329ms) +✔ F4 seals one act without closing its parent inspection (0.271866ms) +✔ F4 closes an inspection only after every non-cancelled act is sealed (0.182751ms) +✔ F4 requires exactly one terminal company outcome before an act can be sealed (0.214418ms) +✔ F1.1/F4 keeps field-created Inventory linked only to the current draft act (0.143879ms) +✔ F1.2 stores one append-only administrative deadline ledger per Act (0.975982ms) +✔ F1.2 preserves ambiguous historical finding deadlines instead of collapsing them (0.133394ms) +✔ F1.2 stores company responses and protected PDF metadata at Act level (0.088035ms) +✔ F1.2 deadline and company response DTOs reject invalid office input (7.300311ms) +✔ F1.2 derives administrative queues from Acts instead of replacing finding history (0.958856ms) +✔ F1.3 agrupa pendientes de campo por Acta y Hallazgo (1.679537ms) +✔ F1.3 expone el briefing para una inspección planificada (0.239677ms) +✔ F1.3 no usa el plazo del Hallazgo como plazo administrativo (0.108887ms) +✔ F4 removes the Survey execution controller from the active API (1.683102ms) +✔ F4 removes Survey execution and review permissions from active authorization (0.221429ms) +✔ F4 removes Survey execution DTOs together with the retired endpoint surface (2.151429ms) +✔ F4 drops Survey report tables without CASCADE so unexpected dependencies stop migration (0.249221ms) +✔ F4 rollback can reconstruct the historical Survey report integrity rules (0.245205ms) +✔ F4 removes Survey planning controllers from the active API (1.307288ms) +✔ F4 removes Survey planning permissions and their role bindings (0.245956ms) +✔ F4 rollback retains the former role-permission map only as a reversible migration path (0.18332ms) +✔ F4 removes Survey planning DTOs from the active code surface (1.247728ms) +✔ F4 drops Survey planning tables after removing their permissions (0.316473ms) +✔ F4 rollback can reconstruct historical Survey planning dates and asset references (0.121276ms) +✔ TokenService issues and verifies access tokens (9.519154ms) +✔ TokenService rotates opaque refresh credentials without storing plaintext (2.098819ms) +ℹ tests 443 +ℹ suites 0 +ℹ pass 443 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 69984.437457 + +========== BUILD WEB CANDIDATA ========== +#0 building with "default" instance using docker driver + +#1 [internal] load build definition from Dockerfile +#1 transferring dockerfile: 355B 0.0s done +#1 DONE 0.0s + +#2 [internal] load metadata for docker.io/library/nginx:alpine +#2 ... + +#3 [internal] load metadata for docker.io/library/node:24-alpine +#3 DONE 0.5s + +#2 [internal] load metadata for docker.io/library/nginx:alpine +#2 DONE 0.6s + +#4 [internal] load .dockerignore +#4 transferring context: 75B done +#4 DONE 0.0s + +#5 [builder 1/8] FROM docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 +#5 resolve docker.io/library/node:24-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 0.0s done +#5 DONE 0.0s + +#6 [stage-1 1/3] FROM docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 +#6 resolve docker.io/library/nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3 0.0s done +#6 DONE 0.0s + +#7 [internal] load build context +#7 transferring context: 1.24MB 0.0s done +#7 DONE 0.1s + +#8 [builder 2/8] WORKDIR /app +#8 CACHED + +#9 [builder 3/8] COPY package*.json ./ +#9 CACHED + +#10 [builder 4/8] RUN npm ci +#10 CACHED + +#11 [builder 5/8] COPY tsconfig*.json vite.config.ts index.html ./ +#11 CACHED + +#12 [builder 6/8] COPY public ./public +#12 DONE 0.1s + +#13 [builder 7/8] COPY src ./src +#13 DONE 0.1s + +#14 [builder 8/8] RUN npm run build +#14 0.579 +#14 0.579 > dhv2-web@0.23.0-3 build +#14 0.579 > tsc -b && vite build +#14 0.579 +#14 14.52 vite v7.3.6 building client environment for production... +#14 14.60 transforming... +#14 20.24 ✓ 193 modules transformed. +#14 20.70 rendering chunks... +#14 21.13 computing gzip size... +#14 21.18 dist/index.html 0.54 kB │ gzip: 0.33 kB +#14 21.18 dist/assets/index-CYHYQos4.css 223.98 kB │ gzip: 34.19 kB +#14 21.18 dist/assets/MapPage-DDfalIY6.js 7.36 kB │ gzip: 2.64 kB +#14 21.18 dist/assets/AssetGeometryEditor-DjTD4oTx.js 7.69 kB │ gzip: 3.15 kB +#14 21.18 +#14 21.18 (!) Some chunks are larger than 500 kB after minification. Consider: +#14 21.18 - Using dynamic import() to code-split the application +#14 21.18 - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks +#14 21.18 - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +#14 21.18 dist/assets/DocumentDeliveryPage-CB9IoGxE.js 10.60 kB │ gzip: 3.41 kB +#14 21.18 dist/assets/index-BCOqO4fO.js 702.18 kB │ gzip: 182.16 kB +#14 21.18 dist/assets/maplibre-gl-D8_spFpn.js 938.81 kB │ gzip: 245.97 kB +#14 21.18 ✓ built in 6.63s +#14 DONE 21.4s + +#15 [stage-1 2/3] COPY nginx/default.conf /etc/nginx/conf.d/default.conf +#15 CACHED + +#16 [stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html +#16 DONE 0.1s + +#17 exporting to image +#17 exporting layers +#17 exporting layers 0.2s done +#17 exporting manifest sha256:1704f6185228a186f2b5e5319bb34bd0cf859c159e3944ee94586e269b11a45d 0.0s done +#17 exporting config sha256:4546be2b3c45839cd9f696532c385f781e80baadfd9a56162c454935f52b3582 0.0s done +#17 exporting attestation manifest sha256:f29617f378d93e98523b44c0ff1eb0d388de4de0885d667336cac979c21100ff 0.0s done +#17 exporting manifest list sha256:e14fd1a4ed05d92186398c544746078f85ac16954710f9cbcb7d9affe043b130 0.0s done +#17 naming to docker.io/library/dhv2-web:gitea-20260914_193944 +#17 naming to docker.io/library/dhv2-web:gitea-20260914_193944 done +#17 unpacking to docker.io/library/dhv2-web:gitea-20260914_193944 0.1s done +#17 DONE 0.4s + +========== 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 ========== +08f164a fix(web): package Mendoza favicon in production image +Updating 23450bb..08f164a +Fast-forward + web-v2/Dockerfile | 1 + + 1 file changed, 1 insertion(+) + +========== 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 [web internal] load build definition from Dockerfile +#2 transferring dockerfile: 428B done +#2 DONE 0.0s + +#3 [migrate internal] load build definition from Dockerfile +#3 transferring dockerfile: 595B done +#3 DONE 0.0s + +#4 [api internal] load metadata for docker.io/library/node:24-alpine +#4 DONE 0.2s + +#5 [web internal] load metadata for docker.io/library/nginx:alpine +#5 DONE 0.2s + +#6 [api internal] load .dockerignore +#6 transferring context: 147B done +#6 DONE 0.0s + +#7 [web internal] load .dockerignore +#7 transferring context: 148B done +#7 DONE 0.0s + +#8 [api internal] load build context +#8 DONE 0.0s + +#9 [web internal] load build context +#9 DONE 0.0s + +#10 [web 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 DONE 0.0s + +#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 + +#8 [migrate internal] load build context +#8 ... + +#9 [web internal] load build context +#9 transferring context: 1.25MB 0.1s done +#9 DONE 0.2s + +#8 [migrate internal] load build context +#8 transferring context: 2.63MB 0.4s done +#8 DONE 0.5s + +#12 [web builder 3/8] COPY package*.json ./ +#12 CACHED + +#13 [web builder 4/8] RUN npm ci +#13 CACHED + +#14 [web builder 5/8] COPY tsconfig*.json vite.config.ts index.html ./ +#14 CACHED + +#15 [migrate runner 4/7] COPY package*.json ./ +#15 CACHED + +#16 [migrate builder 5/7] COPY nest-cli.json tsconfig.json ./ +#16 CACHED + +#17 [migrate runner 3/7] WORKDIR /app +#17 CACHED + +#18 [migrate builder 6/7] COPY src ./src +#18 CACHED + +#19 [migrate builder 7/7] RUN npm run build +#19 CACHED + +#20 [migrate builder 3/7] COPY package*.json ./ +#20 CACHED + +#21 [migrate builder 4/7] RUN npm ci +#21 CACHED + +#22 [migrate runner 5/7] RUN npm ci --omit=dev && npm cache clean --force +#22 CACHED + +#23 [migrate runner 2/7] RUN apk add --no-cache unzip +#23 CACHED + +#24 [migrate runner 6/7] COPY --from=builder /app/dist ./dist +#24 CACHED + +#25 [migrate builder 2/7] WORKDIR /app +#25 CACHED + +#26 [api runner 7/7] RUN mkdir -p /app/storage/asset-media/imports && chown -R node:node /app/storage +#26 CACHED + +#27 [migrate] exporting to image +#27 exporting layers 0.0s done +#27 exporting manifest sha256:6993fd04b489570666bd0e009307ec6c6ef7a3b00c777ff6d08e59c4601d61bc done +#27 exporting config sha256:a9cad0808cfca28a88e4c63d1a3120fe445b75d43f6e22736c37104773773432 0.0s done +#27 ... + +#28 [web builder 6/8] COPY public ./public +#28 DONE 0.1s + +#27 [migrate] exporting to image +#27 exporting attestation manifest sha256:7c6942bc1c89db32b04b66a55eb218078d471b6f434bbf8bf8901a2ae7e6e6ae 0.1s done +#27 exporting manifest list sha256:53fc880c1c7405507c07aaad25699c95f2ee569ada81e49511fb7045a098d4c8 +#27 ... + +#29 [web builder 7/8] COPY src ./src +#29 DONE 0.2s + +#30 [api] exporting to image +#30 exporting layers 0.0s done +#30 exporting manifest sha256:ad87d1d4b654ca83d3977c3e5c91185ab34fee1b111ee16945cf7cd27822b99d 0.0s done +#30 exporting config sha256:edbcbbc95c8ebbba90e2e9844c9d2bdc5b2ec9caa3e782118bebd8c3886e13a7 0.0s done +#30 exporting attestation manifest sha256:51df1dd08cdb596c682158b8f365c85a5b5073be538f5ac9077a45b24e81276b 0.1s done +#30 exporting manifest list sha256:a279e8ec2b640bac1c8c88dc3b40c1c1547d6ab208e816f812c7629bc7d03bc5 0.0s done +#30 naming to docker.io/library/dhv2-api:latest done +#30 unpacking to docker.io/library/dhv2-api:latest 0.1s done +#30 DONE 0.3s + +#27 [migrate] exporting to image +#27 exporting manifest list sha256:53fc880c1c7405507c07aaad25699c95f2ee569ada81e49511fb7045a098d4c8 0.0s done +#27 naming to docker.io/library/dhv2-migrate:latest 0.0s done +#27 unpacking to docker.io/library/dhv2-migrate:latest 0.1s done +#27 DONE 0.4s + +#31 [web builder 8/8] RUN npm run build +#31 ... + +#32 [api] resolving provenance for metadata file +#32 DONE 0.1s + +#33 [migrate] resolving provenance for metadata file +#33 DONE 0.1s + +#31 [web builder 8/8] RUN npm run build +#31 0.643 +#31 0.643 > dhv2-web@0.23.0-3 build +#31 0.643 > tsc -b && vite build +#31 0.643 +#31 13.85 vite v7.3.6 building client environment for production... +#31 13.93 transforming... +#31 19.79 ✓ 193 modules transformed. +#31 20.17 rendering chunks... +#31 20.65 computing gzip size... +#31 20.78 +#31 20.78 (!) Some chunks are larger than 500 kB after minification. Consider: +#31 20.78 - Using dynamic import() to code-split the application +#31 20.78 - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks +#31 20.78 - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +#31 20.78 dist/index.html 0.54 kB │ gzip: 0.33 kB +#31 20.78 dist/assets/index-CYHYQos4.css 223.98 kB │ gzip: 34.19 kB +#31 20.78 dist/assets/MapPage-DDfalIY6.js 7.36 kB │ gzip: 2.64 kB +#31 20.78 dist/assets/AssetGeometryEditor-DjTD4oTx.js 7.69 kB │ gzip: 3.15 kB +#31 20.78 dist/assets/DocumentDeliveryPage-CB9IoGxE.js 10.60 kB │ gzip: 3.41 kB +#31 20.78 dist/assets/index-BCOqO4fO.js 702.18 kB │ gzip: 182.16 kB +#31 20.78 dist/assets/maplibre-gl-D8_spFpn.js 938.81 kB │ gzip: 245.97 kB +#31 20.78 ✓ built in 6.89s +#31 DONE 21.3s + +#34 [web stage-1 2/3] COPY nginx/default.conf /etc/nginx/conf.d/default.conf +#34 CACHED + +#35 [web stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html +#35 DONE 0.1s + +#36 [web] exporting to image +#36 exporting layers +#36 exporting layers 0.2s done +#36 exporting manifest sha256:f6a73850db7dbd52ba581378c153449299ae41ed0104b817a1249e03f7c4cb5d 0.0s done +#36 exporting config sha256:87fc2c8ecaf5028743b53e810dfeea961fb94aafb6966b1fa5fc33f6ab47014a 0.0s done +#36 exporting attestation manifest sha256:bfe5f8d1d03b9531119227a3ca906930d0865e7f16d1221c65c30261b2c2e65a 0.0s done +#36 exporting manifest list sha256:0501f39e2cbb0811d686f6b74d27f1364aa6a735f4e278081d920797dfd58bc7 0.0s done +#36 naming to docker.io/library/dhv2-web:latest +#36 naming to docker.io/library/dhv2-web:latest done +#36 unpacking to docker.io/library/dhv2-web:latest 0.1s done +#36 DONE 0.4s + +#37 [web] resolving provenance for metadata file +#37 DONE 0.1s + 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-64e6bb244078 Creating + Container dhv2-migrate-run-64e6bb244078 Created + +> dhv2-api@0.29.0-4 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-a40fd6f324c1 Creating + Container dhv2-migrate-run-a40fd6f324c1 Created + +> dhv2-api@0.29.0-4 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-4","phase":"F6.2","database":"ok","time":"2026-09-14T22:42:15.569Z","latencyMs":3} + +========== VERIFICACIÓN FINAL ========== +NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS +dhv2-api dhv2-api "docker-entrypoint.s…" api 6 seconds ago Up 4 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 5 seconds ago Up 4 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: 08f164a209570928506ea014327eec630a62cfdc +API: 0.29.0-4 +WEB: 0.23.0-3 +Backup: /root/DH_V2_BACKUPS/GITEA_DEPLOY_20260914_193944 +============================================================ diff --git a/status.txt b/status.txt new file mode 100644 index 0000000..f6ef6e4 --- /dev/null +++ b/status.txt @@ -0,0 +1,12 @@ +status=success +exit_code=0 +phase=complete +timestamp=2026-09-14T19:42:17-03:00 +deploy_ref=deploy +previous_sha=23450bb6d050b9b9a515c4ede3a19ba3929e44de +target_sha=08f164a209570928506ea014327eec630a62cfdc +current_sha=08f164a209570928506ea014327eec630a62cfdc +api_version=0.29.0-4 +web_version=0.23.0-3 +app_touched=1 +backup=/root/DH_V2_BACKUPS/GITEA_DEPLOY_20260914_193944