rastack 0.0.60 → 0.0.61

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 CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.61](https://github.com/theserverkid/reactapistack/compare/v0.0.60...v0.0.61) (2026-07-19)
6
+
7
+
8
+ ### Features
9
+
10
+ * **engine:** activate typed Parquet columns from the manifest ([45711c3](https://github.com/theserverkid/reactapistack/commit/45711c3bfc9c69cc2e841e1d8a31bc38728e58de))
11
+ * **engine:** implement local-first sync server endpoints ([10d7e86](https://github.com/theserverkid/reactapistack/commit/10d7e861e8d574e0bb059ef3e3ce3538069d818f))
12
+ * **store:** real typed per-field Parquet columns (Iceberg encoding) ([12d6f1f](https://github.com/theserverkid/reactapistack/commit/12d6f1fbe3d6326f54c79c33a3c9ea576d389f8f))
13
+
5
14
  ### [0.0.60](https://github.com/theserverkid/reactapistack/compare/v0.0.59...v0.0.60) (2026-07-18)
6
15
 
7
16
 
package/README.md CHANGED
@@ -15,7 +15,7 @@ S3 at the bottom, with a stateless Rust API in between.
15
15
  └───────────────────────▲─────────────────────┘
16
16
  │ your types, resolved via the manifest
17
17
  ┌───────────────────────┴─────────────────────┐
18
- │ TypeScript resources → `rastack compile` │ API EXPOSURE
18
+ │ TypeScript resources → compile step │ API EXPOSURE
19
19
  │ FK inferred from types → manifest+OpenAPI │ SURFACE
20
20
  └───────────────────────▲─────────────────────┘
21
21
  │ schema.rastack.json (manifest)
@@ -41,7 +41,7 @@ S3 at the bottom, with a stateless Rust API in between.
41
41
 
42
42
  | Surface | What it is | Package(s) |
43
43
  | --- | --- | --- |
44
- | **API exposure** | TypeScript resources → `rastack compile` (FK inferred from types) → manifest + OpenAPI → pass your type to `useData` / `useForm` (typed TanStack Query hooks, no codegen) | the repo root, published as `rastack` (npm) — `components/`, `hooks/`, `theme/`, … |
44
+ | **API exposure** | TypeScript resources → in-process compile (FK inferred from types) → manifest + OpenAPI → pass your type to `useData` / `useForm` (typed TanStack Query hooks, no codegen) | the repo root, published as `rastack` (npm) — `components/`, `hooks/`, `theme/`, … |
45
45
  | **Database storage** | A stateless Rust API that stores every model as an Apache Iceberg table on object storage — snapshots, ACID on S3, columnar Parquet | `engine/` (`serve/rastack-server`) |
46
46
  | **DevOps** | Serverless Rust on AWS Lambda + S3: stateless compute, state in object storage, infrastructure-as-code, scale-to-zero — driven by `rastack init` / `deploy` / `ci` | `deploy/cloudformation/`, `examples/serverless/` |
47
47
 
@@ -81,9 +81,9 @@ export const Terminal = resource("airports", "terminal", {
81
81
  ```
82
82
 
83
83
  ```bash
84
- rastack compile resources .rastack # TS → schema.rastack.json + openapi.json (FK detected)
85
- rastack dev # the app + admin, in-browser over the WASM engine
86
- rastack admin # Django-admin-style DB browser
84
+ # No compile step to run — it happens in-process. Author your resources, then:
85
+ rastack dev # compiles + serves your app in-browser over the WASM engine
86
+ rastack admin # Django-admin-style DB browser over the same engine
87
87
  ```
88
88
 
89
89
  ```tsx
@@ -106,22 +106,26 @@ the importer, the server, and the in-browser WASM engine alike.
106
106
 
107
107
  ## Ship it — one command per stage
108
108
 
109
- The DevOps surface is a CLI too. A new repo is scaffolded, configured, and
110
- deployed with three commands, and GitHub Actions stays a one-liner because the
111
- pipeline lives in the CLI, not the YAML:
109
+ The DevOps surface is a CLI too. A new repo goes from nothing to deployed in
110
+ three commands, and GitHub Actions stays a one-liner because the pipeline lives
111
+ in the CLI, not the YAML:
112
112
 
113
113
  ```bash
114
- rastack init # template .github/workflows + .rastack/deploy.json
115
- rastack deploy # configure the deployment; print the stack launch command
114
+ rastack bootstrap # once per AWS account+region: buckets + GitHub OIDC
115
+ rastack init # per app: scaffold .github/workflows + .rastack/deploy.json AND stand the backend up
116
116
  rastack ci deploy # what CI runs: build the arm64 Lambda, bake the JWKS, ship the code
117
117
  ```
118
118
 
119
- `init` scaffolds the base GitHub Actions and a deploy config (defaulting the
120
- GitHub coordinates from your `origin` remote); `deploy` fills that config in and
121
- prints the one-time `aws cloudformation deploy` plus the repo Variables to wire;
122
- `ci` runs the build/deploy pipeline so a workflow is just
123
- `run: rastack ci deploy` (`rastack ci --plan deploy` prints every step). Full
124
- guide: **[docs/serverless-deploy.md](docs/serverless-deploy.md)**.
119
+ `bootstrap` stands the tier-0 account stack up once (the template-hosting
120
+ buckets + the GitHub OIDC provider), decoupled from any app. `init` is per-app:
121
+ it scaffolds the base GitHub Actions and a deploy config (defaulting the GitHub
122
+ coordinates from your `origin` remote), then stands the serverless backend up —
123
+ deploying `app.yaml`, reading the stack Outputs back into the config, and wiring
124
+ the GitHub repo Variables so the first push deploys. From then on infrastructure
125
+ is fixed and CI only ships code: `rastack ci deploy` builds and runs
126
+ `update-function-code` (`rastack deploy` is an alias for it), so a workflow step
127
+ is just `run: rastack ci deploy` (`rastack ci --plan deploy` prints every step).
128
+ Full guide: **[docs/serverless-deploy.md](docs/serverless-deploy.md)**.
125
129
 
126
130
  ## Run the whole API in the browser
127
131
 
package/dist/rastack.d.ts CHANGED
@@ -15,8 +15,8 @@
15
15
  * rastack dev [--port n] [--warehouse d] Local dev: run your app in-browser over WASM
16
16
  * rastack admin [--warehouse dir] [--port n] Full admin console — React UI (rastack/components) over the native server
17
17
  * rastack import <file> --resource app.model Load CSV/XLSX/PDF data and validate it (state machine)
18
- * rastack scan [files...] [--fail-on-pii] Scan CSVs for PII and schema info
19
- * rastack seed [--env dev] [--source gs://] Load CSVs into Iceberg namespace
18
+ * rastack scan [files...] [--fail-on-pii] (LEGACY, pre-Rust) Scan CSVs for PII and schema info
19
+ * rastack seed [--env dev] [--source gs://] (LEGACY, pre-Rust) Load CSVs into Iceberg namespace
20
20
  * rastack bootstrap [--owner o] [--repo r] Stand the tier-0 AWS account stack up (once per account+region)
21
21
  * rastack init [--app slug] [--force] Scaffold config + GitHub Actions AND stand the backend up
22
22
  * rastack deploy [--plan] Ship code to the Lambda (alias for `rastack ci deploy`)
package/dist/rastack.js CHANGED
@@ -16,8 +16,8 @@
16
16
  * rastack dev [--port n] [--warehouse d] Local dev: run your app in-browser over WASM
17
17
  * rastack admin [--warehouse dir] [--port n] Full admin console — React UI (rastack/components) over the native server
18
18
  * rastack import <file> --resource app.model Load CSV/XLSX/PDF data and validate it (state machine)
19
- * rastack scan [files...] [--fail-on-pii] Scan CSVs for PII and schema info
20
- * rastack seed [--env dev] [--source gs://] Load CSVs into Iceberg namespace
19
+ * rastack scan [files...] [--fail-on-pii] (LEGACY, pre-Rust) Scan CSVs for PII and schema info
20
+ * rastack seed [--env dev] [--source gs://] (LEGACY, pre-Rust) Load CSVs into Iceberg namespace
21
21
  * rastack bootstrap [--owner o] [--repo r] Stand the tier-0 AWS account stack up (once per account+region)
22
22
  * rastack init [--app slug] [--force] Scaffold config + GitHub Actions AND stand the backend up
23
23
  * rastack deploy [--plan] Ship code to the Lambda (alias for `rastack ci deploy`)
@@ -108,9 +108,14 @@ switch (command) {
108
108
  run("rastack-import.js", rest);
109
109
  break;
110
110
  case "scan":
111
+ console.error("⚠ `rastack scan` is a legacy command from the pre-Rust architecture and\n" +
112
+ " will be removed; it does not use the object-storage engine.\n");
111
113
  run("scan.js");
112
114
  break;
113
115
  case "seed":
116
+ console.error("⚠ `rastack seed` is a legacy command from the pre-Rust architecture and\n" +
117
+ " will be removed; it emits DDL/shell against an external Iceberg catalog\n" +
118
+ " and does not use the object-storage engine.\n");
114
119
  run("seed.js");
115
120
  break;
116
121
  case "bootstrap":
@@ -151,8 +156,8 @@ switch (command) {
151
156
  ` rastack dev [--port n] [--warehouse dir] [--app dir] [--no-open] Run your app in-browser over WASM (local dev)\n` +
152
157
  ` rastack admin [--warehouse dir] [--port n] [--no-open] Full admin console (React UI over the native server; needs a built rastack-server)\n` +
153
158
  ` rastack import <file.csv|.xlsx|.pdf> --resource app.model [--related app.model=<file>] [--out cleaned.json]\n` +
154
- ` rastack scan [files...] [--fail-on-pii]\n` +
155
- ` rastack seed [--env dev|staging] [--source gs://bucket/ | ./myapp-dev/]\n` +
159
+ ` rastack scan [files...] [--fail-on-pii] (legacy, pre-Rust)\n` +
160
+ ` rastack seed [--env dev|staging] [--source gs://bucket/ | ./myapp-dev/] (legacy, pre-Rust)\n` +
156
161
  ` rastack bootstrap [--owner o] [--repo r] [--region r] [--prefix p] [--reuse-oidc] [--print] Stand the AWS account stack up\n` +
157
162
  ` rastack init [--app slug] [--owner o] [--repo r] [--print] [--no-deploy] Scaffold + stand the backend up\n` +
158
163
  ` rastack deploy [--plan] Ship code to the Lambda (alias for ci deploy)\n` +
@@ -375,7 +375,7 @@ function __wbg_get_imports() {
375
375
  return ret;
376
376
  },
377
377
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
378
- // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 83, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
378
+ // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 87, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
379
379
  const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ac0f9960a408a037___convert__closures_____invoke___wasm_bindgen_ac0f9960a408a037___JsValue__core_9b3796e30d99ddb7___result__Result_____wasm_bindgen_ac0f9960a408a037___JsError___true_);
380
380
  return ret;
381
381
  },
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rastack",
3
- "version": "0.0.60",
3
+ "version": "0.0.61",
4
4
  "description": "",
5
5
  "main": "runtime.ts",
6
6
  "types": "runtime.ts",
package/src/rastack.ts CHANGED
@@ -16,8 +16,8 @@
16
16
  * rastack dev [--port n] [--warehouse d] Local dev: run your app in-browser over WASM
17
17
  * rastack admin [--warehouse dir] [--port n] Full admin console — React UI (rastack/components) over the native server
18
18
  * rastack import <file> --resource app.model Load CSV/XLSX/PDF data and validate it (state machine)
19
- * rastack scan [files...] [--fail-on-pii] Scan CSVs for PII and schema info
20
- * rastack seed [--env dev] [--source gs://] Load CSVs into Iceberg namespace
19
+ * rastack scan [files...] [--fail-on-pii] (LEGACY, pre-Rust) Scan CSVs for PII and schema info
20
+ * rastack seed [--env dev] [--source gs://] (LEGACY, pre-Rust) Load CSVs into Iceberg namespace
21
21
  * rastack bootstrap [--owner o] [--repo r] Stand the tier-0 AWS account stack up (once per account+region)
22
22
  * rastack init [--app slug] [--force] Scaffold config + GitHub Actions AND stand the backend up
23
23
  * rastack deploy [--plan] Ship code to the Lambda (alias for `rastack ci deploy`)
@@ -111,9 +111,18 @@ switch (command) {
111
111
  run("rastack-import.js", rest);
112
112
  break;
113
113
  case "scan":
114
+ console.error(
115
+ "⚠ `rastack scan` is a legacy command from the pre-Rust architecture and\n" +
116
+ " will be removed; it does not use the object-storage engine.\n",
117
+ );
114
118
  run("scan.js");
115
119
  break;
116
120
  case "seed":
121
+ console.error(
122
+ "⚠ `rastack seed` is a legacy command from the pre-Rust architecture and\n" +
123
+ " will be removed; it emits DDL/shell against an external Iceberg catalog\n" +
124
+ " and does not use the object-storage engine.\n",
125
+ );
117
126
  run("seed.js");
118
127
  break;
119
128
  case "bootstrap":
@@ -155,8 +164,8 @@ switch (command) {
155
164
  ` rastack dev [--port n] [--warehouse dir] [--app dir] [--no-open] Run your app in-browser over WASM (local dev)\n` +
156
165
  ` rastack admin [--warehouse dir] [--port n] [--no-open] Full admin console (React UI over the native server; needs a built rastack-server)\n` +
157
166
  ` rastack import <file.csv|.xlsx|.pdf> --resource app.model [--related app.model=<file>] [--out cleaned.json]\n` +
158
- ` rastack scan [files...] [--fail-on-pii]\n` +
159
- ` rastack seed [--env dev|staging] [--source gs://bucket/ | ./myapp-dev/]\n` +
167
+ ` rastack scan [files...] [--fail-on-pii] (legacy, pre-Rust)\n` +
168
+ ` rastack seed [--env dev|staging] [--source gs://bucket/ | ./myapp-dev/] (legacy, pre-Rust)\n` +
160
169
  ` rastack bootstrap [--owner o] [--repo r] [--region r] [--prefix p] [--reuse-oidc] [--print] Stand the AWS account stack up\n` +
161
170
  ` rastack init [--app slug] [--owner o] [--repo r] [--print] [--no-deploy] Scaffold + stand the backend up\n` +
162
171
  ` rastack deploy [--plan] Ship code to the Lambda (alias for ci deploy)\n` +