@mathrunet/masamune_cloudflare_turso 3.4.2 → 3.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/CHANGELOG.md +3 -8
- package/README.md +41 -1
- package/dist/functions/turso_token.js +9 -0
- package/dist/functions/turso_token.js.map +1 -1
- package/dist/lib/database_adapter.d.ts +21 -20
- package/dist/lib/database_adapter.js +57 -38
- package/dist/lib/database_adapter.js.map +1 -1
- package/dist/lib/database_name.d.ts +1 -1
- package/dist/lib/database_name.js +3 -3
- package/dist/lib/env.js +12 -0
- package/dist/lib/env.js.map +1 -1
- package/dist/lib/request.js +8 -4
- package/dist/lib/request.js.map +1 -1
- package/dist/lib/turso_client.js +74 -12
- package/dist/lib/turso_client.js.map +1 -1
- package/dist/lib/types.d.ts +2 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
### fix
|
|
5
|
-
|
|
6
|
-
* Map logical database names such as mixed-case Firebase UIDs to Turso-compatible physical names while preserving logical-name rules evaluation.
|
|
7
|
-
|
|
8
|
-
## 3.4.1 (2026-07-04)
|
|
1
|
+
# 3.5.0 (2026-07-26)
|
|
9
2
|
|
|
10
3
|
|
|
11
4
|
### chore
|
|
@@ -358,6 +351,7 @@
|
|
|
358
351
|
* enhance SendGrid integration for Cloudflare Workers ([60f9976](https://github.com/mathrunet/node_masamune/commit/60f997643c223c74d9f2344d79e91d2337e4018f))
|
|
359
352
|
* Remove debug log statements from FirestoreNullConverter ([b110a47](https://github.com/mathrunet/node_masamune/commit/b110a47faac178d79e4810221a0c89a943417f59))
|
|
360
353
|
* Remove various cloud functions and tests, and add new tests for short video generation functionality. ([b5a2f34](https://github.com/mathrunet/node_masamune/commit/b5a2f34d474218c76cb25fdc1f6c0fe3b6c13413))
|
|
354
|
+
* reorganize exports by removing middlewares and consolidating adapters ([50b1851](https://github.com/mathrunet/node_masamune/commit/50b185104ed4bd725df81e5854eef1dc6348e781))
|
|
361
355
|
* restructure database rules for improved clarity and consistency ([b541875](https://github.com/mathrunet/node_masamune/commit/b5418755495ef5340657e532466659e5f3c8cf82))
|
|
362
356
|
* Save the interface to a separate file. ([141f8bd](https://github.com/mathrunet/node_masamune/commit/141f8bdf6b06538de2512e52b7fedb58366c4e8b))
|
|
363
357
|
* update Android token functions for Cloudflare Workers integration ([f3d602e](https://github.com/mathrunet/node_masamune/commit/f3d602ec1ac846471217d150ffcf166771f8f247))
|
|
@@ -379,3 +373,4 @@
|
|
|
379
373
|
* Test code implementation. ([7f40834](https://github.com/mathrunet/node_masamune/commit/7f40834936b13a1b54b792b1c47f7c1ae2319502))
|
|
380
374
|
|
|
381
375
|
|
|
376
|
+
|
package/README.md
CHANGED
|
@@ -62,6 +62,7 @@ export default m.deploy(
|
|
|
62
62
|
m.Functions.tursoToken({
|
|
63
63
|
organization: "xxxx",
|
|
64
64
|
group: "xxxx",
|
|
65
|
+
autoCreateDatabase: true,
|
|
65
66
|
}),
|
|
66
67
|
],
|
|
67
68
|
{
|
|
@@ -75,6 +76,7 @@ Cloudflare bindings are also supported and take precedence over options:
|
|
|
75
76
|
- `TURSO_PLATFORM_API_TOKEN`
|
|
76
77
|
- `TURSO_ORGANIZATION`
|
|
77
78
|
- `TURSO_GROUP`
|
|
79
|
+
- `TURSO_SERVER_TOKEN_TTL_SECONDS` (default: `3600`)
|
|
78
80
|
|
|
79
81
|
For production, store the Platform API token as a secret:
|
|
80
82
|
|
|
@@ -82,6 +84,18 @@ For production, store the Platform API token as a secret:
|
|
|
82
84
|
wrangler secret put TURSO_PLATFORM_API_TOKEN
|
|
83
85
|
```
|
|
84
86
|
|
|
87
|
+
Hosted Turso does not accept arbitrary self-signed Ed25519 JWT keys. Both
|
|
88
|
+
client tokens and Worker-side database tokens therefore use the official
|
|
89
|
+
Platform API. Worker-side full-access tokens are always issued with an
|
|
90
|
+
expiration, cached only until 60 seconds before expiry, and refreshed with a
|
|
91
|
+
single in-flight request per database. The old unbounded server token behavior
|
|
92
|
+
is not used.
|
|
93
|
+
|
|
94
|
+
`katana apply` configures the server TTL with
|
|
95
|
+
`cloudflare.turso.server_token_ttl`. Set
|
|
96
|
+
`cloudflare.turso.rotate_legacy_tokens: true` only when you intentionally want
|
|
97
|
+
to invalidate all previously issued tokens in the Turso group.
|
|
98
|
+
|
|
85
99
|
# Endpoints
|
|
86
100
|
|
|
87
101
|
The package exposes Turso through a single provider path.
|
|
@@ -135,6 +149,10 @@ The previous query/body style is still accepted for compatibility:
|
|
|
135
149
|
|
|
136
150
|
The worker can create Turso databases and tables automatically.
|
|
137
151
|
|
|
152
|
+
Database creation is disabled by default. Set `autoCreateDatabase: true`
|
|
153
|
+
explicitly on every Turso function or adapter that is allowed to provision a
|
|
154
|
+
database. A missing database otherwise returns `404` and is never created.
|
|
155
|
+
|
|
138
156
|
```typescript
|
|
139
157
|
m.Functions.turso({
|
|
140
158
|
organization: TURSO_ORGANIZATION,
|
|
@@ -146,9 +164,31 @@ m.Functions.turso({
|
|
|
146
164
|
});
|
|
147
165
|
```
|
|
148
166
|
|
|
167
|
+
Worker-side integrations such as Purchase and Notification use
|
|
168
|
+
`TursoDatabaseAdapter`. It follows the same full-path contract as the CRUD
|
|
169
|
+
endpoints; the logical database name must be included in every path.
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
const database = new m.TursoDatabaseAdapter({
|
|
173
|
+
options: {
|
|
174
|
+
organization: TURSO_ORGANIZATION,
|
|
175
|
+
group: TURSO_GROUP,
|
|
176
|
+
platformApiToken: TURSO_PLATFORM_API_TOKEN,
|
|
177
|
+
autoCreateDatabase: true,
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
await database.getDocument("database/user-1/userProfiles/user-1");
|
|
182
|
+
await database.query("database/user-1/capturedMonsters");
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Paths without the `database/{database_name}/` prefix are rejected before a
|
|
186
|
+
Turso connection is resolved. `TursoDatabaseAdapter` has no fixed `database`
|
|
187
|
+
constructor option and never falls back to `main`.
|
|
188
|
+
|
|
149
189
|
Application database paths use a logical database name. When that name already
|
|
150
190
|
matches Turso's physical naming rules (lower-case letters, numbers, and hyphens,
|
|
151
|
-
up to
|
|
191
|
+
up to 56 characters), it is used unchanged. Other logical names, including
|
|
152
192
|
mixed-case Firebase UIDs, are mapped deterministically to a lower-case physical
|
|
153
193
|
name before calling the Turso Platform API. Rules continue to evaluate the
|
|
154
194
|
original logical name, so a rule such as `{"type":"path","param":"uid"}` still
|
|
@@ -12,15 +12,19 @@ module.exports = (hono, options, data) => {
|
|
|
12
12
|
return hono;
|
|
13
13
|
};
|
|
14
14
|
async function handleToken(context, options) {
|
|
15
|
+
let phase = "parse";
|
|
15
16
|
try {
|
|
16
17
|
const resolvedOptions = (0, env_1.resolveTursoWorkersOptionsFromEnv)(context, options);
|
|
17
18
|
const request = await (0, request_1.parseTokenRequest)(context);
|
|
19
|
+
phase = "connect";
|
|
18
20
|
const connection = await (0, turso_client_1.resolveDatabaseConnection)(request.database, resolvedOptions);
|
|
19
21
|
if (connection.created) {
|
|
22
|
+
phase = "database-ready";
|
|
20
23
|
const client = (0, turso_client_1.createTursoClient)(connection);
|
|
21
24
|
await (0, turso_client_1.waitForDatabaseReady)(client);
|
|
22
25
|
(0, turso_client_1.cacheDatabaseConnection)(request.database, resolvedOptions, connection);
|
|
23
26
|
}
|
|
27
|
+
phase = "rules";
|
|
24
28
|
const authentication = context.get("authentication");
|
|
25
29
|
const engine = (0, rules_1.createTursoRulesEngine)(resolvedOptions.rules);
|
|
26
30
|
const access = await (0, rules_1.resolveDatabaseTokenAccess)({
|
|
@@ -35,6 +39,7 @@ async function handleToken(context, options) {
|
|
|
35
39
|
error: "denied",
|
|
36
40
|
}, 403);
|
|
37
41
|
}
|
|
42
|
+
phase = "issue-token";
|
|
38
43
|
const token = access.authorization
|
|
39
44
|
? await (0, token_1.issueDatabaseToken)({
|
|
40
45
|
database: request.database,
|
|
@@ -52,6 +57,10 @@ async function handleToken(context, options) {
|
|
|
52
57
|
});
|
|
53
58
|
}
|
|
54
59
|
catch (error) {
|
|
60
|
+
console.error("Turso token request failed", {
|
|
61
|
+
phase,
|
|
62
|
+
error: error instanceof Error ? error.message : String(error),
|
|
63
|
+
});
|
|
55
64
|
return (0, request_1.jsonError)(context, error);
|
|
56
65
|
}
|
|
57
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso_token.js","sourceRoot":"","sources":["../../src/functions/turso_token.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"turso_token.js","sourceRoot":"","sources":["../../src/functions/turso_token.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,24 @@ import { TursoWorkersOptions } from "./types";
|
|
|
4
4
|
/**
|
|
5
5
|
* [DatabaseAdapterBase] implementation for Turso.
|
|
6
6
|
*
|
|
7
|
-
* Maps
|
|
7
|
+
* Maps `database/{database}/{collection}/{document}` paths to Turso databases
|
|
8
|
+
* and SQL tables. Collection names after the database prefix are joined with
|
|
9
|
+
* `__` to form the table name, and document IDs are stored in the `id` /
|
|
10
|
+
* `parent_id` columns.
|
|
8
11
|
*
|
|
9
|
-
* e.g. `user/{uid}` ->
|
|
12
|
+
* e.g. `database/{uid}/user/{uid}` -> database `{uid}`, table `user`
|
|
13
|
+
* (id = uid), `database/{uid}/user/{uid}/transaction/{tid}` -> database
|
|
14
|
+
* `{uid}`, table `user__transaction` (id = tid, parent_id = uid)
|
|
10
15
|
*
|
|
11
16
|
* Turso用の[DatabaseAdapterBase]の実装。
|
|
12
17
|
*
|
|
13
|
-
*
|
|
18
|
+
* `database/{database}/{collection}/{document}` 形式のパスをTursoデータベースと
|
|
19
|
+
* SQLテーブルにマッピングします。データベースプレフィックスより後のコレクション名は
|
|
20
|
+
* `__`で連結され、ドキュメントIDは`id`/`parent_id`カラムに保存されます。
|
|
14
21
|
*
|
|
15
|
-
* 例: `user/{uid}` ->
|
|
22
|
+
* 例: `database/{uid}/user/{uid}` -> DB `{uid}`、テーブル`user`(id = uid)、
|
|
23
|
+
* `database/{uid}/user/{uid}/transaction/{tid}` -> DB `{uid}`、
|
|
24
|
+
* テーブル`user__transaction`(id = tid、parent_id = uid)
|
|
16
25
|
*/
|
|
17
26
|
export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
18
27
|
/**
|
|
@@ -25,19 +34,15 @@ export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
|
25
34
|
*
|
|
26
35
|
* Tursoの接続オプション(organization、group、platformApiTokenなど)。
|
|
27
36
|
*
|
|
28
|
-
* @param config.database
|
|
29
|
-
* Logical database name (default: `main`).
|
|
30
|
-
*
|
|
31
|
-
* 論理データベース名(デフォルト: `main`)。
|
|
32
|
-
*
|
|
33
37
|
* @param config.client
|
|
34
|
-
* Directly injected Turso client. Used for testing
|
|
38
|
+
* Directly injected Turso client. Used for testing only and shared by every
|
|
39
|
+
* database path handled by this adapter.
|
|
35
40
|
*
|
|
36
|
-
* 直接注入するTurso
|
|
41
|
+
* 直接注入するTursoクライアント。テスト時のみ使用し、このアダプターが処理する
|
|
42
|
+
* すべてのデータベースパスで共有します。
|
|
37
43
|
*/
|
|
38
|
-
constructor({ options,
|
|
44
|
+
constructor({ options, client, }?: {
|
|
39
45
|
options?: TursoWorkersOptions | undefined;
|
|
40
|
-
database?: string | undefined;
|
|
41
46
|
client?: TursoClient | undefined;
|
|
42
47
|
});
|
|
43
48
|
/**
|
|
@@ -46,13 +51,7 @@ export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
|
46
51
|
* Tursoの接続オプション。
|
|
47
52
|
*/
|
|
48
53
|
readonly options: TursoWorkersOptions;
|
|
49
|
-
|
|
50
|
-
* Logical database name.
|
|
51
|
-
*
|
|
52
|
-
* 論理データベース名。
|
|
53
|
-
*/
|
|
54
|
-
readonly database: string;
|
|
55
|
-
private _client;
|
|
54
|
+
private readonly injectedClient;
|
|
56
55
|
private client;
|
|
57
56
|
private resolveOptions;
|
|
58
57
|
getDocument(path: string): Promise<DatabaseDocument | null>;
|
|
@@ -74,6 +73,7 @@ export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
|
74
73
|
* ドキュメントパスをテーブル名、ドキュメントID、親ドキュメントIDにパースします。
|
|
75
74
|
*/
|
|
76
75
|
export declare function parseDocumentPath(path: string): {
|
|
76
|
+
database: string;
|
|
77
77
|
table: string;
|
|
78
78
|
id: string;
|
|
79
79
|
parentId: string;
|
|
@@ -84,6 +84,7 @@ export declare function parseDocumentPath(path: string): {
|
|
|
84
84
|
* コレクションパスをテーブル名と親ドキュメントIDにパースします。
|
|
85
85
|
*/
|
|
86
86
|
export declare function parseCollectionPath(path: string): {
|
|
87
|
+
database: string;
|
|
87
88
|
table: string;
|
|
88
89
|
parentId: string;
|
|
89
90
|
};
|
|
@@ -9,20 +9,34 @@ const masamune_cloudflare_1 = require("@mathrunet/masamune_cloudflare");
|
|
|
9
9
|
const request_1 = require("./request");
|
|
10
10
|
const schema_1 = require("./schema");
|
|
11
11
|
const turso_client_1 = require("./turso_client");
|
|
12
|
-
const reservedColumns = new Set([
|
|
12
|
+
const reservedColumns = new Set([
|
|
13
|
+
"id",
|
|
14
|
+
"parent_id",
|
|
15
|
+
"created_at",
|
|
16
|
+
"updated_at",
|
|
17
|
+
]);
|
|
13
18
|
const atMarkColumnPrefix = "mf_at_";
|
|
14
19
|
/**
|
|
15
20
|
* [DatabaseAdapterBase] implementation for Turso.
|
|
16
21
|
*
|
|
17
|
-
* Maps
|
|
22
|
+
* Maps `database/{database}/{collection}/{document}` paths to Turso databases
|
|
23
|
+
* and SQL tables. Collection names after the database prefix are joined with
|
|
24
|
+
* `__` to form the table name, and document IDs are stored in the `id` /
|
|
25
|
+
* `parent_id` columns.
|
|
18
26
|
*
|
|
19
|
-
* e.g. `user/{uid}` ->
|
|
27
|
+
* e.g. `database/{uid}/user/{uid}` -> database `{uid}`, table `user`
|
|
28
|
+
* (id = uid), `database/{uid}/user/{uid}/transaction/{tid}` -> database
|
|
29
|
+
* `{uid}`, table `user__transaction` (id = tid, parent_id = uid)
|
|
20
30
|
*
|
|
21
31
|
* Turso用の[DatabaseAdapterBase]の実装。
|
|
22
32
|
*
|
|
23
|
-
*
|
|
33
|
+
* `database/{database}/{collection}/{document}` 形式のパスをTursoデータベースと
|
|
34
|
+
* SQLテーブルにマッピングします。データベースプレフィックスより後のコレクション名は
|
|
35
|
+
* `__`で連結され、ドキュメントIDは`id`/`parent_id`カラムに保存されます。
|
|
24
36
|
*
|
|
25
|
-
* 例: `user/{uid}` ->
|
|
37
|
+
* 例: `database/{uid}/user/{uid}` -> DB `{uid}`、テーブル`user`(id = uid)、
|
|
38
|
+
* `database/{uid}/user/{uid}/transaction/{tid}` -> DB `{uid}`、
|
|
39
|
+
* テーブル`user__transaction`(id = tid、parent_id = uid)
|
|
26
40
|
*/
|
|
27
41
|
class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
28
42
|
/**
|
|
@@ -35,21 +49,17 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
35
49
|
*
|
|
36
50
|
* Tursoの接続オプション(organization、group、platformApiTokenなど)。
|
|
37
51
|
*
|
|
38
|
-
* @param config.database
|
|
39
|
-
* Logical database name (default: `main`).
|
|
40
|
-
*
|
|
41
|
-
* 論理データベース名(デフォルト: `main`)。
|
|
42
|
-
*
|
|
43
52
|
* @param config.client
|
|
44
|
-
* Directly injected Turso client. Used for testing
|
|
53
|
+
* Directly injected Turso client. Used for testing only and shared by every
|
|
54
|
+
* database path handled by this adapter.
|
|
45
55
|
*
|
|
46
|
-
* 直接注入するTurso
|
|
56
|
+
* 直接注入するTursoクライアント。テスト時のみ使用し、このアダプターが処理する
|
|
57
|
+
* すべてのデータベースパスで共有します。
|
|
47
58
|
*/
|
|
48
|
-
constructor({ options,
|
|
59
|
+
constructor({ options, client, } = {}) {
|
|
49
60
|
super();
|
|
50
61
|
this.options = options ?? {};
|
|
51
|
-
this.
|
|
52
|
-
this._client = client ?? null;
|
|
62
|
+
this.injectedClient = client ?? null;
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* Turso connection options.
|
|
@@ -57,25 +67,18 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
57
67
|
* Tursoの接続オプション。
|
|
58
68
|
*/
|
|
59
69
|
options;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*/
|
|
65
|
-
database;
|
|
66
|
-
_client;
|
|
67
|
-
async client() {
|
|
68
|
-
if (this._client) {
|
|
69
|
-
return this._client;
|
|
70
|
+
injectedClient;
|
|
71
|
+
async client(database) {
|
|
72
|
+
if (this.injectedClient) {
|
|
73
|
+
return this.injectedClient;
|
|
70
74
|
}
|
|
71
|
-
const connection = await (0, turso_client_1.resolveDatabaseConnection)(
|
|
72
|
-
|
|
73
|
-
return this._client;
|
|
75
|
+
const connection = await (0, turso_client_1.resolveDatabaseConnection)(database, this.resolveOptions());
|
|
76
|
+
return (0, turso_client_1.createTursoClient)(connection);
|
|
74
77
|
}
|
|
75
78
|
// 接続時にオプションを解決します。オプションで指定されていない項目は
|
|
76
79
|
// `process.env`(nodejs_compatで注入されるWorkersシークレット)から補完します。
|
|
77
80
|
resolveOptions() {
|
|
78
|
-
const env = typeof process !== "undefined" ? process.env ?? {} : {};
|
|
81
|
+
const env = typeof process !== "undefined" ? (process.env ?? {}) : {};
|
|
79
82
|
return {
|
|
80
83
|
...this.options,
|
|
81
84
|
organization: firstNonEmptyValue(this.options.organization, env["TURSO_ORGANIZATION"]),
|
|
@@ -84,8 +87,8 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
84
87
|
};
|
|
85
88
|
}
|
|
86
89
|
async getDocument(path) {
|
|
87
|
-
const { table, id, parentId } = parseDocumentPath(path);
|
|
88
|
-
const client = await this.client();
|
|
90
|
+
const { database, table, id, parentId } = parseDocumentPath(path);
|
|
91
|
+
const client = await this.client(database);
|
|
89
92
|
let result;
|
|
90
93
|
try {
|
|
91
94
|
result = await client.execute({
|
|
@@ -109,9 +112,9 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
109
112
|
};
|
|
110
113
|
}
|
|
111
114
|
async saveDocument(path, data, options) {
|
|
112
|
-
const { table, id, parentId } = parseDocumentPath(path);
|
|
115
|
+
const { database, table, id, parentId } = parseDocumentPath(path);
|
|
113
116
|
const merge = options?.merge ?? false;
|
|
114
|
-
const client = await this.client();
|
|
117
|
+
const client = await this.client(database);
|
|
115
118
|
const existing = await this.loadExistingRow(client, table, id, parentId);
|
|
116
119
|
const now = Date.now();
|
|
117
120
|
const row = merge && existing ? { ...existing } : {};
|
|
@@ -149,8 +152,8 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
149
152
|
});
|
|
150
153
|
}
|
|
151
154
|
async query(collectionPath, options) {
|
|
152
|
-
const { table, parentId } = parseCollectionPath(collectionPath);
|
|
153
|
-
const client = await this.client();
|
|
155
|
+
const { database, table, parentId } = parseCollectionPath(collectionPath);
|
|
156
|
+
const client = await this.client(database);
|
|
154
157
|
const clauses = ["parent_id = ?"];
|
|
155
158
|
const args = [parentId];
|
|
156
159
|
for (const where of options?.wheres ?? []) {
|
|
@@ -216,7 +219,7 @@ exports.TursoDatabaseAdapter = TursoDatabaseAdapter;
|
|
|
216
219
|
* ドキュメントパスをテーブル名、ドキュメントID、親ドキュメントIDにパースします。
|
|
217
220
|
*/
|
|
218
221
|
function parseDocumentPath(path) {
|
|
219
|
-
const segments =
|
|
222
|
+
const { database, segments } = splitDatabasePath(path, "document");
|
|
220
223
|
if (segments.length < 2 || segments.length % 2 !== 0) {
|
|
221
224
|
throw new request_1.HttpError(400, `Invalid document path: ${path}`);
|
|
222
225
|
}
|
|
@@ -227,6 +230,7 @@ function parseDocumentPath(path) {
|
|
|
227
230
|
documentIds.push(segments[i + 1]);
|
|
228
231
|
}
|
|
229
232
|
return {
|
|
233
|
+
database,
|
|
230
234
|
table: collections.join("__"),
|
|
231
235
|
id: documentIds[documentIds.length - 1],
|
|
232
236
|
parentId: documentIds.length > 1 ? documentIds[documentIds.length - 2] : "",
|
|
@@ -238,7 +242,7 @@ function parseDocumentPath(path) {
|
|
|
238
242
|
* コレクションパスをテーブル名と親ドキュメントIDにパースします。
|
|
239
243
|
*/
|
|
240
244
|
function parseCollectionPath(path) {
|
|
241
|
-
const segments =
|
|
245
|
+
const { database, segments } = splitDatabasePath(path, "collection");
|
|
242
246
|
if (segments.length < 1 || segments.length % 2 !== 1) {
|
|
243
247
|
throw new request_1.HttpError(400, `Invalid collection path: ${path}`);
|
|
244
248
|
}
|
|
@@ -251,6 +255,7 @@ function parseCollectionPath(path) {
|
|
|
251
255
|
}
|
|
252
256
|
}
|
|
253
257
|
return {
|
|
258
|
+
database,
|
|
254
259
|
table: collections.join("__"),
|
|
255
260
|
parentId,
|
|
256
261
|
};
|
|
@@ -285,7 +290,21 @@ function firstNonEmptyValue(...values) {
|
|
|
285
290
|
return values.find((value) => typeof value === "string" && value.length > 0);
|
|
286
291
|
}
|
|
287
292
|
function splitPath(path) {
|
|
288
|
-
return path
|
|
293
|
+
return path
|
|
294
|
+
.split("/")
|
|
295
|
+
.map((segment) => segment.trim())
|
|
296
|
+
.filter((segment) => segment.length > 0);
|
|
297
|
+
}
|
|
298
|
+
function splitDatabasePath(path, kind) {
|
|
299
|
+
const segments = splitPath(path);
|
|
300
|
+
if (segments.length < 3 || segments[0] !== "database") {
|
|
301
|
+
throw new request_1.HttpError(400, `Invalid ${kind} path: ${path}`);
|
|
302
|
+
}
|
|
303
|
+
const database = (0, request_1.validateLogicalName)(segments[1], "database");
|
|
304
|
+
return {
|
|
305
|
+
database,
|
|
306
|
+
segments: segments.slice(2),
|
|
307
|
+
};
|
|
289
308
|
}
|
|
290
309
|
function decodeDocumentData(row) {
|
|
291
310
|
const data = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database_adapter.js","sourceRoot":"","sources":["../../src/lib/database_adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database_adapter.js","sourceRoot":"","sources":["../../src/lib/database_adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { TursoWorkersOptions } from "./types";
|
|
|
4
4
|
* physical database name.
|
|
5
5
|
*
|
|
6
6
|
* Logical names are kept unchanged when Turso already accepts them. Names
|
|
7
|
-
* containing upper-case characters, underscores, or more than
|
|
7
|
+
* containing upper-case characters, underscores, or more than 56 characters
|
|
8
8
|
* are mapped deterministically so that rules can continue to evaluate the
|
|
9
9
|
* original logical name.
|
|
10
10
|
*/
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolvePhysicalDatabaseName = resolvePhysicalDatabaseName;
|
|
4
4
|
const request_1 = require("./request");
|
|
5
|
-
const tursoDatabaseNamePattern = /^[a-z0-9-]{1,
|
|
5
|
+
const tursoDatabaseNamePattern = /^[a-z0-9-]{1,56}$/;
|
|
6
6
|
/**
|
|
7
7
|
* Resolves an application-level logical database name to a Turso-compatible
|
|
8
8
|
* physical database name.
|
|
9
9
|
*
|
|
10
10
|
* Logical names are kept unchanged when Turso already accepts them. Names
|
|
11
|
-
* containing upper-case characters, underscores, or more than
|
|
11
|
+
* containing upper-case characters, underscores, or more than 56 characters
|
|
12
12
|
* are mapped deterministically so that rules can continue to evaluate the
|
|
13
13
|
* original logical name.
|
|
14
14
|
*/
|
|
@@ -21,6 +21,6 @@ async function resolvePhysicalDatabaseName(database, options = {}) {
|
|
|
21
21
|
const bytes = new TextEncoder().encode(`masamune-turso:${candidate}`);
|
|
22
22
|
const digest = await globalThis.crypto.subtle.digest("SHA-256", bytes);
|
|
23
23
|
const hex = Array.from(new Uint8Array(digest), (value) => value.toString(16).padStart(2, "0")).join("");
|
|
24
|
-
return `db-${hex.slice(0,
|
|
24
|
+
return `db-${hex.slice(0, 53)}`;
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=database_name.js.map
|
package/dist/lib/env.js
CHANGED
|
@@ -8,9 +8,21 @@ function resolveTursoWorkersOptionsFromEnv(context, options) {
|
|
|
8
8
|
organization: firstNonEmpty(env.TURSO_ORGANIZATION, options.organization),
|
|
9
9
|
group: firstNonEmpty(env.TURSO_GROUP, options.group),
|
|
10
10
|
platformApiToken: firstNonEmpty(env.TURSO_PLATFORM_API_TOKEN, options.platformApiToken),
|
|
11
|
+
serverTokenTtlSeconds: firstPositiveInteger(env.TURSO_SERVER_TOKEN_TTL_SECONDS, options.serverTokenTtlSeconds),
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
14
|
function firstNonEmpty(...values) {
|
|
14
15
|
return values.find((value) => typeof value === "string" && value.length > 0);
|
|
15
16
|
}
|
|
17
|
+
function firstPositiveInteger(envValue, optionValue) {
|
|
18
|
+
if (envValue !== undefined && envValue.trim().length > 0) {
|
|
19
|
+
const parsed = Number(envValue);
|
|
20
|
+
if (Number.isSafeInteger(parsed) && parsed > 0) {
|
|
21
|
+
return parsed;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return Number.isSafeInteger(optionValue) && (optionValue ?? 0) > 0
|
|
25
|
+
? optionValue
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
16
28
|
//# sourceMappingURL=env.js.map
|
package/dist/lib/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":";;AAUA,8EAqBC;AArBD,SAAgB,iCAAiC,CAC/C,OAAgB,EAChB,OAA4B;IAE5B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAoB,CAAC;IACnD,OAAO;QACL,GAAG,OAAO;QACV,YAAY,EAAE,aAAa,CACzB,GAAG,CAAC,kBAAkB,EACtB,OAAO,CAAC,YAAY,CACrB;QACD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC;QACpD,gBAAgB,EAAE,aAAa,CAC7B,GAAG,CAAC,wBAAwB,EAC5B,OAAO,CAAC,gBAAgB,CACzB;QACD,qBAAqB,EAAE,oBAAoB,CACzC,GAAG,CAAC,8BAA8B,EAClC,OAAO,CAAC,qBAAqB,CAC9B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,GAAG,MAA8B;IAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAA4B,EAC5B,WAA+B;IAE/B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC;QAChE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|
package/dist/lib/request.js
CHANGED
|
@@ -24,7 +24,7 @@ async function parseCrudRequest(context) {
|
|
|
24
24
|
const body = method === "GET"
|
|
25
25
|
? parseGetRequest(context)
|
|
26
26
|
: await parseJsonBody(context);
|
|
27
|
-
const database = validateLogicalName(pathDatabase ?? body.database
|
|
27
|
+
const database = validateLogicalName(requiredString(pathDatabase ?? body.database, "database"), "database");
|
|
28
28
|
const table = validateIdentifier(requiredString(pathTable ?? body.table, "table"), "table");
|
|
29
29
|
const requestedIndexKey = pathIndexKey ?? body.indexKey;
|
|
30
30
|
const indexKey = requestedIndexKey
|
|
@@ -49,7 +49,7 @@ async function parseCrudRequest(context) {
|
|
|
49
49
|
async function parseTokenRequest(context) {
|
|
50
50
|
const pathDatabase = optionalParam(context, "database");
|
|
51
51
|
const body = await parseJsonBody(context);
|
|
52
|
-
const database = validateLogicalName(pathDatabase ?? body.database
|
|
52
|
+
const database = validateLogicalName(requiredString(pathDatabase ?? body.database, "database"), "database");
|
|
53
53
|
const operations = body.operations
|
|
54
54
|
? validateOperations(body.operations, "operations")
|
|
55
55
|
: undefined;
|
|
@@ -100,8 +100,12 @@ function jsonError(context, error) {
|
|
|
100
100
|
}
|
|
101
101
|
function parseGetRequest(context) {
|
|
102
102
|
const query = context.req.query();
|
|
103
|
-
const where = query.where
|
|
104
|
-
|
|
103
|
+
const where = query.where
|
|
104
|
+
? parseJsonString(query.where, "where")
|
|
105
|
+
: undefined;
|
|
106
|
+
const orderBy = query.orderBy
|
|
107
|
+
? parseJsonString(query.orderBy, "orderBy")
|
|
108
|
+
: undefined;
|
|
105
109
|
const limit = query.limit === undefined ? undefined : Number(query.limit);
|
|
106
110
|
return {
|
|
107
111
|
database: query.database,
|
package/dist/lib/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":";;;AAoBA,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/turso_client.js
CHANGED
|
@@ -9,7 +9,10 @@ exports.isTransientTursoError = isTransientTursoError;
|
|
|
9
9
|
const request_1 = require("./request");
|
|
10
10
|
const database_name_1 = require("./database_name");
|
|
11
11
|
const connectionCache = new Map();
|
|
12
|
-
const
|
|
12
|
+
const connectionRefreshes = new Map();
|
|
13
|
+
const readyRetryDelaysMs = [250, 500, 1000, 2000, 4000, 8000];
|
|
14
|
+
const defaultServerTokenTtlSeconds = 3600;
|
|
15
|
+
const tokenRefreshWindowSeconds = 60;
|
|
13
16
|
function createTursoClient(connection) {
|
|
14
17
|
const { createClient } = require("@tursodatabase/serverless/compat");
|
|
15
18
|
return createClient({
|
|
@@ -22,6 +25,9 @@ async function resolveDatabaseConnection(database, options) {
|
|
|
22
25
|
const cacheKey = databaseCacheKey(normalizedDatabase, options);
|
|
23
26
|
const cached = connectionCache.get(cacheKey);
|
|
24
27
|
if (cached) {
|
|
28
|
+
if (shouldRefreshAuthToken(cached)) {
|
|
29
|
+
return refreshDatabaseConnection(normalizedDatabase, cacheKey, cached, options);
|
|
30
|
+
}
|
|
25
31
|
return {
|
|
26
32
|
...cached,
|
|
27
33
|
created: false,
|
|
@@ -39,6 +45,7 @@ function cacheDatabaseConnection(database, options, connection) {
|
|
|
39
45
|
connectionCache.set(databaseCacheKey(normalizedDatabase, options), {
|
|
40
46
|
url: connection.url,
|
|
41
47
|
authToken: connection.authToken,
|
|
48
|
+
authTokenExpiresAt: connection.authTokenExpiresAt,
|
|
42
49
|
created: false,
|
|
43
50
|
});
|
|
44
51
|
}
|
|
@@ -84,7 +91,7 @@ async function ensurePlatformDatabase(databaseName, options) {
|
|
|
84
91
|
headers,
|
|
85
92
|
});
|
|
86
93
|
if (existing.status === 404) {
|
|
87
|
-
if (options.autoCreateDatabase
|
|
94
|
+
if (options.autoCreateDatabase !== true) {
|
|
88
95
|
throw new request_1.HttpError(404, `Database was not found: ${databaseName}`);
|
|
89
96
|
}
|
|
90
97
|
const response = await fetch(`${baseUrl}/databases`, {
|
|
@@ -114,28 +121,85 @@ async function ensurePlatformDatabase(databaseName, options) {
|
|
|
114
121
|
if (!url) {
|
|
115
122
|
throw new request_1.HttpError(500, "Turso database URL was not found in Platform API response.");
|
|
116
123
|
}
|
|
117
|
-
const authToken = await createDatabaseToken(baseUrl, databaseName, headers);
|
|
118
|
-
if (!authToken) {
|
|
124
|
+
const authToken = await createDatabaseToken(baseUrl, databaseName, headers, options.serverTokenTtlSeconds);
|
|
125
|
+
if (!authToken.token) {
|
|
119
126
|
throw new request_1.HttpError(500, "Turso database auth token was not found in Platform API response.");
|
|
120
127
|
}
|
|
121
128
|
return {
|
|
122
129
|
url,
|
|
123
|
-
authToken,
|
|
130
|
+
authToken: authToken.token,
|
|
131
|
+
authTokenExpiresAt: authToken.expiresAt,
|
|
124
132
|
created,
|
|
125
133
|
};
|
|
126
134
|
}
|
|
127
|
-
async function createDatabaseToken(baseUrl, databaseName, headers) {
|
|
128
|
-
const
|
|
135
|
+
async function createDatabaseToken(baseUrl, databaseName, headers, ttlSeconds = defaultServerTokenTtlSeconds) {
|
|
136
|
+
const normalizedTtl = normalizeServerTokenTtl(ttlSeconds);
|
|
137
|
+
const response = await fetch(`${baseUrl}/databases/${encodeURIComponent(databaseName)}/auth/tokens` +
|
|
138
|
+
`?expiration=${normalizedTtl}s&authorization=full-access`, {
|
|
129
139
|
method: "POST",
|
|
130
140
|
headers,
|
|
131
|
-
body: JSON.stringify({}),
|
|
132
141
|
});
|
|
133
142
|
if (!response.ok) {
|
|
134
143
|
throw new request_1.HttpError(500, `Failed to create Turso database token: ${response.status}`);
|
|
135
144
|
}
|
|
136
145
|
const body = (await response.json());
|
|
137
146
|
const token = body.jwt ?? body.token;
|
|
138
|
-
return
|
|
147
|
+
return {
|
|
148
|
+
token: typeof token === "string" ? token : undefined,
|
|
149
|
+
expiresAt: Math.floor(Date.now() / 1000) + normalizedTtl,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
async function refreshDatabaseConnection(database, cacheKey, cached, options) {
|
|
153
|
+
const refreshing = connectionRefreshes.get(cacheKey);
|
|
154
|
+
if (refreshing) {
|
|
155
|
+
return refreshing;
|
|
156
|
+
}
|
|
157
|
+
const refresh = (async () => {
|
|
158
|
+
const organizationName = options.organization;
|
|
159
|
+
const platformApiToken = options.platformApiToken;
|
|
160
|
+
if (!organizationName || !platformApiToken) {
|
|
161
|
+
throw new request_1.HttpError(500, "organization and platformApiToken are required to refresh Turso database tokens.");
|
|
162
|
+
}
|
|
163
|
+
const databaseName = await (0, database_name_1.resolvePhysicalDatabaseName)(database, options);
|
|
164
|
+
const baseUrl = `https://api.turso.tech/v1/organizations/${encodeURIComponent(organizationName)}`;
|
|
165
|
+
const token = await createDatabaseToken(baseUrl, databaseName, {
|
|
166
|
+
Authorization: `Bearer ${platformApiToken}`,
|
|
167
|
+
"Content-Type": "application/json",
|
|
168
|
+
}, options.serverTokenTtlSeconds);
|
|
169
|
+
if (!token.token) {
|
|
170
|
+
throw new request_1.HttpError(500, "Turso database auth token was not found in Platform API response.");
|
|
171
|
+
}
|
|
172
|
+
const connection = {
|
|
173
|
+
url: cached.url,
|
|
174
|
+
authToken: token.token,
|
|
175
|
+
authTokenExpiresAt: token.expiresAt,
|
|
176
|
+
created: false,
|
|
177
|
+
};
|
|
178
|
+
connectionCache.set(cacheKey, connection);
|
|
179
|
+
return connection;
|
|
180
|
+
})();
|
|
181
|
+
connectionRefreshes.set(cacheKey, refresh);
|
|
182
|
+
try {
|
|
183
|
+
return await refresh;
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
if (connectionRefreshes.get(cacheKey) === refresh) {
|
|
187
|
+
connectionRefreshes.delete(cacheKey);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function shouldRefreshAuthToken(connection) {
|
|
192
|
+
return (connection.authTokenExpiresAt === undefined ||
|
|
193
|
+
connection.authTokenExpiresAt - Math.floor(Date.now() / 1000) <=
|
|
194
|
+
tokenRefreshWindowSeconds);
|
|
195
|
+
}
|
|
196
|
+
function normalizeServerTokenTtl(ttlSeconds) {
|
|
197
|
+
if (ttlSeconds === undefined ||
|
|
198
|
+
!Number.isSafeInteger(ttlSeconds) ||
|
|
199
|
+
ttlSeconds <= tokenRefreshWindowSeconds) {
|
|
200
|
+
return defaultServerTokenTtlSeconds;
|
|
201
|
+
}
|
|
202
|
+
return ttlSeconds;
|
|
139
203
|
}
|
|
140
204
|
function resolveDatabaseGroupName(options) {
|
|
141
205
|
const groupName = firstNonEmpty(options.group, typeof process !== "undefined" ? process.env?.TURSO_GROUP : undefined);
|
|
@@ -172,9 +236,7 @@ function findDatabaseUrl(value) {
|
|
|
172
236
|
const record = value;
|
|
173
237
|
const hostname = record.Hostname ?? record.hostname;
|
|
174
238
|
if (typeof hostname === "string" && hostname.length > 0) {
|
|
175
|
-
return hostname.startsWith("libsql://")
|
|
176
|
-
? hostname
|
|
177
|
-
: `libsql://${hostname}`;
|
|
239
|
+
return hostname.startsWith("libsql://") ? hostname : `libsql://${hostname}`;
|
|
178
240
|
}
|
|
179
241
|
for (const item of Object.values(record)) {
|
|
180
242
|
const found = findDatabaseUrl(item);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso_client.js","sourceRoot":"","sources":["../../src/lib/turso_client.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"turso_client.js","sourceRoot":"","sources":["../../src/lib/turso_client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export type { RulesAccessRule, RulesConfig, RulesEntry, RulesOperation, RulesOpe
|
|
|
4
4
|
export interface TursoDatabaseConnection {
|
|
5
5
|
url: string;
|
|
6
6
|
authToken?: string | undefined;
|
|
7
|
+
authTokenExpiresAt?: number | undefined;
|
|
7
8
|
created?: boolean | undefined;
|
|
8
9
|
}
|
|
9
10
|
export interface TursoWorkersOptions extends WorkersOptions {
|
|
@@ -15,6 +16,7 @@ export interface TursoWorkersOptions extends WorkersOptions {
|
|
|
15
16
|
autoCreateTable?: boolean | undefined;
|
|
16
17
|
autoMigrateAddColumns?: boolean | undefined;
|
|
17
18
|
maxTtlSeconds?: number | undefined;
|
|
19
|
+
serverTokenTtlSeconds?: number | undefined;
|
|
18
20
|
}
|
|
19
21
|
export interface TursoRequestBody {
|
|
20
22
|
database?: string | undefined;
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mathrunet/masamune_cloudflare_turso",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "Server-side package of the Masamune framework for working with Turso via Cloudflare.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
9
|
"prepare": "npm run build",
|
|
10
|
-
"
|
|
10
|
+
"prepublishOnly": "npm run build && npm test",
|
|
11
11
|
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
|
|
12
12
|
"postversion": "npm run changelog",
|
|
13
13
|
"changelog": "conventional-changelog -p eslint -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md && git commit -m 'chore(release): publish package'",
|
|
14
|
-
"
|
|
14
|
+
"release": "npm publish",
|
|
15
15
|
"minor_update": "npm version minor",
|
|
16
16
|
"major_update": "npm version major",
|
|
17
17
|
"patch_update": "npm version patch"
|