{"_id":"@aegiskit/store-supabase","name":"@aegiskit/store-supabase","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aegiskit/store-supabase","version":"0.1.0","description":"Persistent Aegis EventStore backed by Supabase/Postgres, shipping a migration with Row Level Security enabled by default.","license":"MIT","type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./migrations/0001_aegis_events.sql":"./migrations/0001_aegis_events.sql"},"dependencies":{"@aegiskit/observability":"0.1.0"},"peerDependencies":{"@supabase/supabase-js":">=2.0.0"},"peerDependenciesMeta":{"@supabase/supabase-js":{"optional":true}},"devDependencies":{"@types/node":"^24.0.0","tsup":"^8.5.1","typescript":"^6.0.3","vitest":"^4.1.9"},"engines":{"node":">=24.0.0"},"keywords":["security","supabase","postgres","rls","event-store","observability"],"author":{"name":"tomodahinata"},"homepage":"https://github.com/tomodahinata/aegis/tree/main/packages/store-supabase#readme","repository":{"type":"git","url":"git+https://github.com/tomodahinata/aegis.git","directory":"packages/store-supabase"},"bugs":{"url":"https://github.com/tomodahinata/aegis/issues"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_id":"@aegiskit/store-supabase@0.1.0","_integrity":"sha512-dpeczCFAtkbaUYkivUy7BC/LwGSXybfbQpnYEkCeO+ZBScE6uJLpDk2FX6L7UttfjETTbMCiTf3ynwMYsM921Q==","_resolved":"/tmp/77858f544929d347d465abefc65dce78/aegiskit-store-supabase-0.1.0.tgz","_from":"file:aegiskit-store-supabase-0.1.0.tgz","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-dpeczCFAtkbaUYkivUy7BC/LwGSXybfbQpnYEkCeO+ZBScE6uJLpDk2FX6L7UttfjETTbMCiTf3ynwMYsM921Q==","shasum":"edbff9b2b9c0c07b6cda78459bda5cbdacdf24b9","tarball":"https://registry.npmjs.org/@aegiskit/store-supabase/-/store-supabase-0.1.0.tgz","fileCount":6,"unpackedSize":11228,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCEhMEiQLhO377U41g0rppTNQvstDlYCW+EeOac6bC5swIgRV+/y+i6LT5L1JAgSXiB9/R0iiytzhjR0LcWsCSu6TQ="}]},"_npmUser":{"name":"tomodahinata","email":"hikaru.hinata.hikari@icloud.com"},"directories":{},"maintainers":[{"name":"tomodahinata","email":"hikaru.hinata.hikari@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/store-supabase_0.1.0_1782540504024_0.9325610618426965"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-27T06:08:23.913Z","0.1.0":"2026-06-27T06:08:24.200Z","modified":"2026-06-27T06:08:24.419Z"},"maintainers":[{"name":"tomodahinata","email":"hikaru.hinata.hikari@icloud.com"}],"description":"Persistent Aegis EventStore backed by Supabase/Postgres, shipping a migration with Row Level Security enabled by default.","homepage":"https://github.com/tomodahinata/aegis/tree/main/packages/store-supabase#readme","keywords":["security","supabase","postgres","rls","event-store","observability"],"repository":{"type":"git","url":"git+https://github.com/tomodahinata/aegis.git","directory":"packages/store-supabase"},"author":{"name":"tomodahinata"},"bugs":{"url":"https://github.com/tomodahinata/aegis/issues"},"license":"MIT","readme":"# @aegiskit/store-supabase\n\nA persistent Aegis `EventStore` backed by Supabase/Postgres, shipping a migration with **Row Level Security enabled by default**.\n\n## Install + migrate\n\n```bash\npnpm add @aegiskit/store-supabase @supabase/supabase-js\n# apply the migration (RLS on; service_role writes, admins read):\npsql \"$DATABASE_URL\" -f node_modules/@aegiskit/store-supabase/migrations/0001_aegis_events.sql\n```\n\n## Use\n\n```ts\nimport { createClient } from '@supabase/supabase-js';\nimport { createSupabaseEventStore } from '@aegiskit/store-supabase';\n\n// Use the SERVICE_ROLE key on the ingestion side (it bypasses RLS to write).\nconst supabase = createClient(url, serviceRoleKey);\nconst store = createSupabaseEventStore({ client: supabase });\n\nawait store.append(events); // insert … on conflict (id) do nothing — idempotent\nconst recent = await store.query({ type: 'origin_block', limit: 50 });\nconst summary = await store.summary({ since, until });\n```\n\n- **Idempotency** is the table's primary key.\n- **RLS** is the access-control boundary Aegis preaches: the migration enables it with an admin-only read policy and no write policy (writes happen via the `service_role` key, which bypasses RLS). A `tenant_id` seam is documented for multi-tenant deployments.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-60f9bcc5ef6c8321427ead079273c06a"}