Commit Graph

123 Commits

Author SHA1 Message Date
Cauê Faleiros
0f16868f2d fix: stop the application database role reusing the admin password
docker-compose.yml passed POSTGRES_PASSWORD as APP_DB_PASSWORD, so the DML-only
dtf_app role and the owning administrator shared one credential and the
privilege separation bootstrap.py sets up was decorative.

APP_DB_PASSWORD is now its own required variable, and bootstrap refuses to run
when it matches the administrator password, in both the URL and discrete-field
configuration forms.

Deploying this requires APP_DB_PASSWORD to be set in the stack environment
first; db-init rotates the role to it on the same deploy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 18:32:55 -03:00
Cauê Faleiros
67aa6c970c fix: make the by-metre product reachable and its declaration verified
Navigation links carried data-modo-cta and opened loose artwork directly, so
every entry point except the price card bypassed "Arquivo por metro". Dropping
a PNG or JPG from the by-metre editor then switched the order to loose artwork
and repriced it, while the same screen advertised PNG/JPG in its drop zone and
marked that path as the cheaper one.

Replace the guessing with a declaration: the product is the choice. #tipoEnvio
shows ready sheet and loose artwork side by side with both prices, in all four
modes, reversible until a file is attached and locked afterwards. sel() no
longer reassigns modo, so a file can never change product or price on its own.

Verify the declaration instead of trusting it. medirFolha returns dpiFolha, and
an image without the pixels to span the film width at DPI_RECUSA is refused as
a sheet, with the numbers shown and one click to send it as loose artwork.
Previously a small image declared as a sheet was billed by the metre.

Scope pintaCaminhos to #caminhos .cam: its global selector was clearing the new
control. Move the checkout status out of #carr, which the success path hides,
so a paid order still confirms itself to the customer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 18:32:38 -03:00
Cauê Faleiros
9046ec6db0 fix: restore session creation broken by missing import
local/auth.py used os.environ without importing os, so new_session raised
NameError. Every first visit to /api/session, every registration and every
login returned 500, which left Site checkout, cart recovery and the customer
portal unusable since the R2 stack change.

Read COOKIE_SECURE once as a module constant and share it with local/app.py
instead of resolving the same variable in two places.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 18:32:17 -03:00
Cauê Faleiros
99fd92bdb8 fix: use packed artwork model for standard image uploads
All checks were successful
Build and deploy / Validate source (push) Successful in 10s
Build and deploy / Publish images and notify Portainer (push) Successful in 53s
2026-09-18 16:35:24 -03:00
Cauê Faleiros
483a083a3d fix: open artwork packing from DTF links 2026-09-18 16:00:47 -03:00
Cauê Faleiros
56275f3aba fix: route artwork uploads to packing flow 2026-09-18 15:41:39 -03:00
Cauê Faleiros
4ce28aa0d0 fix: restore ready-sheet preview behavior
All checks were successful
Build and deploy / Validate source (push) Successful in 8s
Build and deploy / Publish images and notify Portainer (push) Successful in 51s
2026-09-18 15:29:50 -03:00
Cauê Faleiros
56d8fde0db fix: show repeated artwork in preview
All checks were successful
Build and deploy / Validate source (push) Successful in 12s
Build and deploy / Publish images and notify Portainer (push) Successful in 1m2s
2026-09-18 15:14:29 -03:00
Cauê Faleiros
2225b70401 fix: preview uploaded artwork by metre
All checks were successful
Build and deploy / Validate source (push) Successful in 8s
Build and deploy / Publish images and notify Portainer (push) Successful in 53s
2026-09-18 14:54:10 -03:00
Cauê Faleiros
88a2a6f060 fix: prevent stale Kanban script after deployment
All checks were successful
Build and deploy / Validate source (push) Successful in 7s
Build and deploy / Publish images and notify Portainer (push) Successful in 53s
2026-09-18 14:27:33 -03:00
Cauê Faleiros
4d707009ba feat: configure Kanban login with optional email
All checks were successful
Build and deploy / Validate source (push) Successful in 10s
Build and deploy / Publish images and notify Portainer (push) Successful in 56s
2026-09-18 14:11:55 -03:00
Cauê Faleiros
d4190ebfeb Revert "feat: configure Kanban login by operator email"
All checks were successful
Build and deploy / Validate source (push) Successful in 12s
Build and deploy / Publish images and notify Portainer (push) Successful in 54s
This reverts commit 508fa03664.
2026-09-18 13:45:08 -03:00
Cauê Faleiros
508fa03664 feat: configure Kanban login by operator email
All checks were successful
Build and deploy / Validate source (push) Successful in 13s
Build and deploy / Publish images and notify Portainer (push) Successful in 1m2s
2026-09-18 12:54:04 -03:00
Cauê Faleiros
9d348ca893 fix: support arbitrary production database passwords
All checks were successful
Build and deploy / Validate source (push) Successful in 7s
Build and deploy / Publish images and notify Portainer (push) Successful in 49s
2026-09-18 12:18:43 -03:00
Cauê Faleiros
fbb620bd85 fix: keep web services up during API rollout 2026-09-18 12:17:34 -03:00
Cauê Faleiros
7605ca9918 fix: start web services in Portainer Swarm
All checks were successful
Build and deploy / Validate source (push) Successful in 7s
Build and deploy / Publish images and notify Portainer (push) Successful in 43s
2026-09-18 12:02:31 -03:00
Cauê Faleiros
e3e37f674d feat: run DTF stack with Cloudflare R2
All checks were successful
Build and deploy / Validate source (push) Successful in 7s
Build and deploy / Publish images and notify Portainer (push) Successful in 44s
2026-09-18 11:51:54 -03:00
Cauê Faleiros
dabb4db2e3 fix: make DTF compose stack Swarm compatible
All checks were successful
Build and deploy / Validate source (push) Successful in 7s
Build and deploy / Publish images and notify Portainer (push) Successful in 39s
2026-09-18 11:27:36 -03:00
Cauê Faleiros
6db107f0fc fix: use Compose deploy resource limits
All checks were successful
Build and deploy / Validate source (push) Successful in 6s
Build and deploy / Publish images and notify Portainer (push) Successful in 42s
2026-09-18 11:20:21 -03:00
Cauê Faleiros
38812884e3 chore: rename root compose file
All checks were successful
Build and deploy / Validate source (push) Successful in 1m40s
Build and deploy / Publish images and notify Portainer (push) Successful in 41s
2026-09-18 11:03:20 -03:00
Cauê Faleiros
6c0c94373a ci: publish DTF images and notify Portainer
All checks were successful
Build and deploy / Validate source (push) Successful in 1m29s
Build and deploy / Publish images and notify Portainer (push) Successful in 1m17s
2026-09-17 17:21:21 -03:00
Cauê Faleiros
26f7d2eb04 chore: remove generated artifacts from repository
Some checks failed
Validate, publish and deploy / validate (push) Successful in 7s
Validate, publish and deploy / publish-and-deploy (push) Failing after 6s
2026-09-15 16:58:26 -03:00
Cauê Faleiros
98c951d374 first commit
Some checks failed
Validate, publish and deploy / validate (push) Successful in 2m2s
Validate, publish and deploy / publish-and-deploy (push) Failing after 8s
2026-09-15 16:42:34 -03:00