@filelayer/core 0.3.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +338 -0
  2. package/LICENSE +202 -0
  3. package/MIGRATIONS.md +328 -0
  4. package/NOTICE +37 -0
  5. package/README.md +343 -0
  6. package/SEMANTICS.md +729 -0
  7. package/dist/authz.d.ts +524 -0
  8. package/dist/authz.d.ts.map +1 -0
  9. package/dist/authz.js +889 -0
  10. package/dist/authz.js.map +1 -0
  11. package/dist/db.d.ts +145 -0
  12. package/dist/db.d.ts.map +1 -0
  13. package/dist/db.js +217 -0
  14. package/dist/db.js.map +1 -0
  15. package/dist/delivery.d.ts +293 -0
  16. package/dist/delivery.d.ts.map +1 -0
  17. package/dist/delivery.js +519 -0
  18. package/dist/delivery.js.map +1 -0
  19. package/dist/errors.d.ts +16 -0
  20. package/dist/errors.d.ts.map +1 -0
  21. package/dist/errors.js +21 -0
  22. package/dist/errors.js.map +1 -0
  23. package/dist/filelayer.d.ts +542 -0
  24. package/dist/filelayer.d.ts.map +1 -0
  25. package/dist/filelayer.js +1360 -0
  26. package/dist/filelayer.js.map +1 -0
  27. package/dist/index.d.ts +8 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +8 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/simple.d.ts +297 -0
  32. package/dist/simple.d.ts.map +1 -0
  33. package/dist/simple.js +492 -0
  34. package/dist/simple.js.map +1 -0
  35. package/dist/storage.d.ts +269 -0
  36. package/dist/storage.d.ts.map +1 -0
  37. package/dist/storage.js +700 -0
  38. package/dist/storage.js.map +1 -0
  39. package/dist/store.d.ts +432 -0
  40. package/dist/store.d.ts.map +1 -0
  41. package/dist/store.js +862 -0
  42. package/dist/store.js.map +1 -0
  43. package/package.json +77 -0
  44. package/schema.sql +1190 -0
  45. package/src/authz.ts +1398 -0
  46. package/src/db.ts +271 -0
  47. package/src/delivery.ts +737 -0
  48. package/src/errors.ts +24 -0
  49. package/src/filelayer.ts +1836 -0
  50. package/src/index.ts +7 -0
  51. package/src/simple.ts +666 -0
  52. package/src/storage.ts +917 -0
  53. package/src/store.ts +1072 -0
  54. package/test/delivery.test.ts +0 -0
  55. package/test/group-subjects.test.ts +1072 -0
  56. package/test/helpers.ts +65 -0
  57. package/test/listing.test.ts +689 -0
  58. package/test/local-s3.d.mts +33 -0
  59. package/test/local-s3.mjs +400 -0
  60. package/test/persistence.test.ts +953 -0
  61. package/test/regression.test.ts +619 -0
  62. package/test/s3-live.test.ts +322 -0
  63. package/test/security.test.ts +1652 -0
  64. package/test/semantics.test.ts +888 -0
  65. package/test/storage.test.ts +437 -0
  66. package/test/tiers.test.ts +432 -0
  67. package/test/vault-example.test.ts +302 -0
  68. package/tsconfig.build.json +29 -0
  69. package/tsconfig.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filelayer.js","sourceRoot":"","sources":["../src/filelayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './authz.ts';
