@rehearsal-db/core 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -4
- package/COMPATIBILITY.md +41 -4
- package/README.md +8 -4
- package/dist/package.json +3 -1
- package/dist/src/cli/arguments.mjs +1 -0
- package/dist/src/cli/basic_command_handlers.mjs +4 -0
- package/dist/src/cli/editor_command_handlers.mjs +24 -0
- package/dist/src/project/configuration_contract.d.mts +1 -0
- package/dist/src/project/configuration_normalization.mjs +2 -1
- package/dist/src/project/configuration_rendering.mjs +3 -2
- package/dist/src/project/configuration_resolution.mjs +0 -2
- package/dist/src/project/project_detection.d.mts +2 -0
- package/dist/src/project/project_detection.mjs +1 -0
- package/dist/src/project/runtime_project_identity.d.mts +5 -0
- package/dist/src/project/runtime_project_identity.mjs +41 -0
- package/dist/src/project/setup.mjs +3 -1
- package/dist/src/runtime/migration_history.d.mts +5 -1
- package/dist/src/runtime/migration_history.mjs +24 -6
- package/dist/src/runtime/migration_impact.d.mts +125 -0
- package/dist/src/runtime/migration_impact.mjs +278 -0
- package/dist/src/runtime/migration_impact_catalog.d.mts +18 -0
- package/dist/src/runtime/migration_impact_catalog.mjs +116 -0
- package/dist/src/runtime/migration_impact_plan.d.mts +47 -0
- package/dist/src/runtime/migration_impact_plan.mjs +297 -0
- package/dist/src/runtime/migration_impact_queries.d.mts +22 -0
- package/dist/src/runtime/migration_impact_queries.mjs +270 -0
- package/dist/src/runtime/migration_insights.d.mts +137 -0
- package/dist/src/runtime/migration_insights.mjs +143 -0
- package/dist/src/runtime/migration_insights_input.d.mts +13 -0
- package/dist/src/runtime/migration_insights_input.mjs +153 -0
- package/dist/src/runtime/migration_sql_lexer.d.mts +14 -0
- package/dist/src/runtime/migration_sql_lexer.mjs +204 -0
- package/dist/src/runtime/migration_sql_scan.d.mts +16 -0
- package/dist/src/runtime/migration_sql_scan.mjs +369 -0
- package/dist/src/runtime/plan.d.mts +2 -1
- package/dist/src/runtime/plan.mjs +4 -4
- package/dist/src/runtime/policy.d.mts +2 -0
- package/dist/src/runtime/policy.mjs +13 -1
- package/dist/src/runtime/privileges.d.mts +25 -0
- package/dist/src/runtime/privileges.mjs +198 -0
- package/dist/src/runtime/topology.d.mts +1 -1
- package/dist/src/runtime/topology.mjs +2 -2
- package/dist/src/shared/cancellation.mjs +1 -0
- package/dist/src/shared/held_path_ancestry.d.mts +7 -0
- package/dist/src/shared/held_path_ancestry.mjs +110 -0
- package/dist/src/shared/operation_guard.mjs +1 -0
- package/dist/src/targets/migration_impact_runtime.d.mts +22 -0
- package/dist/src/targets/migration_impact_runtime.mjs +367 -0
- package/dist/src/targets/supabase.mjs +1 -0
- package/docs/README.md +20 -7
- package/docs/adapters.md +10 -0
- package/docs/architecture.md +75 -1
- package/docs/commands.md +169 -34
- package/docs/configuration.md +42 -9
- package/docs/getting-started.md +4 -4
- package/docs/index.md +1 -0
- package/docs/releasing.md +15 -11
- package/docs/roadmap.md +49 -9
- package/docs/runtime-lifecycle.md +15 -4
- package/docs/runtime-policies.md +145 -0
- package/docs/stability.md +8 -4
- package/docs/updating.md +73 -0
- package/docs/vscode.md +30 -19
- package/package.json +3 -1
package/docs/runtime-policies.md
CHANGED
|
@@ -66,6 +66,151 @@ identity policy. Verification accepts the configured placeholder before associat
|
|
|
66
66
|
the exact recorded local identity afterward. Rehearsal stores that mapping only in its
|
|
67
67
|
local internal schema; it does not duplicate the old role or weaken the row check.
|
|
68
68
|
|
|
69
|
+
### Explicit Data API grants
|
|
70
|
+
|
|
71
|
+
Supabase's [official announcement](https://supabase.com/changelog/45329-breaking-change-tables-not-exposed-to-data-and-graphql-api-automatically)
|
|
72
|
+
sets October 30, 2026 for changing existing projects to opt-in exposure of new
|
|
73
|
+
`public` tables. Existing table grants remain; this is not evidence that a particular
|
|
74
|
+
project's setting has already changed. Direct PostgreSQL access is a separate contract.
|
|
75
|
+
|
|
76
|
+
[Grants and RLS](https://supabase.com/docs/guides/api/securing-your-api) answer different
|
|
77
|
+
questions: a grant allows an API role to reach an object; an RLS policy decides which
|
|
78
|
+
rows that role can use. Passing an administrator SQL query or finding an RLS policy
|
|
79
|
+
does not prove that an application's Data API request will work safely.
|
|
80
|
+
|
|
81
|
+
For every new or recreated API table:
|
|
82
|
+
|
|
83
|
+
1. Review the exposed schemas and the exact operations needed by `anon`,
|
|
84
|
+
`authenticated`, and `service_role`. An internal table does not need API access.
|
|
85
|
+
2. Put explicit, least-privilege grants and RLS in that table's new migration. Remove
|
|
86
|
+
unwanted inherited defaults for the new object; do not blindly grant anonymous CRUD.
|
|
87
|
+
Check its sequences and callable functions separately, including `PUBLIC EXECUTE`.
|
|
88
|
+
3. Preserve already-applied migration files. Correct historical objects through a
|
|
89
|
+
separately reviewed forward migration, not by rewriting the baseline's prefix.
|
|
90
|
+
4. Test an empty setup and the disposable restore/reset/replay path with both permissive
|
|
91
|
+
and revoked automatic defaults. A schema dump alone is not proof of effective ACLs:
|
|
92
|
+
[Supabase's dump guidance](https://supabase.com/docs/reference/cli/supabase-db-dump#supabase-db-dump)
|
|
93
|
+
warns that target default privileges can broaden restored access.
|
|
94
|
+
5. Independently check SQL grants, RLS and actual allowed/denied Data API requests with
|
|
95
|
+
the application's roles. A successful `service_role` request does not prove ordinary
|
|
96
|
+
authenticated access, and an empty RLS-filtered response is not a grant refusal.
|
|
97
|
+
|
|
98
|
+
For example, a **new read-only authenticated API table**, created by its migration owner,
|
|
99
|
+
can deliberately declare its own boundary:
|
|
100
|
+
|
|
101
|
+
```sql
|
|
102
|
+
create table public.api_notes (
|
|
103
|
+
id bigint generated by default as identity primary key,
|
|
104
|
+
owner_id uuid not null,
|
|
105
|
+
body text not null
|
|
106
|
+
);
|
|
107
|
+
alter table public.api_notes enable row level security;
|
|
108
|
+
revoke all on table public.api_notes from public, anon, authenticated, service_role;
|
|
109
|
+
revoke all on sequence public.api_notes_id_seq from public, anon, authenticated, service_role;
|
|
110
|
+
grant select on table public.api_notes to authenticated;
|
|
111
|
+
create policy read_own_notes on public.api_notes
|
|
112
|
+
for select to authenticated using ((select auth.uid()) = owner_id);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
This example deliberately permits no client inserts, sequence use or service-role
|
|
116
|
+
access. Choose a different reviewed boundary when the application needs those operations.
|
|
117
|
+
Apply such SQL only through your own authorized migration process; Rehearsal does not
|
|
118
|
+
change hosted grants or RLS on your behalf.
|
|
119
|
+
|
|
120
|
+
### Read-only privilege expectations (core 1.1.0 and newer)
|
|
121
|
+
|
|
122
|
+
Core 1.1.0 adds the following optional declaration. Earlier releases, including
|
|
123
|
+
1.0.2, do not accept `privileges`; install a published release containing this contract
|
|
124
|
+
before adding it. A project-owned application proof remains necessary for API/RLS behavior.
|
|
125
|
+
|
|
126
|
+
Add `privileges` to the same runtime-policy JSON to check required and forbidden
|
|
127
|
+
**effective** privileges after restore and migration. These checks issue no `GRANT`,
|
|
128
|
+
`REVOKE`, role switch or permission repair. They do not infer grants from RLS.
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"policyVersion": 1,
|
|
133
|
+
"privileges": [
|
|
134
|
+
{
|
|
135
|
+
"kind": "schema",
|
|
136
|
+
"schema": "public",
|
|
137
|
+
"role": "authenticated",
|
|
138
|
+
"required": ["USAGE"],
|
|
139
|
+
"forbidden": ["CREATE"]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"kind": "table",
|
|
143
|
+
"schema": "public",
|
|
144
|
+
"name": "api_notes",
|
|
145
|
+
"role": "authenticated",
|
|
146
|
+
"required": ["SELECT"],
|
|
147
|
+
"forbidden": [
|
|
148
|
+
"INSERT",
|
|
149
|
+
"UPDATE",
|
|
150
|
+
"DELETE",
|
|
151
|
+
"TRUNCATE",
|
|
152
|
+
"REFERENCES",
|
|
153
|
+
"TRIGGER",
|
|
154
|
+
"MAINTAIN"
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"kind": "table",
|
|
159
|
+
"schema": "public",
|
|
160
|
+
"name": "api_notes",
|
|
161
|
+
"role": "anon",
|
|
162
|
+
"forbidden": [
|
|
163
|
+
"SELECT",
|
|
164
|
+
"INSERT",
|
|
165
|
+
"UPDATE",
|
|
166
|
+
"DELETE",
|
|
167
|
+
"TRUNCATE",
|
|
168
|
+
"REFERENCES",
|
|
169
|
+
"TRIGGER",
|
|
170
|
+
"MAINTAIN"
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Existing policy fields and structural/RLS expectations remain independent and compatible.
|
|
178
|
+
Omitting `privileges` preserves the previous behavior; an empty array adds no checks.
|
|
179
|
+
Each nonempty declaration needs at least one required or forbidden privilege. Omitted
|
|
180
|
+
lists mean empty, but explicit `null`, overlapping lists, unknown fields and unsupported
|
|
181
|
+
identifiers or privileges are rejected. At most 1,024 declarations are accepted.
|
|
182
|
+
|
|
183
|
+
| Kind | Object fields | Accepted privileges |
|
|
184
|
+
| ---------- | --------------------------------- | --------------------------------------------------------------------------------------- |
|
|
185
|
+
| `schema` | `schema`; no `name` | `USAGE`, `CREATE` |
|
|
186
|
+
| `table` | `schema`, `name` | `SELECT`, `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, `REFERENCES`, `TRIGGER`, `MAINTAIN` |
|
|
187
|
+
| `sequence` | `schema`, `name` | `USAGE`, `SELECT`, `UPDATE` |
|
|
188
|
+
| `function` | `schema`, `name`, `argumentTypes` | `EXECUTE` |
|
|
189
|
+
|
|
190
|
+
Use exact uppercase privilege names and reviewed existing role/object names. Roles must
|
|
191
|
+
exist in `pg_roles`; declare an actual application role to check access inherited from
|
|
192
|
+
`PUBLIC`, not a standalone `PUBLIC` pseudo-role. Function checks cover ordinary functions,
|
|
193
|
+
not procedures, aggregates or window routines. A function declaration must include its
|
|
194
|
+
exact input types (including `INOUT`, excluding output-only arguments) as structured
|
|
195
|
+
catalog names, for example
|
|
196
|
+
`"argumentTypes": [{ "schema": "pg_catalog", "name": "uuid" }]`; `[]` selects a
|
|
197
|
+
zero-argument function. At most 32 arguments are supported. SQL signature strings and
|
|
198
|
+
non-`pg_catalog` argument types are not accepted; use a project-owned proof for unsupported
|
|
199
|
+
signatures rather than changing a function to fit the check.
|
|
200
|
+
|
|
201
|
+
Effective checks include inherited role permissions and grants through `PUBLIC`.
|
|
202
|
+
Required table access means a full-table privilege. Forbidden `SELECT`, `INSERT`,
|
|
203
|
+
`UPDATE` and `REFERENCES` also detect a privilege granted on only one column.
|
|
204
|
+
`MAINTAIN` is checked on PostgreSQL 17 and newer; below 17 it is unavailable, so a required
|
|
205
|
+
check fails and a forbidden check passes. Missing roles, objects, types or exact function
|
|
206
|
+
signatures fail rather than being interpreted as a successful denial.
|
|
207
|
+
|
|
208
|
+
These declarations do not inventory undeclared objects, prove RLS expressions or grant
|
|
209
|
+
options, change Data API exposure settings, or make a live HTTP request. Keep your
|
|
210
|
+
application's positive and negative API proof alongside them, including fresh setup and
|
|
211
|
+
replay coverage. A failed check needs a fresh reviewed migration; it is never an
|
|
212
|
+
automatic privilege escalation or a reason to use hosted administrator credentials.
|
|
213
|
+
|
|
69
214
|
## Identity policy
|
|
70
215
|
|
|
71
216
|
The identity policy links one verified local Supabase identity to a copied pseudonymous
|
package/docs/stability.md
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
# Stability and
|
|
1
|
+
# Stability and release verification
|
|
2
2
|
|
|
3
|
-
Rehearsal core **1.
|
|
3
|
+
Rehearsal core **1.1.0 is published** on
|
|
4
4
|
[npm](https://www.npmjs.com/package/@rehearsal-db/core). This page defines its
|
|
5
5
|
compatibility promise and the verification policy for releases; it is not an
|
|
6
6
|
unfinished launch checklist. Stable core does not require every planned database,
|
|
7
7
|
editor interface, or paid feature.
|
|
8
8
|
|
|
9
|
+
The compatibility promise began with **1.0.0**. The separate
|
|
10
|
+
[VS Code Starter 0.1.23 preview](vscode.md) has its own editor acceptance and does
|
|
11
|
+
not turn a core release into a completed accessibility or provider walkthrough.
|
|
12
|
+
|
|
9
13
|
## What becomes a compatibility promise
|
|
10
14
|
|
|
11
15
|
Starting with `1.0.0`, Rehearsal treats these documented surfaces as public:
|
|
@@ -65,7 +69,7 @@ ready. The sequence below is policy, not a claim that its checks have passed.
|
|
|
65
69
|
corrected candidate. Reuse sufficient unchanged evidence with its original scope;
|
|
66
70
|
do not relabel old or unavailable manual checks as new results. No minimum number
|
|
67
71
|
of calendar days replaces these checks.
|
|
68
|
-
6. Publish
|
|
72
|
+
6. Publish the selected stable version only when no blocking issue remains and the exact tarball has passed
|
|
69
73
|
the required release checks and consumer acceptance. The protected GitHub npm
|
|
70
74
|
review is the single human authorization for its displayed exact version and
|
|
71
75
|
checksum; no separate chat approval or pasted phrase is required.
|
|
@@ -94,7 +98,7 @@ baseline. Automatic compatible updates do not cross the 0.x-to-1.x version bound
|
|
|
94
98
|
review the changelog and deliberately select the stable version:
|
|
95
99
|
|
|
96
100
|
```bash
|
|
97
|
-
npm install --save-dev --save-exact @rehearsal-db/core@1.
|
|
101
|
+
npm install --save-dev --save-exact @rehearsal-db/core@1.1.0
|
|
98
102
|
npx --no-install rehearsal --version
|
|
99
103
|
npx --no-install rehearsal doctor
|
|
100
104
|
```
|
package/docs/updating.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Releases and updates
|
|
2
|
+
|
|
3
|
+
The CLI and VS Code extension update separately. Their version numbers do not need to
|
|
4
|
+
match. Updating a package does not run migrations or reset your database.
|
|
5
|
+
|
|
6
|
+
## What changed?
|
|
7
|
+
|
|
8
|
+
Read the [CLI release notes](https://github.com/Ddupasquier/rehearsal-db/releases) or
|
|
9
|
+
[extension release notes](https://github.com/Ddupasquier/rehearsal-vscode/releases)
|
|
10
|
+
for the version you plan to install. Each component has its own release history.
|
|
11
|
+
|
|
12
|
+
## Is my environment supported?
|
|
13
|
+
|
|
14
|
+
Rehearsal supports Node.js 22, 24 and 26 on macOS and Linux. On Windows, run database
|
|
15
|
+
commands in a WSL 2 Linux workspace; native PowerShell and Command Prompt are not
|
|
16
|
+
supported database runtimes. The WSL route remains a preview, not a claim of native
|
|
17
|
+
Windows database support. See [supported environments and limitations](https://github.com/Ddupasquier/rehearsal-db/blob/main/COMPATIBILITY.md)
|
|
18
|
+
and the [Windows setup guide](getting-started.md#windows-use-a-wsl-2-linux-workspace)
|
|
19
|
+
before installing.
|
|
20
|
+
|
|
21
|
+
## How do I update?
|
|
22
|
+
|
|
23
|
+
### VS Code extension
|
|
24
|
+
|
|
25
|
+
Open **Extensions**, find **Rehearsal DB** (`rehearsal-db.rehearsal-db`), and choose
|
|
26
|
+
**Update** when available. Save your work and reload only when you are ready, if VS Code
|
|
27
|
+
asks. For a direct download, follow the [verified VSIX instructions](vscode.md#direct-github-installation).
|
|
28
|
+
|
|
29
|
+
Prefer automatic updates? Open **Rehearsal: Check for Updates** and save the extension
|
|
30
|
+
and/or CLI options you want. They are independent, initially off, and can be disabled
|
|
31
|
+
later. An unavailable network, busy project or incompatible update may defer installation.
|
|
32
|
+
See [automatic updates](vscode.md#optional-automatic-updates) for consent and privacy details.
|
|
33
|
+
|
|
34
|
+
Using the legacy preview through 0.1.18? Follow the [one-time identity migration](vscode.md#move-from-a-preview-through-0118)
|
|
35
|
+
instead of installing both extension identities together.
|
|
36
|
+
|
|
37
|
+
### Project CLI package
|
|
38
|
+
|
|
39
|
+
Finish active Rehearsal commands first. Read the [release notes](https://github.com/Ddupasquier/rehearsal-db/releases),
|
|
40
|
+
then use your project's existing package manager and dependency location. For an npm
|
|
41
|
+
project that keeps Rehearsal in development dependencies, update to the reviewed 1.2.0
|
|
42
|
+
release only after it appears in the official registry:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install --save-dev --save-exact @rehearsal-db/core@1.2.0
|
|
46
|
+
npx --no-install rehearsal --version
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Review the package and lockfile changes before the next Rehearsal command.
|
|
50
|
+
|
|
51
|
+
## Breaking changes or known limitations?
|
|
52
|
+
|
|
53
|
+
Check the target release notes before upgrading. Breaking upgrades, the move from a
|
|
54
|
+
0.x preview to stable core, and local source/tarball installations need deliberate
|
|
55
|
+
review rather than an automatic switch. See the [compatibility promise](stability.md#what-becomes-a-compatibility-promise)
|
|
56
|
+
or [troubleshooting](troubleshooting.md) when an update is refused.
|
|
57
|
+
|
|
58
|
+
Do not delete keys, baselines or sandbox data to update. Updating does not authorize
|
|
59
|
+
production access or make an unsupported database or platform supported. Keep the
|
|
60
|
+
[data-safety boundaries](security-model.md) and explicit reset/discard warnings in
|
|
61
|
+
force; a successful rehearsal is not a guarantee that deployment is safe.
|
|
62
|
+
|
|
63
|
+
## Where can I verify the package's origin?
|
|
64
|
+
|
|
65
|
+
Use the official [npm package](https://www.npmjs.com/package/@rehearsal-db/core),
|
|
66
|
+
[VS Code Marketplace listing](https://marketplace.visualstudio.com/items?itemName=rehearsal-db.rehearsal-db)
|
|
67
|
+
or linked GitHub releases. npm provenance links the CLI package to its public release
|
|
68
|
+
source and build. For a direct VSIX download, follow the [SHA-256 verification steps](vscode.md#direct-github-installation).
|
|
69
|
+
Origin verification does not replace reviewing a release's compatibility or safety limits.
|
|
70
|
+
|
|
71
|
+
You do not need publisher credentials, GitHub deployment approvals or the maintainer
|
|
72
|
+
release checklist to install or update Rehearsal. Those belong to the
|
|
73
|
+
[maintainer publishing guide](releasing.md).
|
package/docs/vscode.md
CHANGED
|
@@ -4,9 +4,9 @@ The Rehearsal extension turns the local CLI into a project-aware database-change
|
|
|
4
4
|
workbench. It is for developers who want the safety of exact migration plans and disposable
|
|
5
5
|
local runtimes without memorizing every command.
|
|
6
6
|
|
|
7
|
-
This guide targets **Free Starter 0.1.
|
|
7
|
+
This guide targets **Free Starter 0.1.24**, named **Rehearsal DB** on
|
|
8
8
|
[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=rehearsal-db.rehearsal-db),
|
|
9
|
-
with a [reviewed GitHub VSIX](https://github.com/Ddupasquier/rehearsal-vscode/releases/tag/v0.1.
|
|
9
|
+
with a [reviewed GitHub VSIX](https://github.com/Ddupasquier/rehearsal-vscode/releases/tag/v0.1.24)
|
|
10
10
|
for direct installation. The canonical extension ID is **`rehearsal-db.rehearsal-db`**,
|
|
11
11
|
published by **`rehearsal-db`**. The workbench and commands retain the **Rehearsal** brand.
|
|
12
12
|
All included features are free indefinitely for personal or commercial development.
|
|
@@ -24,6 +24,9 @@ identity. This is not an automatic rename or uninstall.
|
|
|
24
24
|
|
|
25
25
|
- See what Rehearsal detected, what it suggests, and what still needs your decision.
|
|
26
26
|
- Review, filter, sort, and check off the exact pending migration set.
|
|
27
|
+
- Read optional static Migration Insights with core 1.2.0 and open unchanged source
|
|
28
|
+
at a lexical finding. Unsupported analysis stays unknown; no warning is a safety
|
|
29
|
+
verdict or proof of valid SQL. No database is started or contacted for this analysis.
|
|
27
30
|
- Inspect targets, runtime state, retained baseline generations, local ports, and app URLs.
|
|
28
31
|
- Review safe configuration changes as an exact diff before writing them.
|
|
29
32
|
- Launch the same public CLI operations with their exact command and confirmation intact.
|
|
@@ -44,8 +47,8 @@ boundaries, baselines, migration digests, runtime isolation, locks, rollback, an
|
|
|
44
47
|
Use desktop VS Code 1.101 or newer on macOS or Linux and a supported Node.js release
|
|
45
48
|
(22, 24, or 26). You do not need the extension source repository or Test Lab.
|
|
46
49
|
For a Windows desktop, use the [WSL 2 Linux-workspace setup](getting-started.md#windows-use-a-wsl-2-linux-workspace).
|
|
47
|
-
|
|
48
|
-
process and
|
|
50
|
+
Since editor 0.1.21, native Windows inspection and foreground actions refuse before launching a child
|
|
51
|
+
process and direct you to Remote-WSL. Install the extension into the Linux extension
|
|
49
52
|
host and keep the project on its Linux filesystem. WSL compatibility remains a preview;
|
|
50
53
|
real WSL core fixtures do not certify a native Remote-WSL editor walkthrough.
|
|
51
54
|
|
|
@@ -66,8 +69,9 @@ real WSL core fixtures do not certify a native Remote-WSL editor walkthrough.
|
|
|
66
69
|
4. Follow **Next best step**. Review the detected project and active configuration;
|
|
67
70
|
setup, source access, migration execution and cleanup keep their own confirmations.
|
|
68
71
|
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
Core and the extension have independent version numbers. This guide targets core
|
|
73
|
+
**1.2.0** and Starter **0.1.24**, only once each is published. See [Updates](updating.md)
|
|
74
|
+
when moving an existing installation forward.
|
|
71
75
|
The extension's minimum core is `0.1.0-rc.4`. A project that is not ready should show
|
|
72
76
|
setup guidance, not require you to build the extension. Opening the dashboard does not
|
|
73
77
|
start a database or run a migration. Use
|
|
@@ -92,10 +96,10 @@ distinction between desktop OS, extension host, architecture and actual database
|
|
|
92
96
|
### Direct GitHub installation
|
|
93
97
|
|
|
94
98
|
The verified GitHub VSIX is an alternative to Marketplace. Open the
|
|
95
|
-
[Starter 0.1.
|
|
96
|
-
Under **Assets**, download `rehearsal-db-0.1.
|
|
97
|
-
run `shasum -a 256 /path/to/rehearsal-db-0.1.
|
|
98
|
-
`sha256sum /path/to/rehearsal-db-0.1.
|
|
99
|
+
[Starter 0.1.24 release](https://github.com/Ddupasquier/rehearsal-vscode/releases/tag/v0.1.24).
|
|
100
|
+
Under **Assets**, download `rehearsal-db-0.1.24.vsix` and `SHA256SUMS`. In a terminal,
|
|
101
|
+
run `shasum -a 256 /path/to/rehearsal-db-0.1.24.vsix` on macOS or
|
|
102
|
+
`sha256sum /path/to/rehearsal-db-0.1.24.vsix` on Linux. Compare the result with that
|
|
99
103
|
release's `SHA256SUMS`; stop if they differ. Do not substitute a local rebuild.
|
|
100
104
|
Then open **Extensions → … → Install from VSIX…** and choose the verified file.
|
|
101
105
|
Save your work and reload only if VS Code asks.
|
|
@@ -147,6 +151,11 @@ reviewed change. Wait for **Saved**, then choose **Return to project**. Concurre
|
|
|
147
151
|
refuse safely instead of overwriting someone else's work; a saved confirmation is tied
|
|
148
152
|
to the exact bytes read back from disk, not merely a completed write request.
|
|
149
153
|
|
|
154
|
+
Invalid structured fields show supported values or numeric limits before review.
|
|
155
|
+
For example, retained environment count must be a whole number from 1 to 1000.
|
|
156
|
+
If a review becomes stale, close it, refresh Rehearsal, and review the current source;
|
|
157
|
+
saved and unsaved edits are not reverted. A refusal does not retry or reset a database.
|
|
158
|
+
|
|
150
159
|
Commands reuse the same Rehearsal terminal for a project only after its previous command
|
|
151
160
|
has a confirmed exit and its directory still matches. A running sandbox or manually
|
|
152
161
|
entered foreground command is never interrupted to make room for another action. If
|
|
@@ -222,7 +231,7 @@ route; do not delete its coordination lock while a package manager may still be
|
|
|
222
231
|
|
|
223
232
|
Manual updating stays available: download and verify the next reviewed VSIX, then repeat
|
|
224
233
|
**Install from VSIX…**. See the release's
|
|
225
|
-
[installation guide](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.
|
|
234
|
+
[installation guide](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.24/README.md#install-and-open-your-project).
|
|
226
235
|
An ordinary core-package update is detected from its manifest, lockfile and installed
|
|
227
236
|
metadata without reloading VS Code. The header shows loaded extension and core versions
|
|
228
237
|
separately; installed → newest appears only after a successful release check. Unknown or
|
|
@@ -231,16 +240,18 @@ offline availability is not proof that you are up to date.
|
|
|
231
240
|
## Privacy boundary
|
|
232
241
|
|
|
233
242
|
Passive inspection stays local. The extension includes no telemetry, advertising, hosted
|
|
234
|
-
database access, or account. It does not read environment files, credentials, private rows
|
|
235
|
-
baseline contents
|
|
243
|
+
database access, or account. It does not read environment files, credentials, private rows
|
|
244
|
+
or baseline contents. With the optional Insights capability, core also reads bounded
|
|
245
|
+
project-local migration files and returns fixed findings, not SQL bodies or row values.
|
|
246
|
+
No SQL is executed or uploaded and no database is contacted for static analysis. An explicit migration
|
|
236
247
|
source action reads only the selected local input to check its approved bytes before
|
|
237
248
|
opening it in the editor; it does not upload SQL. User-approved package operations and
|
|
238
249
|
external links may use their own services.
|
|
239
250
|
|
|
240
251
|
## License, support and future Pro
|
|
241
252
|
|
|
242
|
-
Starter 0.1.
|
|
243
|
-
[free Starter license](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.
|
|
253
|
+
Starter 0.1.24 carries the same
|
|
254
|
+
[free Starter license](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.24/LICENSE).
|
|
244
255
|
Its current review, configuration, comparison and reporting tools are included; they
|
|
245
256
|
are not a timed evaluation or a paid feature gate. Free use does not mean the extension
|
|
246
257
|
is MIT-licensed: its bundled terms govern copying and redistribution. Core remains MIT.
|
|
@@ -249,17 +260,17 @@ Future optional Pro editor workflows must be separately identified. They cannot
|
|
|
249
260
|
retroactively remove Starter rights already granted for a received version. Pro pricing,
|
|
250
261
|
billing and entitlements are not implemented; no payment is needed to use Starter.
|
|
251
262
|
Database and safety capabilities stay in the free CLI. The
|
|
252
|
-
[edition guide](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.
|
|
263
|
+
[edition guide](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.24/docs/commercial-readiness.md)
|
|
253
264
|
owns the detailed boundary.
|
|
254
265
|
|
|
255
266
|
Preview describes stability, not a trial countdown. Support is best effort, with no
|
|
256
267
|
service-level agreement, database hosting, backups or production support. Before use,
|
|
257
|
-
read the release's [privacy statement](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.
|
|
258
|
-
and [support policy](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.
|
|
268
|
+
read the release's [privacy statement](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.24/PRIVACY.md)
|
|
269
|
+
and [support policy](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.24/SUPPORT.md).
|
|
259
270
|
Report editor problems in the
|
|
260
271
|
[Rehearsal issue tracker](https://github.com/Ddupasquier/rehearsal-db/issues), as
|
|
261
272
|
described in the support policy.
|
|
262
|
-
Use its [private security process](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.
|
|
273
|
+
Use its [private security process](https://github.com/Ddupasquier/rehearsal-vscode/blob/v0.1.24/SECURITY.md)
|
|
263
274
|
for vulnerabilities; never post credentials, private rows or baseline files publicly.
|
|
264
275
|
|
|
265
276
|
Historical VSIX files retain their bundled terms. Choose a reviewed release carrying
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rehearsal-db/core",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Catch PostgreSQL and Supabase migrations that pass on empty databases but fail on real data—before deploy.",
|
|
6
6
|
"repository": {
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"resourceInventory": 1,
|
|
28
28
|
"resourceManager": 1,
|
|
29
29
|
"migrationReview": 1,
|
|
30
|
+
"migrationInsights": 1,
|
|
31
|
+
"migrationImpact": 1,
|
|
30
32
|
"configurationReview": 1,
|
|
31
33
|
"baselineShape": 1
|
|
32
34
|
},
|