Deployment & Settings Changes - v1.67.0
Release: v1.67.0 Date: 2026-06-10
Summary
Impact Level: MEDIUM
Action Required: NO for the core app (migrations auto-apply); YES for the analytics view (manual) and YES only if enabling the optional HubSpot sales dashboard
Backward Compatible: YES
Quick Decision Matrix
| Component/Area | Change Type | Risk Level | Action Required | Impact |
|---|---|---|---|---|
| Environment Variables | New (optional, observability only) | LOW | NO (core); YES if enabling HubSpot | HUBSPOT_* vars apply only when hubspotSalesAdapter.enabled=true |
| Database Schema | Migrations (V106 + V107) | LOW | NO | Two additive migrations; auto-applied on editor-service startup |
| Analytics Schema | New view v_org_ptd_usage |
LOW | YES (manual) | Recreated via seatmap_analytics role from manual/analytics-schema.sql |
| Application Config | Redis command timeout (3s) | LOW | NO | Editor and booking services fail fast on Redis stalls instead of hanging the request |
| Docker Images | Standard upgrade | NONE | NO | Tag bump only |
| Kubernetes/Helm | Observability chart bump + new component | LOW | NO (auto via Flux); YES if enabling | Chart 0.2.19; new SaaS Monthly dashboard; optional HubSpot adapter (disabled by default) |
| Admin API | New plan/billing endpoints | LOW | NO | New admin-only plan and tenant endpoints; no change to existing public endpoints |
| Runtime Dependencies | No changes | NONE | NO | - |
| Monitoring/Logging | New + modified Grafana dashboards | NONE | NO (auto-applied via chart bump) | SaaS Monthly PTD panel added; account-management and sales-funnel dashboards updated |
Deployment Decision
Overall Risk: LOW
Recommended Action: APPROVE
Downtime Required: NO - zero-downtime rolling restart supported.
Rollback Risk: SAFE - V106 and V107 are additive (new table, new column, new nullable FK). Downgrading editor-service with the new objects present is safe; unused columns and tables are ignored.
Special Considerations: The analytics view must be applied manually with the seatmap_analytics role. The HubSpot sales dashboard is opt-in and inert unless explicitly enabled with a token secret.
Configuration Changes
Application Config
A Redis command timeout is now set for the editor and booking services so that a slow or stalled cache fails fast instead of blocking the request thread (SEAT-973):
data.redis.timeout: 3s
This is delivered via the chart defaults; no operator action is required. The save path treats post-commit cache eviction as best-effort, and booking-service compresses cached seatmaps to reduce memory pressure.
Environment Variables (observability, optional)
These apply only when the HubSpot sales adapter is enabled (hubspotSalesAdapter.enabled=true); the adapter is disabled by default and the core platform never reads them.
| Variable | Required | Default | Description |
|---|---|---|---|
HUBSPOT_ACCESS_TOKEN |
Yes (only if adapter on) | (none) | HubSpot private-app token, read from a K8s Secret |
HUBSPOT_CACHE_TTL_SECONDS |
No | 300 |
Adapter cache TTL |
HUBSPOT_HEALTH_MAX_AGE_SECONDS |
No | 1800 |
Max refresh age before the adapter reports unhealthy |
No environment variables changed for the editor, booking, or converter services.
Database Changes
Two Flyway migrations run automatically on editor-service startup. Booking-service does not run migrations and is unaffected.
V106__create_schema_update_request_log.sql
Additive forensic logging for failed schema-update requests (SEAT-973).
New schema_update_request_log table - append-only capture of schema-save attempts:
id BIGSERIAL PRIMARY KEY,created_at TIMESTAMPTZ NOT NULL.- Context columns:
schema_id,org_id,user_id,username,http_method,request_uri,http_status. - Payload columns:
request_body JSONB,request_body_raw TEXT,exception TEXT,exported_seatmap TEXT. - Six covering indexes on
(schema_id|org_id|user_id|http_status|request_uri, created_at DESC)and(created_at DESC)for diagnosis queries.
No existing tables are modified.
V107__plan_and_billing_period.sql
Additive schema for org plan capacity and billing period (SEAT-1027).
New plan table:
id BIGINT PRIMARY KEY,name VARCHAR(255) NOT NULL,capacity BIGINT NOT NULL DEFAULT 0, audit columns (created_at,updated_at,created_by_id,modified_by_id).plan_id_seqsequence and a unique index onname.
organization:
plan_id BIGINT- nullable FK toplan(id)(constraintfk_organization_plan).billing_period_start DATE- nullable.
Both additions are nullable, so existing organizations are unaffected until a plan is assigned.
Analytics view (manual)
manual/analytics-schema.sql adds CREATE OR REPLACE VIEW analytics.v_org_ptd_usage (period-to-date usage per org, feeding the SaaS Monthly dashboard). Apply manually with the seatmap_analytics role - it is not part of the Flyway set and does not run on startup.
Kubernetes / Helm Changes
Observability chart
Chart Version: 0.2.19 (was 0.2.18)
The version bump is required for the dashboard changes to reconcile via Flux.
- New SaaS Monthly period-to-date dashboard panel (org usage against plan capacity).
- Updated
account-managementandsales-funneldashboards. - New optional HubSpot sales adapter component (
hubspotSalesAdapter),enabled: falseby default. When enabled it renders an internal “Seatmap Clients” dashboard set and requires a HubSpot token secret (see env vars above). It has no effect on the customer-facing product.
No changes to the editor, booking, converter, or knowledge-base Helm values.
Admin API
New admin-only endpoints back the plan/billing feature (SEAT-1027): plan listing/creation, plan assignment to organizations, and tenant org listing. These live under the existing admin surface and require admin authentication. No existing public endpoint changed. See booking-service-api.md for the renderer-facing data changes.
CI/CD Deployment
Deployed through the standard GitLab CI/CD + Flux flow:
- Merge to
dev- auto-deploys to stage (Flux reconciles the observability chart bump). - Merge to
main- manual trigger to production.
Zero-Downtime: Supported. Action Required: apply the analytics view manually; everything else is automated.
Rollback
Rollback Support: Automated via GitLab CI/CD (redeploy previous image tags).
Database Rollback: Not required - V106/V107 are additive and safe to leave in place when downgrading the service.
Procedure: Roll back the editor/booking image tags. The new table, column, FK, and analytics view are inert for older code.
Sign-Off
Deployment Risk: LOW
Rollback Safety: SAFE
Downtime Required: NO
Special Steps: Apply analytics.v_org_ptd_usage manually with the seatmap_analytics role. Leave the HubSpot adapter disabled unless the internal sales dashboard is wanted.