@rehearsal-db/core 0.1.0-beta.16 → 0.1.0-beta.18

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.
@@ -166,9 +166,18 @@ Authentication has three separate parts:
166
166
  3. The identity policy matches that verified local identity and transfers only the
167
167
  reviewed copied-account graph.
168
168
 
169
- The email stays in an environment variable; only its reviewed hash is committed. Run
170
- `rehearsal open`, complete the ordinary local sign-in, and stop the app with `Ctrl+C`.
171
- Then preview and confirm the association:
169
+ The email stays in an environment variable; only its reviewed hash is committed. The
170
+ guided command keeps the app available for ordinary sign-in, detects the reviewed local
171
+ Auth match, presents a redacted preview, and supplies the exact plan fingerprint
172
+ internally after one confirmation:
173
+
174
+ ```bash
175
+ npx rehearsal identity connect
176
+ ```
177
+
178
+ It never intercepts provider credentials or reads browser state. After connection it
179
+ reopens the app; sign out and sign in once to receive fresh claims. Scripts may retain
180
+ the explicit plan and claim sequence:
172
181
 
173
182
  ```bash
174
183
  npx rehearsal identity plan --identity=approved-owner
@@ -0,0 +1,69 @@
1
+ # Stability and the first stable release
2
+
3
+ Rehearsal leaves beta when the workflow it already promises is dependable. Stable
4
+ `0.1.0` does not require every planned database, desktop interface, or paid feature.
5
+
6
+ ## What becomes a compatibility promise
7
+
8
+ Starting with `0.1.0`, Rehearsal treats these documented surfaces as public:
9
+
10
+ - CLI command names, flags, JSON result fields, and exit categories in
11
+ [CLI commands](commands.md);
12
+ - `rehearsal.config.mjs` schema version 1 and the policy formats documented in
13
+ [Configuration](configuration.md), [Sanitization](sanitization.md), and
14
+ [Runtime and identity policies](runtime-policies.md);
15
+ - package entry points and generated declarations listed in
16
+ [TypeScript](typescript.md);
17
+ - supported Node.js, operating-system, Docker, Supabase, and PostgreSQL boundaries in
18
+ [COMPATIBILITY.md](https://github.com/Ddupasquier/rehearsal-db/blob/main/COMPATIBILITY.md);
19
+ - non-destructive ownership, confirmation, credential, and hosted-access guarantees in
20
+ [Security model](security-model.md).
21
+
22
+ Patch releases may fix defects and improve messages without changing those contracts.
23
+ A future breaking contract change requires a version that clearly communicates it under
24
+ Semantic Versioning. Internal source files, terminal decoration, exact prose, temporary
25
+ file names, and undocumented package paths are not compatibility promises.
26
+
27
+ ## What blocks a release candidate
28
+
29
+ An issue blocks `0.1.0-rc.1` when it can cause any of the following within a supported
30
+ configuration:
31
+
32
+ - data loss, credential exposure, hosted-system access, or mutation outside resources
33
+ that Rehearsal can prove it owns;
34
+ - an incorrect baseline, migration set, verification result, or successful status;
35
+ - failure of clean installation, supported-version upgrade, restore, reset, cleanup, or
36
+ interruption recovery;
37
+ - a documented CLI, configuration, policy, or TypeScript contract behaving differently
38
+ from its reference;
39
+ - a supported Node.js, Supabase, PostgreSQL, macOS, or Linux path failing its maintained
40
+ automated gate.
41
+
42
+ Cosmetic improvements, new database families, production-shaped sampling, the VS Code
43
+ extension, desktop work, and commercial capabilities do not block the first stable
44
+ release.
45
+
46
+ ## Promotion sequence
47
+
48
+ 1. Ship beta.18 with only stability, release-safety, upgrade, and documentation work.
49
+ 2. Freeze broad feature development on the release branch.
50
+ 3. Publish `0.1.0-rc.1` from protected `main` through the reviewed npm environment.
51
+ 4. Run the complete Rehearsal Test Lab gate twice from clean isolated workspaces.
52
+ 5. Perform one final package-only upgrade in a real consumer. The consumer must use the
53
+ published package rather than duplicate Rehearsal machinery.
54
+ 6. Keep the candidate available for at least seven calendar days. Restart the window if
55
+ a blocking package change is required.
56
+ 7. Publish `0.1.0` only when no blocking issue remains and the accepted registry artifact
57
+ matches the tested artifact exactly.
58
+
59
+ Test Lab is the primary verification system. A real consumer is the final compatibility
60
+ check, not a replacement for package-owned coverage. Real Google or GitHub consent does
61
+ not need to run on every build unless authentication behavior changes.
62
+
63
+ ## npm channels
64
+
65
+ Beta and release-candidate versions publish under the `beta` tag. Before a stable
66
+ release exists, `latest` follows that reviewed prerelease so the ordinary install command
67
+ remains useful. Once stable `0.1.0` exists, `latest` stays on the stable line and `beta`
68
+ continues to identify the newest prerelease. Stable publication never rewrites the
69
+ `beta` tag.
@@ -172,6 +172,23 @@ need; skipping nonce validation reduces replay protection. Otherwise keep using
172
172
  documented legacy configuration.
173
173
  Never paste provider secrets into tracked config or terminal output.
174
174
 
175
+ For the shortest supported copied-account flow, run:
176
+
177
+ ```bash
178
+ npx rehearsal identity connect
179
+ ```
180
+
181
+ Leave that terminal open, then sign in through the sandbox application normally. Rehearsal
182
+ waits for one verified match and shows a redacted plan before it changes anything. If it
183
+ keeps waiting, finish the provider callback and confirm the reviewed matcher environment
184
+ value is available in the terminal that started Rehearsal. `Ctrl+C`, `Ctrl+Z`, or choosing
185
+ **Not now** stops only the owned application and leaves the database unchanged.
186
+
187
+ After a successful connection, sign out and sign in once so the application receives
188
+ fresh role claims. Rehearsal remembers the connection in the current disposable runtime;
189
+ `reset` deliberately removes that receipt, so the next copied-account connection requires
190
+ review again.
191
+
175
192
  If `identity plan` refuses the matcher, read the message literally:
176
193
 
177
194
  - **Provider or matcher type is unsupported:** use only the combinations documented in
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rehearsal-db/core",
3
- "version": "0.1.0-beta.16",
3
+ "version": "0.1.0-beta.18",
4
4
  "private": false,
5
5
  "description": "Safely rehearse PostgreSQL and Supabase migrations against sanitized, production-shaped data.",
6
6
  "repository": {
@@ -13,7 +13,6 @@
13
13
  "homepage": "https://ddupasquier.github.io/rehearsal-db/",
14
14
  "publishConfig": {
15
15
  "access": "public",
16
- "tag": "beta",
17
16
  "provenance": true
18
17
  },
19
18
  "type": "module",