tinbase 0.2.1 → 0.5.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/README.md +38 -8
- package/dist/admin/api.d.ts +5 -0
- package/dist/admin/api.js +85 -0
- package/dist/admin/api.js.map +1 -1
- package/dist/admin/ui.d.ts +1 -1
- package/dist/admin/ui.js +16 -16
- package/dist/auth/handler.d.ts +7 -0
- package/dist/auth/handler.js +25 -0
- package/dist/auth/handler.js.map +1 -1
- package/dist/auth/oauth.d.ts +59 -0
- package/dist/auth/oauth.js +209 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/cli.js +105 -2
- package/dist/cli.js.map +1 -1
- package/dist/cron/service.d.ts +29 -0
- package/dist/cron/service.js +134 -0
- package/dist/cron/service.js.map +1 -0
- package/dist/db/bootstrap.d.ts +1 -1
- package/dist/db/bootstrap.js +43 -1
- package/dist/db/bootstrap.js.map +1 -1
- package/dist/db/database.d.ts +3 -0
- package/dist/db/database.js +19 -0
- package/dist/db/database.js.map +1 -1
- package/dist/db/emulated.d.ts +12 -0
- package/dist/db/emulated.js +156 -0
- package/dist/db/emulated.js.map +1 -0
- package/dist/db/schema-diff.d.ts +23 -0
- package/dist/db/schema-diff.js +182 -0
- package/dist/db/schema-diff.js.map +1 -0
- package/dist/functions/deno-shim.d.ts +24 -0
- package/dist/functions/deno-shim.js +47 -0
- package/dist/functions/deno-shim.js.map +1 -0
- package/dist/gen-types.d.ts +17 -0
- package/dist/gen-types.js +222 -0
- package/dist/gen-types.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +35 -6
- package/dist/index.js.map +1 -1
- package/dist/node/db-diff.d.ts +13 -0
- package/dist/node/db-diff.js +40 -0
- package/dist/node/db-diff.js.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.js +2 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/load-functions.js +11 -3
- package/dist/node/load-functions.js.map +1 -1
- package/dist/node/load-oauth.d.ts +4 -0
- package/dist/node/load-oauth.js +126 -0
- package/dist/node/load-oauth.js.map +1 -0
- package/dist/node/native/engine.d.ts +1 -1
- package/dist/node/native/engine.js +98 -22
- package/dist/node/native/engine.js.map +1 -1
- package/dist/realtime/engine.d.ts +14 -1
- package/dist/realtime/engine.js +65 -2
- package/dist/realtime/engine.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.js.map +1 -1
- package/dist/webhooks/service.d.ts +47 -0
- package/dist/webhooks/service.js +86 -0
- package/dist/webhooks/service.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -54,6 +54,9 @@ tinbase start # boot the server (applies pending migrations first)
|
|
|
54
54
|
tinbase migrate # apply pending migrations and exit
|
|
55
55
|
tinbase status # list applied migrations
|
|
56
56
|
tinbase keys # print anon / service_role keys
|
|
57
|
+
tinbase gen types # print a TypeScript Database type for the schema
|
|
58
|
+
tinbase db reset # wipe the database + storage, re-run migrations and seed
|
|
59
|
+
tinbase db diff # DDL for schema changes not yet in migrations (-f <name> to save one)
|
|
57
60
|
|
|
58
61
|
-p, --port <n> port (default 54321; or TINBASE_PORT / PORT env)
|
|
59
62
|
--dir <path> project dir containing supabase/ (default cwd)
|
|
@@ -113,7 +116,10 @@ const server = await serve(backend, { port: 54321 })
|
|
|
113
116
|
| REST (PostgREST) | `/rest/v1` | select with embedded resources (to-one, to-many, many-to-many via junction, nested, `!inner`, aliases, hints, casts, JSON paths), all common filter operators incl. `or`/`and` trees, full-text search, order/limit/offset (top-level and per-embed), `single`/`maybeSingle`, `count`, insert/bulk insert, upsert (merge/ignore), update, delete, `Prefer` handling, RPC (scalar, `setof`, void, filters on results), PostgREST-shaped errors |
|
|
114
117
|
| Auth (GoTrue) | `/auth/v1` | email/password signup + sign-in, anonymous sign-in, session refresh with rotation, `getUser`, `updateUser`, sign-out, admin user CRUD (service key), GoTrue-shaped errors. JWTs are HS256 via WebCrypto; passwords are PBKDF2 |
|
|
115
118
|
| Storage | `/storage/v1` | bucket CRUD, upload (raw + multipart), download, public objects, signed URLs, signed upload URLs, list with folder entries, move/copy, remove, size/MIME limits. Metadata lives in `storage.objects` with RLS enforced; bytes go through a pluggable driver (fs in Node, memory anywhere) |
|
|
116
|
-
| Edge Functions | `/functions/v1` | `supabase.functions.invoke()` - functions
|
|
119
|
+
| Edge Functions | `/functions/v1` | `supabase.functions.invoke()` - Supabase-style `Deno.serve(handler)` functions (with `Deno.env`) run unchanged, as do `export default` handlers; loaded from `supabase/functions/<name>/index.{ts,js,mjs}` by the CLI or passed via `createBackend({ functions })`. Web-API functions work as-is; `npm:`/`jsr:`/URL imports still need bundling |
|
|
120
|
+
| Queues (pgmq) | `pgmq.*` | Message queues via a pure-SQL pgmq subset (create/send/read/pop/delete/archive, visibility timeouts). Call from SQL or `supabase.schema('pgmq').rpc(...)`. No extension |
|
|
121
|
+
| Cron | `cron.*` | Scheduled jobs: `select cron.schedule(name, '*/5 * * * *', 'sql')` (also `'N seconds'`); an in-process scheduler runs due jobs and logs to `cron.job_run_details`. No extension |
|
|
122
|
+
| Database Webhooks | config | Fire HTTP requests on table INSERT/UPDATE/DELETE with Supabase's exact payload (`type`/`table`/`schema`/`record`/`old_record`). Configured via `createBackend({ webhooks })`, `backend.webhooks.register()`, or `supabase/webhooks.json`. Built on the CDC pipeline — no extension needed |
|
|
117
123
|
| Studio (Admin UI) | `/_/` | A Supabase-Studio-style dashboard (React + Radix + Tailwind): Table Editor with full row CRUD, SQL editor, user management, bucket/object CRUD, and a database overview. One self-contained HTML file (works in the single binary); log in with the service_role key |
|
|
118
124
|
| Realtime | `/realtime/v1` | Phoenix protocol (v1 JSON and v2 array/binary serializers), `postgres_changes` (INSERT/UPDATE/DELETE, filters) fed by triggers + `pg_notify`, broadcast (incl. binary payloads), presence. WebSocket server is a ~150-line RFC 6455 implementation - no `ws` dependency |
|
|
119
125
|
|
|
@@ -135,7 +141,8 @@ tinbase ships with a built-in dashboard at [`/_/`](http://127.0.0.1:54321/_/) -
|
|
|
135
141
|
- **SQL Editor** - run arbitrary SQL with result grids and Postgres error details
|
|
136
142
|
- **Authentication** - list, create, delete users and reset passwords
|
|
137
143
|
- **Storage** - create/delete buckets, upload/delete objects, toggle public access
|
|
138
|
-
- **
|
|
144
|
+
- **RLS Policies** - list, create, and drop policies per table
|
|
145
|
+
- **Database** - stats, migrations, functions, and triggers
|
|
139
146
|
|
|
140
147
|
It is a React app compiled to a single self-contained HTML file, so it also works inside the single binary. Sign in with the `service_role` key printed at startup.
|
|
141
148
|
|
|
@@ -143,6 +150,22 @@ It is a React app compiled to a single self-contained HTML file, so it also work
|
|
|
143
150
|
|
|
144
151
|
The extensions Supabase enables by default are available out of the box, so migrations that call `uuid_generate_v4()`, `gen_random_uuid()`, `crypt()`, `citext`, `pg_trgm`, and friends just work: **uuid-ossp, pgcrypto, citext, pg_trgm, ltree, hstore, fuzzystrmatch**. They live in the `extensions` schema (like hosted Supabase) and are on the search path, so both qualified and unqualified calls resolve.
|
|
145
152
|
|
|
153
|
+
## Typed clients
|
|
154
|
+
|
|
155
|
+
Generate a Supabase-shaped `Database` type from the live schema, the same as `supabase gen types typescript`:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
tinbase gen types typescript > database.types.ts
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```ts
|
|
162
|
+
import { createClient } from '@supabase/supabase-js'
|
|
163
|
+
import type { Database } from './database.types'
|
|
164
|
+
const supabase = createClient<Database>(url, anonKey) // fully typed queries
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Emits Tables (Row/Insert/Update/Relationships), Views, Functions, and Enums.
|
|
168
|
+
|
|
146
169
|
## Footprint: tinbase vs PocketBase vs Supabase local
|
|
147
170
|
|
|
148
171
|

|
|
@@ -177,18 +200,21 @@ Rough coverage of the supabase-js SDK surface, measured against what each sub-li
|
|
|
177
200
|
| Module | Coverage | Supported | Missing |
|
|
178
201
|
| --- | --- | --- | --- |
|
|
179
202
|
| Database (`postgrest-js`) | ~85% | full filter grammar, embeds (to-one/to-many/m2m/nested/`!inner`), JSON paths, upsert, count, single/maybeSingle, RPC | aggregates in select, full spread embeds, `.explain()`, `.csv()`, geojson |
|
|
180
|
-
| Auth (`auth-js`) | ~
|
|
203
|
+
| Auth (`auth-js`) | ~80% | email/password, anonymous sign-in, OTP + magic links + password recovery (pluggable mailer), OAuth providers (Google/GitHub presets + generic) with PKCE and identity linking, refresh rotation, user updates, admin CRUD | MFA, SSO/SAML, phone auth |
|
|
181
204
|
| Storage (`storage-js`) | ~80% | buckets, upload/download, signed URLs + signed uploads, list/move/copy/remove, size/MIME limits | resumable (TUS) uploads, image transformations |
|
|
182
|
-
| Realtime (`realtime-js`) | ~
|
|
183
|
-
| Edge Functions (`functions-js`) | ~
|
|
205
|
+
| Realtime (`realtime-js`) | ~85% | postgres_changes with filters + **per-subscriber RLS filtering** (INSERT/UPDATE), broadcast (incl. binary), presence, v1+v2 serializers | per-row DELETE RLS, private channel auth, DB-triggered broadcast |
|
|
206
|
+
| Edge Functions (`functions-js`) | ~70% | `invoke()`; **Deno.serve/Deno.env-style functions run unchanged** + export-default; auth context, project-dir loading | `npm:`/`jsr:`/URL import resolution, `supabase functions deploy` |
|
|
207
|
+
| Type generation | ~85% | `tinbase gen types typescript` → `Database` type (Tables/Views/Functions/Enums/Relationships) | composite-type args, multi-schema output |
|
|
184
208
|
|
|
185
|
-
**Overall: roughly
|
|
209
|
+
**Overall: roughly 80% of the supabase-js SDK surface - and ~90% of what a typical CRUD + auth + storage + realtime app actually calls.**
|
|
210
|
+
|
|
211
|
+
Beyond the client SDK, the local platform features real projects depend on also work: **type generation**, **RLS** (enforced on REST, Storage, and realtime), **database webhooks**, **cron**, **queues (pgmq)**, the **Studio** dashboard, and Supabase-CLI migration conventions (`db reset` / `db diff`). The remaining gaps are OAuth logins' provider variety, the Deno edge-function runtime, and pgvector (needs an extension binary).
|
|
186
212
|
|
|
187
213
|
## Known gaps
|
|
188
214
|
|
|
189
|
-
- `postgres_changes`
|
|
215
|
+
- `postgres_changes` applies RLS per subscriber for INSERT/UPDATE (the row is re-checked by primary key as that user). DELETE events can't be re-queried (the row is gone), so they are delivered to authenticated/service subscribers but not filtered per-row — hosted Supabase does this via WAL-level policy evaluation (WALRUS).
|
|
190
216
|
- Spread embeds (`...rel(col)`) support flat column lists only; aggregate functions in `select` are not implemented.
|
|
191
|
-
- Auth:
|
|
217
|
+
- Auth: OAuth works for any OAuth2/OIDC provider (Google & GitHub have built-in presets; configure via `TINBASE_OAUTH_<PROVIDER>_CLIENT_ID`/`_CLIENT_SECRET`). Still missing: MFA, SSO/SAML, phone auth. OTP/magic-link/recovery emails go through a pluggable `mailer` (default logs to console).
|
|
192
218
|
- `pg_notify` payloads cap at ~8 kB - realtime events for larger rows arrive with `record: null` and an `errors` entry, like Supabase's "payload too large".
|
|
193
219
|
- One writer at a time: PGlite is single-connection, and the native engine currently serializes requests over one connection for parity (a connection pool is a straightforward future upgrade). Fine for dev tools and small apps, not for high-concurrency production.
|
|
194
220
|
|
|
@@ -200,6 +226,10 @@ Rough coverage of the supabase-js SDK surface, measured against what each sub-li
|
|
|
200
226
|
npm test
|
|
201
227
|
```
|
|
202
228
|
|
|
229
|
+
## Roadmap
|
|
230
|
+
|
|
231
|
+
tinbase aims to be a local, Docker-free replacement for `supabase start` where **almost everything just works**. The North Star, the in-scope/out-of-scope line, the current coverage table, and the phased plan live in [ROADMAP.md](ROADMAP.md).
|
|
232
|
+
|
|
203
233
|
## Why
|
|
204
234
|
|
|
205
235
|
tinbase was built for [lifo](https://lifo.sh) - a project that maps Linux APIs into the browser - to let **Expo apps run fully in the browser with full-stack capability** (database, auth, storage, realtime, no server). It is part of [RapidNative](https://rapidnative.com). That origin drives the architecture:
|
package/dist/admin/api.d.ts
CHANGED
package/dist/admin/api.js
CHANGED
|
@@ -33,6 +33,16 @@ export class AdminApi {
|
|
|
33
33
|
return await this.schemas();
|
|
34
34
|
if (path === 'migrations' && method === 'GET')
|
|
35
35
|
return await this.migrations();
|
|
36
|
+
if (path === 'policies' && method === 'GET')
|
|
37
|
+
return await this.listPolicies(url);
|
|
38
|
+
if (path === 'policies' && method === 'POST')
|
|
39
|
+
return await this.createPolicy(req);
|
|
40
|
+
if (path === 'policies' && method === 'DELETE')
|
|
41
|
+
return await this.dropPolicy(url);
|
|
42
|
+
if (path === 'functions' && method === 'GET')
|
|
43
|
+
return await this.listFunctions(url);
|
|
44
|
+
if (path === 'triggers' && method === 'GET')
|
|
45
|
+
return await this.listTriggers(url);
|
|
36
46
|
return json(404, { error: `unknown admin endpoint: ${path}` });
|
|
37
47
|
}
|
|
38
48
|
catch (e) {
|
|
@@ -96,6 +106,81 @@ export class AdminApi {
|
|
|
96
106
|
const res = await this.db.query(`select version, name, applied_at from supabase_migrations.schema_migrations order by version`);
|
|
97
107
|
return json(200, { migrations: res.rows });
|
|
98
108
|
}
|
|
109
|
+
async listPolicies(url) {
|
|
110
|
+
const schema = url.searchParams.get('schema') ?? 'public';
|
|
111
|
+
const res = await this.db.query(`select schemaname as schema, tablename as table, policyname as name,
|
|
112
|
+
cmd, permissive, roles, qual as using_expr, with_check
|
|
113
|
+
from pg_policies where schemaname = $1
|
|
114
|
+
order by tablename, policyname`, [schema]);
|
|
115
|
+
return json(200, { policies: res.rows });
|
|
116
|
+
}
|
|
117
|
+
async createPolicy(req) {
|
|
118
|
+
const b = (await req.json().catch(() => ({})));
|
|
119
|
+
if (!b.table || !b.name)
|
|
120
|
+
return json(400, { error: 'table and name are required' });
|
|
121
|
+
const schema = b.schema ?? 'public';
|
|
122
|
+
const cmd = (b.command ?? 'ALL').toUpperCase();
|
|
123
|
+
const roles = b.roles?.trim() || 'public';
|
|
124
|
+
let sql = `create policy ${quoteIdent(b.name)} on ${quoteIdent(schema)}.${quoteIdent(b.table)} for ${cmd} to ${roles}`;
|
|
125
|
+
if (b.using?.trim())
|
|
126
|
+
sql += ` using (${b.using})`;
|
|
127
|
+
if (b.check?.trim())
|
|
128
|
+
sql += ` with check (${b.check})`;
|
|
129
|
+
try {
|
|
130
|
+
await this.db.query(sql);
|
|
131
|
+
this.db.invalidateSchemaCache();
|
|
132
|
+
return json(200, { ok: true });
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
const pg = e;
|
|
136
|
+
return json(400, { error: pg.message, code: pg.code, hint: pg.hint });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async dropPolicy(url) {
|
|
140
|
+
const schema = url.searchParams.get('schema') ?? 'public';
|
|
141
|
+
const table = url.searchParams.get('table');
|
|
142
|
+
const name = url.searchParams.get('name');
|
|
143
|
+
if (!table || !name)
|
|
144
|
+
return json(400, { error: 'table and name are required' });
|
|
145
|
+
try {
|
|
146
|
+
await this.db.query(`drop policy ${quoteIdent(name)} on ${quoteIdent(schema)}.${quoteIdent(table)}`);
|
|
147
|
+
return json(200, { ok: true });
|
|
148
|
+
}
|
|
149
|
+
catch (e) {
|
|
150
|
+
return json(400, { error: e.message });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async listFunctions(url) {
|
|
154
|
+
const schema = url.searchParams.get('schema') ?? 'public';
|
|
155
|
+
const res = await this.db.query(`select p.proname as name,
|
|
156
|
+
pg_get_function_identity_arguments(p.oid) as args,
|
|
157
|
+
t.typname as returns, l.lanname as language,
|
|
158
|
+
p.prosrc as body
|
|
159
|
+
from pg_proc p
|
|
160
|
+
join pg_namespace n on n.oid = p.pronamespace
|
|
161
|
+
join pg_type t on t.oid = p.prorettype
|
|
162
|
+
join pg_language l on l.oid = p.prolang
|
|
163
|
+
where n.nspname = $1 and p.prokind = 'f'
|
|
164
|
+
order by p.proname`, [schema]);
|
|
165
|
+
return json(200, { functions: res.rows });
|
|
166
|
+
}
|
|
167
|
+
async listTriggers(url) {
|
|
168
|
+
const schema = url.searchParams.get('schema') ?? 'public';
|
|
169
|
+
const res = await this.db.query(`select tg.tgname as name, c.relname as table,
|
|
170
|
+
case when (tg.tgtype & 2) <> 0 then 'BEFORE' else 'AFTER' end as timing,
|
|
171
|
+
array_remove(array[
|
|
172
|
+
case when (tg.tgtype & 4) <> 0 then 'INSERT' end,
|
|
173
|
+
case when (tg.tgtype & 8) <> 0 then 'DELETE' end,
|
|
174
|
+
case when (tg.tgtype & 16) <> 0 then 'UPDATE' end], null) as events,
|
|
175
|
+
p.proname as function
|
|
176
|
+
from pg_trigger tg
|
|
177
|
+
join pg_class c on c.oid = tg.tgrelid
|
|
178
|
+
join pg_namespace n on n.oid = c.relnamespace
|
|
179
|
+
join pg_proc p on p.oid = tg.tgfoid
|
|
180
|
+
where n.nspname = $1 and not tg.tgisinternal
|
|
181
|
+
order by c.relname, tg.tgname`, [schema]);
|
|
182
|
+
return json(200, { triggers: res.rows });
|
|
183
|
+
}
|
|
99
184
|
async stats() {
|
|
100
185
|
const one = async (sql) => (await this.db.query(sql)).rows[0]?.n ?? 0;
|
|
101
186
|
const users = await one(`select count(*)::int as n from auth.users`);
|
package/dist/admin/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/admin/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/admin/api.ts"],"names":[],"mappings":"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"}
|