2
+ export * from './db.ts';
3
+ export * from './storage.ts';
4
+ export * from './store.ts';
5
+ export * from './filelayer.ts';
6
+ export * from './simple.ts';
7
+ export * from './delivery.ts';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from "./authz.js";
2
+ export * from "./db.js";
3
+ export * from "./storage.js";
4
+ export * from "./store.js";
5
+ export * from "./filelayer.js";
6
+ export * from "./simple.js";
7
+ export * from "./delivery.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * PROGRESSIVE DISCLOSURE -- the tiered surface.
3
+ *
4
+ * This file exists to answer one question:
5
+ *
6
+ * "A developer who only needs a public avatar should be able to use an
7
+ * extremely simple version. A developer who needs a multi-tenant document
8
+ * system should be able to turn on the advanced capabilities."
9
+ *
10
+ * WHAT THIS FILE IS
11
+ * -----------------
12
+ * A thin, additive facade over `Filelayer`. It provisions the concepts the
13
+ * developer did not ask for (a workspace, a service identity, a membership) so
14
+ * that the trivial case costs one line, and it names the concepts the developer
15
+ * DID ask for (an owner, an org, a role) so that the advanced case is reachable
16
+ * by adding an option rather than by rewriting.
17
+ *
18
+ * WHAT THIS FILE IS NOT
19
+ * ---------------------
20
+ * It contains **no authorization logic**. Every call below goes through the same
21
+ * `authz.ts` engine as the full API, with the same audit guarantee. Grep it: the
22
+ * only `if` statements are about which identifier to resolve, never about
23
+ * whether access is permitted.
24
+ *
25
+ * THE FOUR SECURITY PROPERTIES, AND HOW EACH SURVIVES THE ERGONOMICS
26
+ * -----------------------------------------------------------------
27
+ * P1 (deny by default, no public boolean).
28
+ * `{ public: true }` does NOT set a flag. It creates an `anonymous` grant
29
+ * row -- the same row `share({subject:{type:'anonymous'}})` creates -- which
30
+ * is explicit, listable, revocable and audited. `unpublish()` revokes it.
31
+ * There is still no `file.public` column and there never will be.
32
+ *
33
+ * P2 (no ambient authority).
34
+ * Auto-provisioning creates IDENTITIES, never PERMISSIONS beyond the file
35
+ * the caller is creating. A user auto-registered by `put({owner})` gets the
36
+ * `member` role, and `member` + the default `private` visibility means they
37
+ * can read exactly their own files and nothing else. Reads never
38
+ * auto-provision: an unknown `as:` is a 404, not a silent downgrade to
39
+ * anonymous. That last rule is the one that would have been easy to get
40
+ * wrong and is tested explicitly.
41
+ *
42
+ * P3 (tenant isolation is structural).
43
+ * Untouched. Every file still has a real `org_id`. The "no org" experience
44
+ * is a DEFAULT org, not a NULL one -- see ARCHITECTURE-PROGRESSIVE.md for
45
+ * the measurement showing that a nullable `org_id` silently disables the
46
+ * composite foreign key that P3 rests on.
47
+ *
48
+ * P4 (a URL never outlives its permission).
49
+ * The public URL is `/f/:id` served by our own delivery path, which
50
+ * re-authorizes on every request. Revoke the anonymous grant and the URL is
51
+ * dead on the next request. This is the property a public S3 bucket and
52
+ * Supabase's `getPublicUrl` cannot offer at any price. It is ALSO the
53
+ * property that CDN caching would weaken -- see `delivery.ts`, which
54
+ * defaults to `no-store` for that reason.
55
+ */
56
+ import { type Filelayer, type FileRecord } from './filelayer.ts';
57
+ import type { Capability, FileVisibility, OrgRole } from './authz.ts';
58
+ /**
59
+ * The org every file lands in when the developer never mentioned an org.
60
+ *
61
+ * A reserved `external_id`, not a magic NULL. Tier 3 is reached by naming a
62
+ * different org, not by turning a boundary on.
63
+ */
64
+ export declare const DEFAULT_WORKSPACE = "__filelayer_workspace__";
65
+ /**
66
+ * The identity that owns files uploaded with no `owner:`.
67
+ *
68
+ * It is the `owner` of the default workspace (so tier 1 works with no user
69
+ * model at all) and a plain `member` of any org the developer names (so it does
70
+ * NOT acquire admin read over a real tenant's documents as a side effect of
71
+ * being used for an unowned upload).
72
+ */
73
+ export declare const SYSTEM_ACTOR = "__filelayer_system__";
74
+ export interface PutOptions {
75
+ /** Defaults to `file`. Cosmetic; used for Content-Disposition. */
76
+ name?: string;
77
+ /** Sniffed from magic bytes when omitted; `application/octet-stream` if unknown. */
78
+ contentType?: string;
79
+ /**
80
+ * Create an anonymous read grant alongside the file, and return a URL.
81
+ *
82
+ * This is one line of sugar over `share({subject:{type:'anonymous'}})`. It is
83
+ * not a flag on the file. `unpublish()` takes it away, immediately, for URLs
84
+ * already in the wild.
85
+ */
86
+ public?: boolean;
87
+ /**
88
+ * Your own user id. Auto-registered on first use and made a `member` of the
89
+ * target workspace. With the default `private` visibility this means: they
90
+ * can read their own files, and nobody else's.
91
+ */
92
+ owner?: string;
93
+ /** Your own tenant id. Auto-created on first use. Defaults to the workspace. */
94
+ org?: string;
95
+ /** `private` (default) = owner + org admins. `org` = every member may read. */
96
+ visibility?: FileVisibility;
97
+ expiresIn?: number;
98
+ retainFor?: number;
99
+ metadata?: Record<string, unknown>;
100
+ }
101
+ export interface PutResult {
102
+ id: string;
103
+ name: string;
104
+ contentType: string;
105
+ size: number;
106
+ /** Present only for `public: true` files, and only when `baseUrl` is set. */
107
+ url?: string;
108
+ }
109
+ export interface AsOption {
110
+ /**
111
+ * Act as this user. Omit for an anonymous caller, which can read only files
112
+ * carrying an anonymous grant.
113
+ *
114
+ * An `as:` naming a user we have never seen is a DENIAL, not an anonymous
115
+ * read. Falling back would be the exact "ambient authority" failure P2 exists
116
+ * to prevent.
117
+ */
118
+ as?: string;
119
+ }
120
+ export interface GetResult {
121
+ id: string;
122
+ name: string;
123
+ contentType: string;
124
+ body: Uint8Array;
125
+ /** The response headers these bytes must be served with. See delivery.ts. */
126
+ headers: Record<string, string>;
127
+ }
128
+ export declare function sniffContentType(body: Uint8Array): string;
129
+ /** The subset of `Filelayer` this facade drives. Declared to keep the import graph one-way. */
130
+ type Core = Filelayer;
131
+ export declare class FilesApi {
132
+ private readonly fl;
133
+ private readonly ids;
134
+ constructor(fl: Core);
135
+ /**
136
+ * TIER 1: `put(bytes, { public: true })` -> a URL, no other concepts.
137
+ * TIER 2: `put(bytes, { owner: userId })` -> adds an owner.
138
+ * TIER 3: `put(bytes, { org, owner })` -> adds a tenant.
139
+ * TIER 4: `+ expiresIn / retainFor / metadata`
140
+ */
141
+ put(body: Uint8Array, opts?: PutOptions): Promise<PutResult>;
142
+ /**
143
+ * Read a file as a user (`{ as }`), or anonymously (no options).
144
+ *
145
+ * `headers` is carried through from the delivery layer so that the simple
146
+ * tier is exactly as safe as the full one. A tier-2 app that writes
147
+ * `res.writeHead(200, { 'content-type': f.contentType })` re-opens the
148
+ * stored-XSS path; `res.writeHead(200, f.headers)` does not.
149
+ */
150
+ get(fileId: string, opts?: AsOption): Promise<GetResult>;
151
+ delete(fileId: string, opts?: AsOption): Promise<void>;
152
+ /** Make an existing file publicly readable. Same grant row as `put({public:true})`. */
153
+ publish(fileId: string, opts?: AsOption): Promise<{
154
+ url: string;
155
+ grantId: string;
156
+ }>;
157
+ /**
158
+ * Withdraw public access. Revokes every live anonymous grant on the file.
159
+ *
160
+ * This is the operation a public bucket cannot perform: after it returns, a
161
+ * URL that has been printed, indexed and shared stops working on the very
162
+ * next request, because delivery re-authorizes every time.
163
+ */
164
+ unpublish(fileId: string, opts?: AsOption): Promise<{
165
+ revoked: number;
166
+ }>;
167
+ /**
168
+ * The delivery URL for a public file. Meaningless without an anonymous grant.
169
+ *
170
+ * IT ALWAYS BUILDS ON `/f`, so whatever serves it has to be mounted there.
171
+ * `deliveryHandler(fl)` is -- its `filePrefix` defaults to `/f`. But
172
+ * `fileDownloadRoute(fl, { principal })` mounted on its own defaults to a
173
+ * `prefix` of `/files`, and a URL from here would 404 against it. Either
174
+ * mount `deliveryHandler`, or pass `prefix: '/f'` to `fileDownloadRoute`.
175
+ */
176
+ publicUrl(fileId: string): string;
177
+ /**
178
+ * Metadata only, no bytes, authorized identically to `get`.
179
+ *
180
+ * This used to call `read()` (fetching the whole object) and then
181
+ * `getFileRecord()` (unauthorized, and now private). It calls the authorized
182
+ * `stat()` instead, which means a metadata lookup no longer moves the bytes
183
+ * and -- since the cap counts bytes leaving (P6) -- no longer spends a
184
+ * download from a capped grant.
185
+ */
186
+ stat(fileId: string, opts?: AsOption): Promise<FileRecord>;
187
+ /**
188
+ * External user id -> Principal.
189
+ *
190
+ * FAILS CLOSED. An `as:` we cannot resolve is 404, never a silent demotion to
191
+ * an anonymous principal -- which would turn a typo in a user id into a read
192
+ * of every public file, and, worse, would make the audit log attribute it to
193
+ * nobody.
194
+ */
195
+ private principal;
196
+ }
197
+ export declare class OrgsApi {
198
+ private readonly fl;
199
+ private readonly ids;
200
+ constructor(fl: Core);
201
+ /**
202
+ * Create a tenant with its first owner. Idempotent.
203
+ *
204
+ * The owner is created WITH the org for the same reason `createOrg` does it:
205
+ * there is never a memberless org for someone to walk into.
206
+ */
207
+ create(externalId: string, opts: {
208
+ name?: string;
209
+ owner: string;
210
+ }): Promise<{
211
+ id: string;
212
+ }>;
213
+ /**
214
+ * Add or change a member's role.
215
+ *
216
+ * `as` is REQUIRED and is not defaulted. Membership is the privilege that
217
+ * confers every other privilege; there is no convenience worth an unauthorized
218
+ * path to it. This is the one place where the tiered API is deliberately no
219
+ * shorter than the full API.
220
+ */
221
+ setRole(org: string, user: string, role: OrgRole, opts: {
222
+ as: string;
223
+ }): Promise<void>;
224
+ removeMember(org: string, user: string, opts: {
225
+ as: string;
226
+ }): Promise<void>;
227
+ /** Audit trail for a tenant. Requires `read_audit`, i.e. admin or owner. */
228
+ audit(org: string, opts: {
229
+ as: string;
230
+ decision?: 'allow' | 'deny';
231
+ limit?: number;
232
+ }): Promise<import("./store.ts").AuditRow[]>;
233
+ verifyAudit(org: string, opts: {
234
+ as: string;
235
+ }): Promise<import("./store.ts").AuditChainResult>;
236
+ private trio;
237
+ private requireOrg;
238
+ private requirePrincipal;
239
+ }
240
+ export interface ShareOptions extends AsOption {
241
+ as: string;
242
+ expiresIn?: number;
243
+ maxDownloads?: number;
244
+ password?: string;
245
+ /** Share with a named user instead of minting a link. */
246
+ withUser?: string;
247
+ /**
248
+ * Share with EVERY MEMBER of an organization -- your own tenant id for it,
249
+ * the same string you pass as `org:` to `files.put`. May name a DIFFERENT org
250
+ * from the file's own ("the company that posted this job may read this CV");
251
+ * it must be an org in the same project.
252
+ *
253
+ * Resolution is a join against membership, evaluated per request: add or
254
+ * remove a member and their access changes on the very next call, with no
255
+ * grant row touched. Nothing is fanned out.
256
+ */
257
+ withOrg?: string;
258
+ /**
259
+ * With `withOrg`, narrows the grant to members at this role or above --
260
+ * `shares.create(id, { as, withOrg: 'acme', minRole: 'admin' })` is "admins
261
+ * of acme only". Omit it and every member matches, at any role.
262
+ *
263
+ * The four roles are the existing `viewer | member | admin | owner`. There
264
+ * are no custom roles: this is a floor over that enum, nothing more.
265
+ */
266
+ minRole?: OrgRole;
267
+ capabilities?: Capability[];
268
+ }
269
+ export declare class SharesApi {
270
+ private readonly fl;
271
+ private readonly ids;
272
+ constructor(fl: Core);
273
+ create(fileId: string, opts: ShareOptions): Promise<import("./filelayer.ts").ShareResult>;
274
+ revoke(grantId: string, opts: {
275
+ as: string;
276
+ }): Promise<void>;
277
+ list(fileId: string, opts: {
278
+ as: string;
279
+ }): Promise<import("./filelayer.ts").GrantSummary[]>;
280
+ /** Redeem a share link. No identity required -- the secret is the credential. */
281
+ redeem(secret: string, opts?: {
282
+ password?: string;
283
+ ip?: string;
284
+ }): Promise<{
285
+ file: FileRecord;
286
+ body: Uint8Array;
287
+ headers: Record<string, string>;
288
+ remainingDownloads: number | null;
289
+ }>;
290
+ /**
291
+ * External org id -> internal id, within this project. Read-only and
292
+ * fail-closed, exactly like `Identities.findActor`.
293
+ */
294
+ private requireOrgId;
295
+ }
296
+ export {};
297
+ //# sourceMappingURL=simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../src/simple.ts"],"names":[],"mappings":"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"}