• 2026.07.07-0 f391c3d1fb

    Release 2026.07.07-0
    All checks were successful
    Build and Deploy Production / build (push) Successful in 1m0s
    Build and Deploy Staging / build (push) Successful in 1m0s
    Tests / test (push) Successful in 1m21s
    Build and Deploy Production / deploy (push) Successful in 2m59s
    Build and Deploy Staging / deploy-appuio (push) Successful in 7s
    Stable

    tobru released this 2026-07-07 13:30:14 +00:00 | 65 commits to main since this release

    Release 2026.07.07-0

    • gitignore local .envrc
    • bump version 2026.07.02-1 -> 2026.07.07-0
    • feat(staff): refine organization detail view
    • temp disable deploy job to talos
    • Merge pull request 'Add Talos deployment target alongside OpenShift' (#599) from feat/talos-deployment-target into main
    • feat(deploy): add Talos deployment target alongside OpenShift
    • Merge pull request 'Service Catalog Read-Only API for Documentation' (#602) from service-catalog-ep into main
    • document missing env vars
    • document new env vars
    • feat(api): add read-only service catalog endpoint
    • service catalog endpoint design
    • fix(errors): render error pages without DB-hitting context processors
    • add staff links to helpdesk message
    • fix(fqdn): submit custom domain verbatim instead of appending managed suffix
    • feat(emails): point notification emails to the support page
    • Merge pull request 'Automated Trial Cleanup with Grace Period' (#583) from trial-cleanup-grace-period into main
    • just fmt
    • fix(core): surface trial-cleanup teardown failures for retry
    • feat(deploy): run procrastinate worker as a sidecar in the portal pod
    • feat(core): run trial cleanup as a procrastinate periodic task
    • install required dep for procrastinate
    • feat(core): auto-clean expired trials with grace period
    • add non-tech summary
    • docs: refine trial cleanup with scale-down and human-friendly timing
    • docs: add trial cleanup grace period design and plan
    • Merge pull request 'Task Runner for Deferred or Periodic Tasks' (#597) from feature/task-runner into main
    • feat(core): configurable task crons, timestamped worker logs
    • fix(core): surface procrastinate logs on the console
    • fix(core): allow manual defer of periodic tasks
    • docs: document procrastinate background worker
    • feat(deploy): replace CronJobs with procrastinate worker
    • feat(core): add procrastinate task runner
    • feat(staff): add per-instance fix for K8s health findings
    • support git worktrees
    • Merge pull request 'Fixes from Automated Security Review' (#596) from security/review-fixes into main
    • fix(security): escape instance fields in support ticket HTML
    • fix(security): run best-effort schema validation on CRD spec data
    • fix(security): disable server-controlled hidden CRD form fields
    • fix(security): render JSON payloads via json_script instead of |safe
    • fix(security): bind invitation acceptance to the invited email
    • fix(security): constant-time comparison for OSB basic auth
    • fix(security): enable HSTS, SSL redirect and nosniff in prod
    • fix(security): set CSRF_COOKIE_SECURE alongside the session cookie
    • fix(security): scope invitation deletion to the request organization
    • fix(security): default SERVALA_ENVIRONMENT to production (fail-safe DEBUG)
    • fix(security): escape dynamic array widget hidden JSON value
    • fix(security): enforce delete permission on ServiceInstanceDeleteView
    • Merge pull request 'Update dependency djlint to >=1.40.3' (#591) from renovate/djlint-1.x into main
    • Merge pull request 'Resolve compute-plan size field names from CRD schema' (#593) from fix/compute-plan-size-field-names into main
    • Merge pull request 'Update https://github.com/renovatebot/github-action action to v46.1.18' (#594) from renovate/https-github.com-renovatebot-github-action-46.x into main
    • Merge pull request 'Update https://github.com/astral-sh/setup-uv action to v8.3.0' (#595) from renovate/https-github.com-astral-sh-setup-uv-8.x into main
    • Update https://github.com/astral-sh/setup-uv action to v8.3.0
    • Update https://github.com/renovatebot/github-action action to v46.1.18
    • Update dependency djlint to >=1.40.3
    • fix: resolve compute-plan size field names from CRD schema
    • Merge pull request 'Update dependency coverage to >=7.15.0' (#592) from renovate/coverage-7.x into main
    • Merge pull request 'Organization Approval' (#590) from feature/organization-approval into main
    • fix: make Odoo invoice-address lookup robust and cached
    • feat: friendlier approval emails and resolved existing billing address
    • feat: clearer Odoo search on approval card
    • feat: link existing Odoo records at approval for deduplication
    • docs: design for approval-time Odoo deduplication
    • feat: improve staff approval detail UI
    • feat: refine org approval UX (helpdesk html, picker, staff list)
    • Update dependency coverage to >=7.15.0
    • feat: require staff approval for new organizations
    • docs: add organization approval flow design and plan
    • don't display _HOSTS connection keys
    Downloads