Verify and roll back
After running the client-assignment migration, walk through the verification queries on this page. If verification fails, follow the rollback procedure.
For every migrated table:
After running the client-assignment migration, walk through the verification queries on this page. If verification fails, follow the rollback procedure.
For every migrated table:
Run through this checklist before applying the v2.0.0 migration scripts. Each item links to the page that explains why it matters.
Full logical backup with pg_dump:
```bash
pg_dump --no-owner --no-privileges -Fc -f cypex-pre-v2.dump cypex
```
Filesystem snapshot of the PostgreSQL data directory, if your infrastructure supports it.
This page lists the upgrade scenarios that were exercised against the v2.0.0 migration scripts, the result of each, and the explicit answer to the most common question: does RLS change row visibility for existing single-tenant data?
InfoNo. RLS does not change row visibility for existing single-tenant data. All existing rows remain visible to all existing users after the upgrade.
The mechanism is described in detail on
RLS impact on existing data. The short
version: the upgrade creates a Default Organization, maps every existing
role to it, and the RLS policies explicitly allow organization_id IS NULL
rows to be visible. Existing single-tenant data therefore continues to be
readable.
This page answers the most common question about the v2.0.0 upgrade:
InfoDoes enabling RLS change row visibility for existing single-tenant data?
No. Existing single-tenant data remains visible to all existing users after the upgrade. The migration is designed so that the transition from v1.x to v2.0.0 is transparent for end users at the row-visibility level.
This page describes the v2.0.0 role model and how roles, JWTs, and RLS policies work together to enforce multi-tenant isolation.
All three roles are created as NOLOGIN group roles. Humans (and the
authenticator pool) log in as other roles that are granted
membership in these groups — they never LOGIN as cypex_admin,
cypex_user, or organization_admin themselves.
The v2.0.0 upgrade installs a default password policy by inserting a
row into cypex.t_config with key password_policy. This page documents
the policy, how to verify it on your instance, and how to override it.
The migration inserts:
| |
This is very permissive by design. The rationale is that shipping a working default is preferable to locking existing users out at upgrade time. Once the upgrade is complete, administrators should review the policy and tighten it to match their security requirements.
The v2.0.0 migrations are forward-only. There is no automatic rollback script. This page documents what you can and cannot undo if you need to revert the upgrade.
For every table that had RLS enabled by the v2.0.0 upgrade:
InfoLooking for the conceptual reference (“what is an Organization?”)? See Organizations.
After the v2.0.0 upgrade, every CYPEX deployment starts with a single Default Organization that holds all existing data. This page is the entry point for setting up additional organizations and assigning existing clients / schemas to them.
organization_id column on existing
application-schema tables.organization_id to client application-schema
tables. See Assign clients to organizations
for how to customize and run it.
This migration has failed in the field. Read
Failure modes
before production rollout.Export/Import packages CYPEX applications into portable ZIP archives for migration, backup, and deployment across instances. A package is the practical promote path: export from one environment, import into another, and get a working deployment that includes UI definitions, queries, workflows, functions, files, reports, users, roles, and optional audit logs — in structured JSON.
For governance and compliance reviews, pair packaging with the audit surfaces below: row history lives in cypex.t_history (History Tracking), table/login audit in the admin Audit section, and permission decisions in Governance evidence (cypex_log.t_permission_audit_log).
Operator-facing upgrade guides, one per major version. Start here before deploying a new major version of CYPEX in production.