spicedb-embedded 0.2.6 → 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.
- package/README.md +1 -4
- package/dist/embedded.d.ts +15 -9
- package/dist/embedded.d.ts.map +1 -1
- package/dist/embedded.js +216 -28
- package/dist/embedded.js.map +1 -1
- package/dist/ffi.d.ts +17 -5
- package/dist/ffi.d.ts.map +1 -1
- package/dist/ffi.js +100 -5
- package/dist/ffi.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -76,9 +76,7 @@ spicedb.close();
|
|
|
76
76
|
|
|
77
77
|
It is scary! Using a C-shared library via FFI bindings introduces memory management in languages that don't typically have to worry about it.
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
So you get the benefits of (1) using the same generated gRPC code to communicate with SpiceDB that would in a non-embedded world, and (2) communication happens out-of-band so that no memory allocations happen in the FFI layer once the embedded server is running.
|
|
79
|
+
That being said, the SpiceDB code still runs in a Go runtime with garbage collection, which is where the vast majority of time is spent. To help mitigate some of the risk, the FFI layer is kept as straightforward as possible. protobuf is marshalled and unmarshalled at the FFI <--> language runtime boundary in a standardized way. After unmarshalling, requests are sent directly to the SpiceDB server, and responses are returned directly back to the language runtime (after marshalling).
|
|
82
80
|
|
|
83
81
|
## Comparison with SpiceDB WASM
|
|
84
82
|
|
|
@@ -190,7 +188,6 @@ import { EmbeddedSpiceDB, SpiceDBStartOptions } from "spicedb-embedded";
|
|
|
190
188
|
|
|
191
189
|
const options: SpiceDBStartOptions = {
|
|
192
190
|
datastore: "memory", // or "postgres", "cockroachdb", "spanner", "mysql"
|
|
193
|
-
grpc_transport: "unix", // or "tcp"; default by platform
|
|
194
191
|
datastore_uri: "postgres://user:pass@localhost:5432/spicedb", // required for remote
|
|
195
192
|
spanner_credentials_file: "/path/to/key.json", // Spanner only
|
|
196
193
|
spanner_emulator_host: "localhost:9010", // Spanner emulator
|
package/dist/embedded.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Embedded SpiceDB instance.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Uses the C-shared library with in-memory transport: unary RPCs go through FFI,
|
|
5
|
+
* streaming APIs (Watch, ReadRelationships, etc.) use a streaming proxy.
|
|
6
6
|
*
|
|
7
7
|
* Use permissions(), schema(), and watch() to access the full SpiceDB API.
|
|
8
8
|
*/
|
|
@@ -13,32 +13,38 @@ export declare class SpiceDBError extends Error {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class EmbeddedSpiceDB {
|
|
15
15
|
private readonly handle;
|
|
16
|
-
private readonly
|
|
16
|
+
private readonly _streamingAddress;
|
|
17
|
+
private readonly streamingClient;
|
|
18
|
+
private _closed;
|
|
17
19
|
private constructor();
|
|
18
20
|
/**
|
|
19
|
-
* Create a new embedded SpiceDB instance
|
|
21
|
+
* Create a new embedded SpiceDB instance (in-memory only).
|
|
20
22
|
*
|
|
21
23
|
* @param schema - The SpiceDB schema definition (ZED language)
|
|
22
24
|
* @param relationships - Initial relationships (empty array allowed)
|
|
23
|
-
* @param options - Optional
|
|
25
|
+
* @param options - Optional datastore options (always in-memory)
|
|
24
26
|
* @returns New EmbeddedSpiceDB instance
|
|
25
27
|
*/
|
|
26
28
|
static create(schema: string, relationships?: v1.Relationship[], options?: SpiceDBStartOptions | null): Promise<EmbeddedSpiceDB>;
|
|
27
29
|
private bootstrap;
|
|
28
30
|
/**
|
|
29
|
-
* Permissions service
|
|
31
|
+
* Permissions service: unary RPCs via FFI, streaming (ReadRelationships, LookupResources, LookupSubjects) via streaming proxy.
|
|
30
32
|
*/
|
|
31
33
|
permissions(): v1.ZedClientInterface;
|
|
32
34
|
/**
|
|
33
|
-
* Schema service
|
|
35
|
+
* Schema service (ReadSchema, WriteSchema, etc.) via FFI.
|
|
34
36
|
*/
|
|
35
37
|
schema(): v1.ZedClientInterface;
|
|
36
38
|
/**
|
|
37
|
-
* Watch service
|
|
39
|
+
* Watch service (streaming) via streaming proxy.
|
|
38
40
|
*/
|
|
39
41
|
watch(): v1.ZedClientInterface;
|
|
40
42
|
/**
|
|
41
|
-
*
|
|
43
|
+
* Streaming address (Unix path or host:port) for streaming APIs.
|
|
44
|
+
*/
|
|
45
|
+
streamingAddress(): string;
|
|
46
|
+
/**
|
|
47
|
+
* Dispose the instance and close the streaming channel.
|
|
42
48
|
*/
|
|
43
49
|
close(): void;
|
|
44
50
|
}
|
package/dist/embedded.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AAwBlB,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAYD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAUP;;;;;;;OAOG;WACU,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,EAAE,CAAC,YAAY,EAAO,EACrC,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,GACnC,OAAO,CAAC,eAAe,CAAC;YAsBb,SAAS;IAyBvB;;OAEG;IACH,WAAW,IAAI,EAAE,CAAC,kBAAkB;IAgMpC;;OAEG;IACH,MAAM,IAAI,EAAE,CAAC,kBAAkB;IAkF/B;;OAEG;IACH,KAAK,IAAI,EAAE,CAAC,kBAAkB;IAI9B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd"}
|
package/dist/embedded.js
CHANGED
|
@@ -1,47 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Embedded SpiceDB instance.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Uses the C-shared library with in-memory transport: unary RPCs go through FFI,
|
|
5
|
+
* streaming APIs (Watch, ReadRelationships, etc.) use a streaming proxy.
|
|
6
6
|
*
|
|
7
7
|
* Use permissions(), schema(), and watch() to access the full SpiceDB API.
|
|
8
8
|
*/
|
|
9
9
|
import * as grpc from "@grpc/grpc-js";
|
|
10
10
|
import { v1 } from "@authzed/authzed-node";
|
|
11
|
-
import { spicedb_dispose, spicedb_start, } from "./ffi.js";
|
|
11
|
+
import { spicedb_dispose, spicedb_schema_read_schema, spicedb_schema_write_schema, spicedb_permissions_check_permission, spicedb_permissions_write_relationships, spicedb_permissions_delete_relationships, spicedb_permissions_check_bulk_permissions, spicedb_permissions_expand_permission_tree, spicedb_start, } from "./ffi.js";
|
|
12
12
|
import { getTarget as getTcpTarget } from "./tcp_channel.js";
|
|
13
13
|
import { getTarget as getUnixSocketTarget } from "./unix_socket_channel.js";
|
|
14
|
-
const {
|
|
14
|
+
const { CheckPermissionRequest, CheckPermissionResponse, CheckBulkPermissionsRequest, CheckBulkPermissionsResponse, ExpandPermissionTreeRequest, ExpandPermissionTreeResponse, DeleteRelationshipsRequest, DeleteRelationshipsResponse, WriteRelationshipsRequest, WriteRelationshipsResponse, ReadSchemaRequest, ReadSchemaResponse, WriteSchemaRequest, WriteSchemaResponse, NewClientWithChannelCredentials, RelationshipUpdate, RelationshipUpdate_Operation, } = v1;
|
|
15
15
|
export class SpiceDBError extends Error {
|
|
16
16
|
constructor(message) {
|
|
17
17
|
super(message);
|
|
18
18
|
this.name = "SpiceDBError";
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
/** Build gRPC target from streaming_address and streaming_transport. */
|
|
22
|
+
function streamingTarget(streamingAddress, streamingTransport) {
|
|
23
|
+
return streamingTransport === "unix"
|
|
24
|
+
? getUnixSocketTarget(streamingAddress)
|
|
25
|
+
: getTcpTarget(streamingAddress);
|
|
26
|
+
}
|
|
21
27
|
export class EmbeddedSpiceDB {
|
|
22
28
|
handle;
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
_streamingAddress;
|
|
30
|
+
streamingClient;
|
|
31
|
+
_closed = false;
|
|
32
|
+
constructor(handle, streamingAddr, streamingClient) {
|
|
25
33
|
this.handle = handle;
|
|
26
|
-
this.
|
|
34
|
+
this._streamingAddress = streamingAddr;
|
|
35
|
+
this.streamingClient = streamingClient;
|
|
27
36
|
}
|
|
28
37
|
/**
|
|
29
|
-
* Create a new embedded SpiceDB instance
|
|
38
|
+
* Create a new embedded SpiceDB instance (in-memory only).
|
|
30
39
|
*
|
|
31
40
|
* @param schema - The SpiceDB schema definition (ZED language)
|
|
32
41
|
* @param relationships - Initial relationships (empty array allowed)
|
|
33
|
-
* @param options - Optional
|
|
42
|
+
* @param options - Optional datastore options (always in-memory)
|
|
34
43
|
* @returns New EmbeddedSpiceDB instance
|
|
35
44
|
*/
|
|
36
45
|
static async create(schema, relationships = [], options) {
|
|
37
46
|
const data = spicedb_start(options ?? undefined);
|
|
38
|
-
const { handle,
|
|
39
|
-
const target =
|
|
40
|
-
? getUnixSocketTarget(address)
|
|
41
|
-
: getTcpTarget(address);
|
|
47
|
+
const { handle, streaming_address, streaming_transport } = data;
|
|
48
|
+
const target = streamingTarget(streaming_address, streaming_transport);
|
|
42
49
|
const creds = grpc.credentials.createInsecure();
|
|
43
|
-
const
|
|
44
|
-
const db = new EmbeddedSpiceDB(handle,
|
|
50
|
+
const streamingClient = NewClientWithChannelCredentials(target, creds, 0);
|
|
51
|
+
const db = new EmbeddedSpiceDB(handle, streaming_address, streamingClient);
|
|
45
52
|
try {
|
|
46
53
|
await db.bootstrap(schema, relationships);
|
|
47
54
|
}
|
|
@@ -53,41 +60,222 @@ export class EmbeddedSpiceDB {
|
|
|
53
60
|
}
|
|
54
61
|
async bootstrap(schema, relationships) {
|
|
55
62
|
const schemaRequest = WriteSchemaRequest.create({ schema });
|
|
56
|
-
|
|
63
|
+
const schemaBytes = new Uint8Array(WriteSchemaRequest.toBinary(schemaRequest));
|
|
64
|
+
spicedb_schema_write_schema(this.handle, schemaBytes);
|
|
57
65
|
if (relationships.length > 0) {
|
|
58
66
|
const updates = relationships.map((r) => RelationshipUpdate.create({
|
|
59
67
|
operation: RelationshipUpdate_Operation.TOUCH,
|
|
60
68
|
relationship: r,
|
|
61
69
|
}));
|
|
62
|
-
const writeRequest = WriteRelationshipsRequest.create({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
await this.client.promises.writeRelationships(writeRequest);
|
|
70
|
+
const writeRequest = WriteRelationshipsRequest.create({ updates });
|
|
71
|
+
const writeBytes = new Uint8Array(WriteRelationshipsRequest.toBinary(writeRequest));
|
|
72
|
+
spicedb_permissions_write_relationships(this.handle, writeBytes);
|
|
66
73
|
}
|
|
67
74
|
}
|
|
68
75
|
/**
|
|
69
|
-
* Permissions service
|
|
76
|
+
* Permissions service: unary RPCs via FFI, streaming (ReadRelationships, LookupResources, LookupSubjects) via streaming proxy.
|
|
70
77
|
*/
|
|
71
78
|
permissions() {
|
|
72
|
-
|
|
79
|
+
const h = this.handle;
|
|
80
|
+
const stream = this.streamingClient;
|
|
81
|
+
const unaryCheckPermission = (input, metadata, options, callback) => {
|
|
82
|
+
const bytes = new Uint8Array(CheckPermissionRequest.toBinary(input));
|
|
83
|
+
try {
|
|
84
|
+
const out = spicedb_permissions_check_permission(h, bytes);
|
|
85
|
+
const resp = CheckPermissionResponse.fromBinary(out);
|
|
86
|
+
if (callback) {
|
|
87
|
+
setImmediate(() => callback(null, resp));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (callback) {
|
|
92
|
+
setImmediate(() => callback(err, undefined));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {};
|
|
96
|
+
};
|
|
97
|
+
const unaryWriteRelationships = (input, metadata, options, callback) => {
|
|
98
|
+
const bytes = new Uint8Array(WriteRelationshipsRequest.toBinary(input));
|
|
99
|
+
try {
|
|
100
|
+
const out = spicedb_permissions_write_relationships(h, bytes);
|
|
101
|
+
const resp = WriteRelationshipsResponse.fromBinary(out);
|
|
102
|
+
if (callback) {
|
|
103
|
+
setImmediate(() => callback(null, resp));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
if (callback) {
|
|
108
|
+
setImmediate(() => callback(err, undefined));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return {};
|
|
112
|
+
};
|
|
113
|
+
const unaryDeleteRelationships = (input, metadata, options, callback) => {
|
|
114
|
+
const bytes = new Uint8Array(DeleteRelationshipsRequest.toBinary(input));
|
|
115
|
+
try {
|
|
116
|
+
const out = spicedb_permissions_delete_relationships(h, bytes);
|
|
117
|
+
const resp = DeleteRelationshipsResponse.fromBinary(out);
|
|
118
|
+
if (callback) {
|
|
119
|
+
setImmediate(() => callback(null, resp));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
if (callback) {
|
|
124
|
+
setImmediate(() => callback(err, undefined));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return {};
|
|
128
|
+
};
|
|
129
|
+
const unaryCheckBulkPermissions = (input, metadata, options, callback) => {
|
|
130
|
+
const bytes = new Uint8Array(CheckBulkPermissionsRequest.toBinary(input));
|
|
131
|
+
try {
|
|
132
|
+
const out = spicedb_permissions_check_bulk_permissions(h, bytes);
|
|
133
|
+
const resp = CheckBulkPermissionsResponse.fromBinary(out);
|
|
134
|
+
if (callback) {
|
|
135
|
+
setImmediate(() => callback(null, resp));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
if (callback) {
|
|
140
|
+
setImmediate(() => callback(err, undefined));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return {};
|
|
144
|
+
};
|
|
145
|
+
const unaryExpandPermissionTree = (input, metadata, options, callback) => {
|
|
146
|
+
const bytes = new Uint8Array(ExpandPermissionTreeRequest.toBinary(input));
|
|
147
|
+
try {
|
|
148
|
+
const out = spicedb_permissions_expand_permission_tree(h, bytes);
|
|
149
|
+
const resp = ExpandPermissionTreeResponse.fromBinary(out);
|
|
150
|
+
if (callback) {
|
|
151
|
+
setImmediate(() => callback(null, resp));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
if (callback) {
|
|
156
|
+
setImmediate(() => callback(err, undefined));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return {};
|
|
160
|
+
};
|
|
161
|
+
const promises = {
|
|
162
|
+
...stream.promises,
|
|
163
|
+
readRelationships: stream.promises.readRelationships.bind(stream.promises),
|
|
164
|
+
lookupResources: stream.promises.lookupResources.bind(stream.promises),
|
|
165
|
+
lookupSubjects: stream.promises.lookupSubjects.bind(stream.promises),
|
|
166
|
+
checkPermission: (input) => new Promise((resolve, reject) => {
|
|
167
|
+
unaryCheckPermission(input, undefined, undefined, (err, value) => err ? reject(err) : resolve(value));
|
|
168
|
+
}),
|
|
169
|
+
writeRelationships: (input) => new Promise((resolve, reject) => {
|
|
170
|
+
unaryWriteRelationships(input, undefined, undefined, (err, value) => err ? reject(err) : resolve(value));
|
|
171
|
+
}),
|
|
172
|
+
deleteRelationships: (input) => new Promise((resolve, reject) => {
|
|
173
|
+
unaryDeleteRelationships(input, undefined, undefined, (err, value) => err ? reject(err) : resolve(value));
|
|
174
|
+
}),
|
|
175
|
+
checkBulkPermissions: (input) => new Promise((resolve, reject) => {
|
|
176
|
+
unaryCheckBulkPermissions(input, undefined, undefined, (err, value) => (err ? reject(err) : resolve(value)));
|
|
177
|
+
}),
|
|
178
|
+
expandPermissionTree: (input) => new Promise((resolve, reject) => {
|
|
179
|
+
unaryExpandPermissionTree(input, undefined, undefined, (err, value) => (err ? reject(err) : resolve(value)));
|
|
180
|
+
}),
|
|
181
|
+
};
|
|
182
|
+
return new Proxy(stream, {
|
|
183
|
+
get(target, prop) {
|
|
184
|
+
if (prop === "promises")
|
|
185
|
+
return promises;
|
|
186
|
+
if (prop === "checkPermission")
|
|
187
|
+
return unaryCheckPermission;
|
|
188
|
+
if (prop === "writeRelationships")
|
|
189
|
+
return unaryWriteRelationships;
|
|
190
|
+
if (prop === "deleteRelationships")
|
|
191
|
+
return unaryDeleteRelationships;
|
|
192
|
+
if (prop === "checkBulkPermissions")
|
|
193
|
+
return unaryCheckBulkPermissions;
|
|
194
|
+
if (prop === "expandPermissionTree")
|
|
195
|
+
return unaryExpandPermissionTree;
|
|
196
|
+
return target[prop];
|
|
197
|
+
},
|
|
198
|
+
});
|
|
73
199
|
}
|
|
74
200
|
/**
|
|
75
|
-
* Schema service
|
|
201
|
+
* Schema service (ReadSchema, WriteSchema, etc.) via FFI.
|
|
76
202
|
*/
|
|
77
203
|
schema() {
|
|
78
|
-
|
|
204
|
+
const h = this.handle;
|
|
205
|
+
const stream = this.streamingClient;
|
|
206
|
+
const unaryReadSchema = (input, metadata, options, callback) => {
|
|
207
|
+
const bytes = new Uint8Array(ReadSchemaRequest.toBinary(input));
|
|
208
|
+
try {
|
|
209
|
+
const out = spicedb_schema_read_schema(h, bytes);
|
|
210
|
+
const resp = ReadSchemaResponse.fromBinary(out);
|
|
211
|
+
if (callback) {
|
|
212
|
+
setImmediate(() => callback(null, resp));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (err) {
|
|
216
|
+
if (callback) {
|
|
217
|
+
setImmediate(() => callback(err, undefined));
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return {};
|
|
221
|
+
};
|
|
222
|
+
const unaryWriteSchema = (input, metadata, options, callback) => {
|
|
223
|
+
const bytes = new Uint8Array(WriteSchemaRequest.toBinary(input));
|
|
224
|
+
try {
|
|
225
|
+
const out = spicedb_schema_write_schema(h, bytes);
|
|
226
|
+
const resp = WriteSchemaResponse.fromBinary(out);
|
|
227
|
+
if (callback) {
|
|
228
|
+
setImmediate(() => callback(null, resp));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
if (callback) {
|
|
233
|
+
setImmediate(() => callback(err, undefined));
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return {};
|
|
237
|
+
};
|
|
238
|
+
const promises = {
|
|
239
|
+
...stream.promises,
|
|
240
|
+
readSchema: (input) => new Promise((resolve, reject) => {
|
|
241
|
+
unaryReadSchema(input, undefined, undefined, (err, value) => err ? reject(err) : resolve(value));
|
|
242
|
+
}),
|
|
243
|
+
writeSchema: (input) => new Promise((resolve, reject) => {
|
|
244
|
+
unaryWriteSchema(input, undefined, undefined, (err, value) => err ? reject(err) : resolve(value));
|
|
245
|
+
}),
|
|
246
|
+
};
|
|
247
|
+
return new Proxy(stream, {
|
|
248
|
+
get(target, prop) {
|
|
249
|
+
if (prop === "promises")
|
|
250
|
+
return promises;
|
|
251
|
+
if (prop === "readSchema")
|
|
252
|
+
return unaryReadSchema;
|
|
253
|
+
if (prop === "writeSchema")
|
|
254
|
+
return unaryWriteSchema;
|
|
255
|
+
return target[prop];
|
|
256
|
+
},
|
|
257
|
+
});
|
|
79
258
|
}
|
|
80
259
|
/**
|
|
81
|
-
* Watch service
|
|
260
|
+
* Watch service (streaming) via streaming proxy.
|
|
82
261
|
*/
|
|
83
262
|
watch() {
|
|
84
|
-
return this.
|
|
263
|
+
return this.streamingClient;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Streaming address (Unix path or host:port) for streaming APIs.
|
|
267
|
+
*/
|
|
268
|
+
streamingAddress() {
|
|
269
|
+
return this._streamingAddress;
|
|
85
270
|
}
|
|
86
271
|
/**
|
|
87
|
-
* Dispose the instance and close the channel.
|
|
272
|
+
* Dispose the instance and close the streaming channel.
|
|
88
273
|
*/
|
|
89
274
|
close() {
|
|
90
|
-
this.
|
|
275
|
+
if (this._closed)
|
|
276
|
+
return;
|
|
277
|
+
this._closed = true;
|
|
278
|
+
this.streamingClient.close();
|
|
91
279
|
spicedb_dispose(this.handle);
|
|
92
280
|
}
|
|
93
281
|
}
|
package/dist/embedded.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded.js","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embedded.js","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"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"}
|
package/dist/ffi.d.ts
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FFI bindings to the SpiceDB C-shared library (shared/c).
|
|
3
|
+
* Always uses in-memory transport; unary RPCs go through FFI, streaming via proxy.
|
|
3
4
|
*/
|
|
5
|
+
/** Result of starting an embedded instance (memory transport). */
|
|
4
6
|
export interface SpiceDBStartResult {
|
|
5
7
|
handle: number;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
/** Always "memory" when using this API. */
|
|
9
|
+
grpc_transport: "memory";
|
|
10
|
+
/** Address for streaming APIs (Watch, ReadRelationships, etc.). Unix path or host:port. */
|
|
11
|
+
streaming_address: string;
|
|
12
|
+
/** Transport for streaming proxy: "unix" or "tcp". */
|
|
13
|
+
streaming_transport: string;
|
|
8
14
|
}
|
|
15
|
+
/** Options for starting an embedded instance. Only datastore-related options are used. */
|
|
9
16
|
export interface SpiceDBStartOptions {
|
|
10
17
|
/** Datastore: "memory" (default), "postgres", "cockroachdb", "spanner", "mysql" */
|
|
11
18
|
datastore?: string;
|
|
12
19
|
/** Connection string for remote datastores */
|
|
13
20
|
datastore_uri?: string;
|
|
14
|
-
/** gRPC transport: "unix" (default on Unix), "tcp" (default on Windows) */
|
|
15
|
-
grpc_transport?: string;
|
|
16
21
|
/** Path to Spanner service account JSON (Spanner only) */
|
|
17
22
|
spanner_credentials_file?: string;
|
|
18
23
|
/** Spanner emulator host (Spanner only) */
|
|
19
24
|
spanner_emulator_host?: string;
|
|
20
25
|
/** Prefix for all tables (MySQL only) */
|
|
21
26
|
mysql_table_prefix?: string;
|
|
22
|
-
/** Enable datastore Prometheus metrics (default: false
|
|
27
|
+
/** Enable datastore Prometheus metrics (default: false) */
|
|
23
28
|
metrics_enabled?: boolean;
|
|
24
29
|
}
|
|
25
30
|
export declare function spicedb_start(options?: SpiceDBStartOptions | null): SpiceDBStartResult;
|
|
26
31
|
export declare function spicedb_dispose(handle: number): void;
|
|
32
|
+
export declare function spicedb_permissions_check_permission(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
33
|
+
export declare function spicedb_schema_write_schema(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
34
|
+
export declare function spicedb_permissions_write_relationships(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
35
|
+
export declare function spicedb_permissions_delete_relationships(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
36
|
+
export declare function spicedb_permissions_check_bulk_permissions(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
37
|
+
export declare function spicedb_permissions_expand_permission_tree(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
38
|
+
export declare function spicedb_schema_read_schema(handle: number, requestBytes: Uint8Array): Uint8Array;
|
|
27
39
|
//# sourceMappingURL=ffi.d.ts.map
|
package/dist/ffi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffi.d.ts","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ffi.d.ts","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,cAAc,EAAE,QAAQ,CAAC;IACzB,2FAA2F;IAC3F,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAiOD,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,GACnC,kBAAkB,CA0BpB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOpD;AAgCD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAMZ;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAEZ;AAED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAMZ;AAED,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAMZ;AAED,wBAAgB,0CAA0C,CACxD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAMZ;AAED,wBAAgB,0CAA0C,CACxD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAMZ;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACvB,UAAU,CAEZ"}
|
package/dist/ffi.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FFI bindings to the SpiceDB C-shared library (shared/c).
|
|
3
|
+
* Always uses in-memory transport; unary RPCs go through FFI, streaming via proxy.
|
|
3
4
|
*/
|
|
4
5
|
import koffi from "koffi";
|
|
5
6
|
import { createRequire } from "module";
|
|
@@ -14,7 +15,6 @@ function findLibrary() {
|
|
|
14
15
|
: currentPlatform === "darwin"
|
|
15
16
|
? "libspicedb.dylib"
|
|
16
17
|
: "libspicedb.so";
|
|
17
|
-
// Platform-specific optional dependency (only the matching platform is installed)
|
|
18
18
|
const platformKey = `${currentPlatform}-${process.arch}`;
|
|
19
19
|
const optionalPkgName = `spicedb-embedded-${platformKey}`;
|
|
20
20
|
try {
|
|
@@ -27,7 +27,6 @@ function findLibrary() {
|
|
|
27
27
|
catch {
|
|
28
28
|
// optional dep not installed or no bundled lib for this platform
|
|
29
29
|
}
|
|
30
|
-
// Legacy: prebuilds next to dist/ (e.g. local dev after stage-all-prebuilds)
|
|
31
30
|
const prebuildsDir = resolve(dirname(fileURLToPath(import.meta.url)), "..", "prebuilds", platformKey);
|
|
32
31
|
const legacyPath = resolve(prebuildsDir, libName);
|
|
33
32
|
try {
|
|
@@ -54,6 +53,37 @@ function findLibrary() {
|
|
|
54
53
|
}
|
|
55
54
|
return libName;
|
|
56
55
|
}
|
|
56
|
+
function copyOutAndFree(ptr, len, freeBytes) {
|
|
57
|
+
if (len <= 0)
|
|
58
|
+
return new Uint8Array(0);
|
|
59
|
+
if (ptr == null)
|
|
60
|
+
return new Uint8Array(0);
|
|
61
|
+
let copy;
|
|
62
|
+
if (ptr instanceof Buffer) {
|
|
63
|
+
copy = new Uint8Array(ptr.subarray(0, len));
|
|
64
|
+
}
|
|
65
|
+
else if (ptr instanceof Uint8Array) {
|
|
66
|
+
copy = ptr.slice(0, len);
|
|
67
|
+
}
|
|
68
|
+
else if (typeof ptr === "object" &&
|
|
69
|
+
ptr !== null &&
|
|
70
|
+
"buffer" in ptr &&
|
|
71
|
+
ptr.buffer instanceof ArrayBuffer) {
|
|
72
|
+
const v = ptr;
|
|
73
|
+
copy = new Uint8Array(v.buffer, v.byteOffset ?? 0, len).slice();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
try {
|
|
77
|
+
const ab = koffi.view(ptr, len);
|
|
78
|
+
copy = new Uint8Array(ab).slice();
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
copy = new Uint8Array(len);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
freeBytes(ptr);
|
|
85
|
+
return copy;
|
|
86
|
+
}
|
|
57
87
|
let lib = null;
|
|
58
88
|
function getLib() {
|
|
59
89
|
if (lib)
|
|
@@ -61,16 +91,36 @@ function getLib() {
|
|
|
61
91
|
const path = findLibrary();
|
|
62
92
|
const loaded = koffi.load(path);
|
|
63
93
|
const spicedb_free = loaded.func("void spicedb_free(char* ptr)");
|
|
64
|
-
|
|
94
|
+
try {
|
|
95
|
+
koffi.disposable("HeapStr", "str", (ptr) => spicedb_free(ptr));
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Already registered (e.g. second getLib() call after first threw)
|
|
99
|
+
}
|
|
100
|
+
const spicedb_free_bytes = loaded.func("void spicedb_free_bytes(void* ptr)");
|
|
101
|
+
const outUcharPtrPtr = koffi.out(koffi.pointer("uint8_t", 2));
|
|
102
|
+
const outIntPtr = koffi.out(koffi.pointer("int"));
|
|
103
|
+
const outCharPtrPtr = koffi.out(koffi.pointer("char", 2));
|
|
104
|
+
const inBytes = koffi.pointer("uint8_t");
|
|
65
105
|
lib = {
|
|
66
106
|
spicedb_start: loaded.func("HeapStr spicedb_start(const char* optionsJson)"),
|
|
67
107
|
spicedb_dispose: loaded.func("HeapStr spicedb_dispose(unsigned long long handle)"),
|
|
108
|
+
spicedb_free: spicedb_free,
|
|
109
|
+
spicedb_free_bytes,
|
|
110
|
+
spicedb_permissions_check_permission: loaded.func("spicedb_permissions_check_permission", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
111
|
+
spicedb_schema_write_schema: loaded.func("spicedb_schema_write_schema", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
112
|
+
spicedb_permissions_write_relationships: loaded.func("spicedb_permissions_write_relationships", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
113
|
+
spicedb_permissions_delete_relationships: loaded.func("spicedb_permissions_delete_relationships", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
114
|
+
spicedb_permissions_check_bulk_permissions: loaded.func("spicedb_permissions_check_bulk_permissions", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
115
|
+
spicedb_permissions_expand_permission_tree: loaded.func("spicedb_permissions_expand_permission_tree", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
116
|
+
spicedb_schema_read_schema: loaded.func("spicedb_schema_read_schema", "void", ["ulonglong", inBytes, "int", outUcharPtrPtr, outIntPtr, outCharPtrPtr]),
|
|
68
117
|
};
|
|
69
118
|
return lib;
|
|
70
119
|
}
|
|
71
120
|
export function spicedb_start(options) {
|
|
72
121
|
const l = getLib();
|
|
73
|
-
const
|
|
122
|
+
const opts = options != null ? { ...options } : {};
|
|
123
|
+
const optionsJson = JSON.stringify(opts);
|
|
74
124
|
const raw = l.spicedb_start(optionsJson);
|
|
75
125
|
if (!raw)
|
|
76
126
|
throw new Error("Null response from C library");
|
|
@@ -78,7 +128,16 @@ export function spicedb_start(options) {
|
|
|
78
128
|
if (!data.success) {
|
|
79
129
|
throw new Error(data.error ?? "Unknown error");
|
|
80
130
|
}
|
|
81
|
-
|
|
131
|
+
const d = data.data;
|
|
132
|
+
if (!d.streaming_address || !d.streaming_transport) {
|
|
133
|
+
throw new Error("Missing streaming_address or streaming_transport in C library response");
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
handle: d.handle,
|
|
137
|
+
grpc_transport: "memory",
|
|
138
|
+
streaming_address: d.streaming_address,
|
|
139
|
+
streaming_transport: d.streaming_transport,
|
|
140
|
+
};
|
|
82
141
|
}
|
|
83
142
|
export function spicedb_dispose(handle) {
|
|
84
143
|
const l = getLib();
|
|
@@ -88,4 +147,40 @@ export function spicedb_dispose(handle) {
|
|
|
88
147
|
throw new Error(data.error ?? "Unknown error");
|
|
89
148
|
}
|
|
90
149
|
}
|
|
150
|
+
function callRpc(fn, handle, requestBytes) {
|
|
151
|
+
const l = getLib();
|
|
152
|
+
const buf = Buffer.from(requestBytes);
|
|
153
|
+
const outResp = [null];
|
|
154
|
+
const outLen = [0];
|
|
155
|
+
const outErr = [null];
|
|
156
|
+
fn(handle, buf, buf.length, outResp, outLen, outErr);
|
|
157
|
+
const errMsg = outErr[0];
|
|
158
|
+
if (errMsg != null && errMsg !== "") {
|
|
159
|
+
throw new Error(errMsg);
|
|
160
|
+
}
|
|
161
|
+
const ptr = outResp[0];
|
|
162
|
+
const len = outLen[0];
|
|
163
|
+
return copyOutAndFree(ptr, len, (p) => l.spicedb_free_bytes(p));
|
|
164
|
+
}
|
|
165
|
+
export function spicedb_permissions_check_permission(handle, requestBytes) {
|
|
166
|
+
return callRpc(getLib().spicedb_permissions_check_permission, handle, requestBytes);
|
|
167
|
+
}
|
|
168
|
+
export function spicedb_schema_write_schema(handle, requestBytes) {
|
|
169
|
+
return callRpc(getLib().spicedb_schema_write_schema, handle, requestBytes);
|
|
170
|
+
}
|
|
171
|
+
export function spicedb_permissions_write_relationships(handle, requestBytes) {
|
|
172
|
+
return callRpc(getLib().spicedb_permissions_write_relationships, handle, requestBytes);
|
|
173
|
+
}
|
|
174
|
+
export function spicedb_permissions_delete_relationships(handle, requestBytes) {
|
|
175
|
+
return callRpc(getLib().spicedb_permissions_delete_relationships, handle, requestBytes);
|
|
176
|
+
}
|
|
177
|
+
export function spicedb_permissions_check_bulk_permissions(handle, requestBytes) {
|
|
178
|
+
return callRpc(getLib().spicedb_permissions_check_bulk_permissions, handle, requestBytes);
|
|
179
|
+
}
|
|
180
|
+
export function spicedb_permissions_expand_permission_tree(handle, requestBytes) {
|
|
181
|
+
return callRpc(getLib().spicedb_permissions_expand_permission_tree, handle, requestBytes);
|
|
182
|
+
}
|
|
183
|
+
export function spicedb_schema_read_schema(handle, requestBytes) {
|
|
184
|
+
return callRpc(getLib().spicedb_schema_read_schema, handle, requestBytes);
|
|
185
|
+
}
|
|
91
186
|
//# sourceMappingURL=ffi.js.map
|
package/dist/ffi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffi.js","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ffi.js","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spicedb-embedded",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Embedded SpiceDB for TypeScript/Node.js — embedded authorization using the standard gRPC API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"optionalDependencies": {
|
|
19
|
-
"spicedb-embedded-linux-x64": "0.
|
|
20
|
-
"spicedb-embedded-linux-arm64": "0.
|
|
21
|
-
"spicedb-embedded-darwin-arm64": "0.
|
|
22
|
-
"spicedb-embedded-win32-x64": "0.
|
|
19
|
+
"spicedb-embedded-linux-x64": "0.3.0",
|
|
20
|
+
"spicedb-embedded-linux-arm64": "0.3.0",
|
|
21
|
+
"spicedb-embedded-darwin-arm64": "0.3.0",
|
|
22
|
+
"spicedb-embedded-win32-x64": "0.3.0"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsc",
|