@inoceanlee/brc 2.1.1 → 2.1.2
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/dist/cli.js +68 -16
- package/dist/cli.js.map +1 -1
- package/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.js +57 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/config/manager.js +16 -8
- package/dist/config/manager.js.map +1 -1
- package/dist/config/settings.d.ts +5 -1
- package/dist/config/settings.js +5 -1
- package/dist/config/settings.js.map +1 -1
- package/dist/lifecycle/identity.d.ts +8 -0
- package/dist/lifecycle/identity.js +126 -0
- package/dist/lifecycle/identity.js.map +1 -0
- package/dist/lifecycle/lock-store.d.ts +28 -0
- package/dist/lifecycle/lock-store.js +204 -0
- package/dist/lifecycle/lock-store.js.map +1 -0
- package/dist/lifecycle/lock.d.ts +12 -3
- package/dist/lifecycle/lock.js +50 -74
- package/dist/lifecycle/lock.js.map +1 -1
- package/dist/lifecycle/processes.d.ts +5 -7
- package/dist/lifecycle/processes.js +106 -108
- package/dist/lifecycle/processes.js.map +1 -1
- package/dist/lifecycle/services.d.ts +1 -0
- package/dist/lifecycle/services.js +2 -5
- package/dist/lifecycle/services.js.map +1 -1
- package/dist/maintenance/cleanup.js +177 -71
- package/dist/maintenance/cleanup.js.map +1 -1
- package/dist/native/win32-x64/brc-process.exe +0 -0
- package/dist/progress.d.ts +29 -0
- package/dist/progress.js +159 -0
- package/dist/progress.js.map +1 -0
- package/dist/services/agent/cli.js +1 -2
- package/dist/services/agent/cli.js.map +1 -1
- package/dist/services/agent/core/config-field-definitions.d.ts +1 -0
- package/dist/services/agent/core/config-field-definitions.js +36 -0
- package/dist/services/agent/core/config-field-definitions.js.map +1 -1
- package/dist/services/agent/core/config-manager.d.ts +3 -5
- package/dist/services/agent/core/config-manager.js +64 -109
- package/dist/services/agent/core/config-manager.js.map +1 -1
- package/dist/services/agent/core/config-storage.d.ts +11 -0
- package/dist/services/agent/core/config-storage.js +66 -0
- package/dist/services/agent/core/config-storage.js.map +1 -0
- package/dist/services/agent/core/config.d.ts +5 -0
- package/dist/services/agent/core/config.js +5 -1
- package/dist/services/agent/core/config.js.map +1 -1
- package/dist/services/agent/core/handlers/filesystem-handlers.js +3 -2
- package/dist/services/agent/core/handlers/filesystem-handlers.js.map +1 -1
- package/dist/services/agent/core/tools/config.d.ts +3 -1
- package/dist/services/agent/core/tools/config.js +5 -66
- package/dist/services/agent/core/tools/config.js.map +1 -1
- package/dist/services/agent/core/tools/edit.js +2 -1
- package/dist/services/agent/core/tools/edit.js.map +1 -1
- package/dist/services/agent/core/tools/filesystem.js +15 -21
- package/dist/services/agent/core/tools/filesystem.js.map +1 -1
- package/dist/services/agent/core/tools/improved-process-tools.js +3 -2
- package/dist/services/agent/core/tools/improved-process-tools.js.map +1 -1
- package/dist/services/agent/core/tools/schemas.d.ts +2 -2
- package/dist/services/agent/core/tools/schemas.js +1 -1
- package/dist/services/agent/core/tools/schemas.js.map +1 -1
- package/dist/services/agent/core/utils/files/text-reader.d.ts +31 -0
- package/dist/services/agent/core/utils/files/text-reader.js +261 -0
- package/dist/services/agent/core/utils/files/text-reader.js.map +1 -0
- package/dist/services/agent/core/utils/files/text.d.ts +1 -25
- package/dist/services/agent/core/utils/files/text.js +6 -245
- package/dist/services/agent/core/utils/files/text.js.map +1 -1
- package/dist/services/agent/core/utils/fuzzySearchLogger.js +2 -2
- package/dist/services/agent/core/utils/fuzzySearchLogger.js.map +1 -1
- package/dist/services/agent/core/utils/toolHistory.d.ts +2 -1
- package/dist/services/agent/core/utils/toolHistory.js +65 -79
- package/dist/services/agent/core/utils/toolHistory.js.map +1 -1
- package/dist/services/agent/core/utils/toolHistoryStorage.d.ts +11 -0
- package/dist/services/agent/core/utils/toolHistoryStorage.js +135 -0
- package/dist/services/agent/core/utils/toolHistoryStorage.js.map +1 -0
- package/dist/services/agent/dispatcher.js +3 -5
- package/dist/services/agent/dispatcher.js.map +1 -1
- package/dist/services/agent/service.js +2 -1
- package/dist/services/agent/service.js.map +1 -1
- package/dist/services/agent/transport/pairing.js +24 -24
- package/dist/services/agent/transport/pairing.js.map +1 -1
- package/dist/services/relay/store/sqlite.d.ts +1 -6
- package/dist/services/relay/store/sqlite.js +84 -84
- package/dist/services/relay/store/sqlite.js.map +1 -1
- package/dist/traefik/core.d.ts +17 -5
- package/dist/traefik/core.js +70 -64
- package/dist/traefik/core.js.map +1 -1
- package/dist/traefik/input.d.ts +6 -7
- package/dist/traefik/input.js +46 -88
- package/dist/traefik/input.js.map +1 -1
- package/dist/traefik/manager.d.ts +13 -0
- package/dist/traefik/manager.js +64 -24
- package/dist/traefik/manager.js.map +1 -1
- package/dist/traefik/output.d.ts +9 -11
- package/dist/traefik/output.js +112 -46
- package/dist/traefik/output.js.map +1 -1
- package/dist/traefik/runtime.d.ts +1 -1
- package/dist/traefik/runtime.js +4 -3
- package/dist/traefik/runtime.js.map +1 -1
- package/node_modules/brc-shared/package.json +1 -1
- package/package.json +2 -2
|
@@ -60,7 +60,7 @@ const USER_REFERENCE_TABLES = [
|
|
|
60
60
|
},
|
|
61
61
|
];
|
|
62
62
|
export class SqliteStore {
|
|
63
|
-
db;
|
|
63
|
+
#db;
|
|
64
64
|
static open(file) {
|
|
65
65
|
const isMemory = file === ':memory:';
|
|
66
66
|
if (!isMemory && !existsSync(file)) {
|
|
@@ -114,16 +114,16 @@ export class SqliteStore {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
constructor(file, db, isNew) {
|
|
117
|
-
this
|
|
118
|
-
this
|
|
117
|
+
this.#db = db;
|
|
118
|
+
this.#db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;');
|
|
119
119
|
if (isNew)
|
|
120
120
|
this.initializeNewDatabase();
|
|
121
121
|
else
|
|
122
122
|
this.migrateExistingDatabase(file);
|
|
123
123
|
}
|
|
124
124
|
initializeNewDatabase() {
|
|
125
|
-
this
|
|
126
|
-
this
|
|
125
|
+
this.#db.exec(SCHEMA);
|
|
126
|
+
this.#db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)').run('admin_bootstrap', 'pending');
|
|
127
127
|
}
|
|
128
128
|
migrateExistingDatabase(file) {
|
|
129
129
|
const missingTables = REQUIRED_TABLES.filter((table) => !this.tableExists(table));
|
|
@@ -139,7 +139,7 @@ export class SqliteStore {
|
|
|
139
139
|
const counts = orphaned.map(({ table, count }) => `${table}=${count}`).join(', ');
|
|
140
140
|
throw new Error(`Relay database contains orphaned user references: ${counts}. Backup: ${backup}`);
|
|
141
141
|
}
|
|
142
|
-
const violations = this
|
|
142
|
+
const violations = this.#db.prepare('PRAGMA foreign_key_check').all();
|
|
143
143
|
if (violations.length) {
|
|
144
144
|
const backup = this.createMigrationBackup(file);
|
|
145
145
|
throw new Error(`Relay database foreign_key_check failed with ${violations.length} violation(s). Backup: ${backup}`);
|
|
@@ -159,34 +159,34 @@ export class SqliteStore {
|
|
|
159
159
|
}
|
|
160
160
|
let inTransaction = false;
|
|
161
161
|
try {
|
|
162
|
-
this
|
|
163
|
-
this
|
|
162
|
+
this.#db.exec('PRAGMA foreign_keys = OFF;');
|
|
163
|
+
this.#db.exec('BEGIN IMMEDIATE;');
|
|
164
164
|
inTransaction = true;
|
|
165
165
|
for (const table of tablesToMigrate) {
|
|
166
166
|
const temporary = `${table.name}_with_user_fk`;
|
|
167
|
-
this
|
|
167
|
+
this.#db.exec(table.create(temporary));
|
|
168
168
|
const columns = table.columns.join(', ');
|
|
169
|
-
this
|
|
170
|
-
this
|
|
171
|
-
this
|
|
169
|
+
this.#db.exec(`INSERT INTO "${temporary}" (${columns}) SELECT ${columns} FROM "${table.name}"`);
|
|
170
|
+
this.#db.exec(`DROP TABLE "${table.name}"`);
|
|
171
|
+
this.#db.exec(`ALTER TABLE "${temporary}" RENAME TO "${table.name}"`);
|
|
172
172
|
}
|
|
173
173
|
if (needsMetadata) {
|
|
174
|
-
this
|
|
175
|
-
this
|
|
174
|
+
this.#db.exec('CREATE TABLE brc_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)');
|
|
175
|
+
this.#db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)').run('admin_bootstrap', 'complete');
|
|
176
176
|
}
|
|
177
|
-
const violations = this
|
|
177
|
+
const violations = this.#db.prepare('PRAGMA foreign_key_check').all();
|
|
178
178
|
if (violations.length)
|
|
179
179
|
throw new Error(`foreign_key_check reported ${violations.length} violation(s).`);
|
|
180
|
-
const integrity = this
|
|
180
|
+
const integrity = this.#db.prepare('PRAGMA integrity_check').get();
|
|
181
181
|
if (integrity.integrity_check !== 'ok')
|
|
182
182
|
throw new Error(`integrity_check failed: ${integrity.integrity_check}`);
|
|
183
|
-
this
|
|
183
|
+
this.#db.exec('COMMIT;');
|
|
184
184
|
inTransaction = false;
|
|
185
185
|
}
|
|
186
186
|
catch (error) {
|
|
187
187
|
if (inTransaction) {
|
|
188
188
|
try {
|
|
189
|
-
this
|
|
189
|
+
this.#db.exec('ROLLBACK;');
|
|
190
190
|
}
|
|
191
191
|
catch { }
|
|
192
192
|
}
|
|
@@ -194,32 +194,32 @@ export class SqliteStore {
|
|
|
194
194
|
throw new Error(`Relay database identity migration failed; original data was preserved. Backup: ${backup}. ${detail}`);
|
|
195
195
|
}
|
|
196
196
|
finally {
|
|
197
|
-
this
|
|
197
|
+
this.#db.exec('PRAGMA foreign_keys = ON;');
|
|
198
198
|
}
|
|
199
199
|
this.validateBootstrapState();
|
|
200
200
|
}
|
|
201
201
|
createMigrationBackup(file) {
|
|
202
202
|
const backup = `${path.resolve(file)}.pre-identity-migration-${Date.now()}-${randomToken(6)}.bak`;
|
|
203
|
-
this
|
|
203
|
+
this.#db.exec(`VACUUM INTO '${backup.replaceAll("'", "''")}'`);
|
|
204
204
|
return backup;
|
|
205
205
|
}
|
|
206
206
|
tableExists(name) {
|
|
207
|
-
return !!this
|
|
207
|
+
return !!this.#db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(name);
|
|
208
208
|
}
|
|
209
209
|
hasUserForeignKey(table) {
|
|
210
|
-
return this
|
|
210
|
+
return this.#db.prepare(`PRAGMA foreign_key_list(${table})`).all().some((row) => {
|
|
211
211
|
const foreignKey = row;
|
|
212
212
|
return foreignKey.table === 'users' && foreignKey.from === 'user_id' && foreignKey.to === 'id' && foreignKey.on_delete === 'RESTRICT';
|
|
213
213
|
});
|
|
214
214
|
}
|
|
215
215
|
userCount() {
|
|
216
|
-
return this
|
|
216
|
+
return this.#db.prepare('SELECT COUNT(*) AS count FROM users').get().count;
|
|
217
217
|
}
|
|
218
218
|
orphanedUserReferences() {
|
|
219
219
|
return USER_REFERENCE_TABLES
|
|
220
220
|
.filter((table) => this.tableExists(table.name))
|
|
221
221
|
.map((table) => {
|
|
222
|
-
const row = this
|
|
222
|
+
const row = this.#db.prepare(`SELECT COUNT(*) AS count FROM "${table.name}" AS child LEFT JOIN users AS parent ON parent.id = child.user_id WHERE child.user_id IS NOT NULL AND parent.id IS NULL`).get();
|
|
223
223
|
return { table: table.name, count: row.count };
|
|
224
224
|
})
|
|
225
225
|
.filter((item) => item.count > 0);
|
|
@@ -227,7 +227,7 @@ export class SqliteStore {
|
|
|
227
227
|
bootstrapState() {
|
|
228
228
|
if (!this.tableExists('brc_meta'))
|
|
229
229
|
return undefined;
|
|
230
|
-
const row = this
|
|
230
|
+
const row = this.#db.prepare('SELECT value FROM brc_meta WHERE key = ?').get('admin_bootstrap');
|
|
231
231
|
return row?.value;
|
|
232
232
|
}
|
|
233
233
|
validateBootstrapState() {
|
|
@@ -245,7 +245,7 @@ export class SqliteStore {
|
|
|
245
245
|
if (!username.trim() || password.length < 8) {
|
|
246
246
|
throw new Error('Administrator username and password (at least 8 characters) are required.');
|
|
247
247
|
}
|
|
248
|
-
this
|
|
248
|
+
this.#db.exec('BEGIN IMMEDIATE;');
|
|
249
249
|
try {
|
|
250
250
|
if (this.bootstrapState() !== 'pending' || this.userCount() !== 0) {
|
|
251
251
|
throw new Error('Relay administrator is already initialized.');
|
|
@@ -256,27 +256,27 @@ export class SqliteStore {
|
|
|
256
256
|
password_hash: hashPassword(password),
|
|
257
257
|
created_at: Date.now(),
|
|
258
258
|
};
|
|
259
|
-
this
|
|
259
|
+
this.#db.prepare('INSERT INTO users VALUES (?,?,?,?)')
|
|
260
260
|
.run(user.id, user.username, user.password_hash, user.created_at);
|
|
261
|
-
this
|
|
261
|
+
this.#db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)')
|
|
262
262
|
.run('session_secret', randomBytes(32).toString('hex'));
|
|
263
|
-
this
|
|
264
|
-
this
|
|
263
|
+
this.#db.prepare('UPDATE brc_meta SET value = ? WHERE key = ?').run('complete', 'admin_bootstrap');
|
|
264
|
+
this.#db.exec('COMMIT;');
|
|
265
265
|
}
|
|
266
266
|
catch (error) {
|
|
267
|
-
this
|
|
267
|
+
this.#db.exec('ROLLBACK;');
|
|
268
268
|
throw error;
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
getAdministrator() {
|
|
272
|
-
const users = this
|
|
272
|
+
const users = this.#db.prepare('SELECT * FROM users LIMIT 2').all();
|
|
273
273
|
if (this.bootstrapState() !== 'complete' || users.length !== 1) {
|
|
274
274
|
throw new Error('Relay administrator identity is missing or ambiguous; refusing to start.');
|
|
275
275
|
}
|
|
276
276
|
return users[0];
|
|
277
277
|
}
|
|
278
278
|
getSessionSecret() {
|
|
279
|
-
const row = this
|
|
279
|
+
const row = this.#db.prepare('SELECT value FROM brc_meta WHERE key = ?')
|
|
280
280
|
.get('session_secret');
|
|
281
281
|
if (!row || !/^[0-9a-f]{64}$/.test(row.value)) {
|
|
282
282
|
throw new Error('Relay session secret is missing or invalid; refusing to start.');
|
|
@@ -284,10 +284,10 @@ export class SqliteStore {
|
|
|
284
284
|
return row.value;
|
|
285
285
|
}
|
|
286
286
|
getUserByName(username) {
|
|
287
|
-
return this
|
|
287
|
+
return this.#db.prepare('SELECT * FROM users WHERE username = ?').get(username);
|
|
288
288
|
}
|
|
289
289
|
getUser(id) {
|
|
290
|
-
return this
|
|
290
|
+
return this.#db.prepare('SELECT * FROM users WHERE id = ?').get(id);
|
|
291
291
|
}
|
|
292
292
|
upsertUser(username, password) {
|
|
293
293
|
const existing = this.getUserByName(username);
|
|
@@ -295,31 +295,31 @@ export class SqliteStore {
|
|
|
295
295
|
if (verifyPassword(password, existing.password_hash))
|
|
296
296
|
return existing;
|
|
297
297
|
const hash = hashPassword(password);
|
|
298
|
-
this
|
|
298
|
+
this.#db.prepare('UPDATE users SET password_hash = ? WHERE id = ?').run(hash, existing.id);
|
|
299
299
|
return { ...existing, password_hash: hash };
|
|
300
300
|
}
|
|
301
301
|
if (this.bootstrapState() !== 'pending' || this.userCount() !== 0) {
|
|
302
302
|
throw new Error(`Relay database is missing configured administrator "${username}"; refusing to create a replacement identity.`);
|
|
303
303
|
}
|
|
304
304
|
const row = { id: randomToken(12), username, password_hash: hashPassword(password), created_at: Date.now() };
|
|
305
|
-
this
|
|
305
|
+
this.#db.exec('BEGIN IMMEDIATE;');
|
|
306
306
|
try {
|
|
307
307
|
const concurrent = this.getUserByName(username);
|
|
308
308
|
if (concurrent) {
|
|
309
|
-
this
|
|
309
|
+
this.#db.exec('COMMIT;');
|
|
310
310
|
return this.upsertUser(username, password);
|
|
311
311
|
}
|
|
312
312
|
if (this.bootstrapState() !== 'pending' || this.userCount() !== 0) {
|
|
313
313
|
throw new Error(`Relay database is missing configured administrator "${username}"; refusing to create a replacement identity.`);
|
|
314
314
|
}
|
|
315
|
-
this
|
|
316
|
-
this
|
|
317
|
-
this
|
|
315
|
+
this.#db.prepare('INSERT INTO users VALUES (?,?,?,?)').run(row.id, row.username, row.password_hash, row.created_at);
|
|
316
|
+
this.#db.prepare('UPDATE brc_meta SET value = ? WHERE key = ?').run('complete', 'admin_bootstrap');
|
|
317
|
+
this.#db.exec('COMMIT;');
|
|
318
318
|
return row;
|
|
319
319
|
}
|
|
320
320
|
catch (error) {
|
|
321
321
|
try {
|
|
322
|
-
this
|
|
322
|
+
this.#db.exec('ROLLBACK;');
|
|
323
323
|
}
|
|
324
324
|
catch { }
|
|
325
325
|
throw error;
|
|
@@ -327,33 +327,33 @@ export class SqliteStore {
|
|
|
327
327
|
}
|
|
328
328
|
/* ---------- oauth clients ---------- */
|
|
329
329
|
getClient(clientId) {
|
|
330
|
-
return this
|
|
330
|
+
return this.#db.prepare('SELECT * FROM oauth_clients WHERE client_id = ?').get(clientId);
|
|
331
331
|
}
|
|
332
332
|
insertClient(row) {
|
|
333
|
-
this
|
|
333
|
+
this.#db.prepare('INSERT INTO oauth_clients VALUES (?,?,?,?)').run(row.client_id, row.client_secret, row.metadata, row.created_at);
|
|
334
334
|
}
|
|
335
335
|
/* ---------- auth codes ---------- */
|
|
336
336
|
insertAuthCode(row) {
|
|
337
|
-
this
|
|
337
|
+
this.#db.prepare('INSERT INTO auth_codes VALUES (?,?,?,?,?,?,?,?)')
|
|
338
338
|
.run(row.code, row.client_id, row.user_id, row.code_challenge, row.redirect_uri, row.scopes, row.resource, row.expires_at);
|
|
339
339
|
}
|
|
340
340
|
takeAuthCode(code) {
|
|
341
|
-
const row = this
|
|
341
|
+
const row = this.#db.prepare('SELECT * FROM auth_codes WHERE code = ?').get(code);
|
|
342
342
|
if (row)
|
|
343
|
-
this
|
|
343
|
+
this.#db.prepare('DELETE FROM auth_codes WHERE code = ?').run(code);
|
|
344
344
|
return row && row.expires_at > Date.now() ? row : undefined;
|
|
345
345
|
}
|
|
346
346
|
peekAuthCode(code) {
|
|
347
|
-
const row = this
|
|
347
|
+
const row = this.#db.prepare('SELECT * FROM auth_codes WHERE code = ?').get(code);
|
|
348
348
|
return row && row.expires_at > Date.now() ? row : undefined;
|
|
349
349
|
}
|
|
350
350
|
/* ---------- tokens ---------- */
|
|
351
351
|
insertToken(row) {
|
|
352
|
-
this
|
|
352
|
+
this.#db.prepare('INSERT INTO tokens VALUES (?,?,?,?,?,?,?,?,?)')
|
|
353
353
|
.run(row.token_hash, row.kind, row.client_id, row.user_id, row.scopes, row.resource, row.expires_at, row.created_at, row.revoked);
|
|
354
354
|
}
|
|
355
355
|
getToken(raw, kind) {
|
|
356
|
-
const row = this
|
|
356
|
+
const row = this.#db.prepare('SELECT * FROM tokens WHERE token_hash = ? AND kind = ? AND revoked = 0').get(sha256(raw), kind);
|
|
357
357
|
if (!row)
|
|
358
358
|
return undefined;
|
|
359
359
|
if (row.expires_at && row.expires_at < Date.now())
|
|
@@ -361,45 +361,45 @@ export class SqliteStore {
|
|
|
361
361
|
return row;
|
|
362
362
|
}
|
|
363
363
|
revokeToken(raw) {
|
|
364
|
-
this
|
|
364
|
+
this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE token_hash = ?').run(sha256(raw));
|
|
365
365
|
}
|
|
366
366
|
revokeTokensForClient(clientId, userId) {
|
|
367
367
|
if (userId)
|
|
368
|
-
this
|
|
368
|
+
this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ? AND user_id = ?').run(clientId, userId);
|
|
369
369
|
else
|
|
370
|
-
this
|
|
370
|
+
this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ?').run(clientId);
|
|
371
371
|
}
|
|
372
372
|
/* ---------- devices ---------- */
|
|
373
373
|
getDeviceByToken(raw) {
|
|
374
|
-
return this
|
|
374
|
+
return this.#db.prepare('SELECT * FROM devices WHERE token_hash = ?').get(sha256(raw));
|
|
375
375
|
}
|
|
376
376
|
getDevice(deviceId) {
|
|
377
|
-
return this
|
|
377
|
+
return this.#db.prepare('SELECT * FROM devices WHERE device_id = ?').get(deviceId);
|
|
378
378
|
}
|
|
379
379
|
listDevices(userId) {
|
|
380
|
-
return this
|
|
380
|
+
return this.#db.prepare('SELECT * FROM devices WHERE user_id = ? ORDER BY created_at').all(userId);
|
|
381
381
|
}
|
|
382
382
|
/** Creates (or re-keys) a device and returns the raw token once. */
|
|
383
383
|
issueDeviceToken(deviceId, userId, name, platform) {
|
|
384
384
|
const raw = `brc_dev_${randomToken(32)}`;
|
|
385
385
|
const existing = this.getDevice(deviceId);
|
|
386
386
|
if (existing) {
|
|
387
|
-
this
|
|
387
|
+
this.#db.prepare('UPDATE devices SET token_hash = ?, name = ?, platform = ?, user_id = ? WHERE device_id = ?').run(sha256(raw), name, platform, userId, deviceId);
|
|
388
388
|
}
|
|
389
389
|
else {
|
|
390
|
-
this
|
|
390
|
+
this.#db.prepare('INSERT INTO devices (device_id, user_id, name, token_hash, platform, created_at) VALUES (?,?,?,?,?,?)')
|
|
391
391
|
.run(deviceId, userId, name, sha256(raw), platform, Date.now());
|
|
392
392
|
}
|
|
393
393
|
return raw;
|
|
394
394
|
}
|
|
395
395
|
touchDevice(deviceId) {
|
|
396
|
-
this
|
|
396
|
+
this.#db.prepare('UPDATE devices SET last_seen = ? WHERE device_id = ?').run(Date.now(), deviceId);
|
|
397
397
|
}
|
|
398
398
|
setDevicePaused(deviceId, paused) {
|
|
399
|
-
this
|
|
399
|
+
this.#db.prepare('UPDATE devices SET paused = ? WHERE device_id = ?').run(paused ? 1 : 0, deviceId);
|
|
400
400
|
}
|
|
401
401
|
deleteDevice(deviceId) {
|
|
402
|
-
this
|
|
402
|
+
this.#db.prepare('DELETE FROM devices WHERE device_id = ?').run(deviceId);
|
|
403
403
|
}
|
|
404
404
|
/* ---------- device pairing codes ---------- */
|
|
405
405
|
createDeviceCode(clientName, ttlMs) {
|
|
@@ -407,24 +407,24 @@ export class SqliteStore {
|
|
|
407
407
|
device_code: randomToken(32), user_code: SqliteStore.userCode(), client_name: clientName,
|
|
408
408
|
user_id: null, approved: 0, denied: 0, device_id: null, expires_at: Date.now() + ttlMs, created_at: Date.now(),
|
|
409
409
|
};
|
|
410
|
-
this
|
|
410
|
+
this.#db.prepare('INSERT INTO device_codes VALUES (?,?,?,?,?,?,?,?,?)')
|
|
411
411
|
.run(row.device_code, row.user_code, row.client_name, row.user_id, row.approved, row.denied, row.device_id, row.expires_at, row.created_at);
|
|
412
412
|
return row;
|
|
413
413
|
}
|
|
414
414
|
getDeviceCode(deviceCode) {
|
|
415
|
-
return this
|
|
415
|
+
return this.#db.prepare('SELECT * FROM device_codes WHERE device_code = ?').get(deviceCode);
|
|
416
416
|
}
|
|
417
417
|
getDeviceCodeByUserCode(userCode) {
|
|
418
|
-
return this
|
|
418
|
+
return this.#db.prepare('SELECT * FROM device_codes WHERE user_code = ?').get(userCode.toUpperCase().replace(/[^A-Z0-9]/g, '').replace(/^(.{4})(.{4})$/, '$1-$2'));
|
|
419
419
|
}
|
|
420
420
|
approveDeviceCode(deviceCode, userId, deviceId) {
|
|
421
|
-
this
|
|
421
|
+
this.#db.prepare('UPDATE device_codes SET approved = 1, user_id = ?, device_id = ? WHERE device_code = ?').run(userId, deviceId, deviceCode);
|
|
422
422
|
}
|
|
423
423
|
denyDeviceCode(deviceCode) {
|
|
424
|
-
this
|
|
424
|
+
this.#db.prepare('UPDATE device_codes SET denied = 1 WHERE device_code = ?').run(deviceCode);
|
|
425
425
|
}
|
|
426
426
|
deleteDeviceCode(deviceCode) {
|
|
427
|
-
this
|
|
427
|
+
this.#db.prepare('DELETE FROM device_codes WHERE device_code = ?').run(deviceCode);
|
|
428
428
|
}
|
|
429
429
|
static userCode() {
|
|
430
430
|
const alphabet = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
|
|
@@ -434,60 +434,60 @@ export class SqliteStore {
|
|
|
434
434
|
}
|
|
435
435
|
/* ---------- audit ---------- */
|
|
436
436
|
audit(row) {
|
|
437
|
-
this
|
|
437
|
+
this.#db.prepare('INSERT INTO audit (ts,user_id,device_id,client,tool,args_hash,ok,ms,error) VALUES (?,?,?,?,?,?,?,?,?)')
|
|
438
438
|
.run(row.ts, row.user_id, row.device_id, row.client, row.tool, row.args_hash, row.ok, row.ms, row.error);
|
|
439
439
|
}
|
|
440
440
|
recentAudit(userId, limit = 100) {
|
|
441
|
-
return this
|
|
441
|
+
return this.#db.prepare('SELECT * FROM audit WHERE user_id = ? ORDER BY id DESC LIMIT ?').all(userId, limit);
|
|
442
442
|
}
|
|
443
443
|
/** Housekeeping: drop expired codes/tokens. */
|
|
444
444
|
vacuumExpired() {
|
|
445
445
|
const now = Date.now();
|
|
446
|
-
this
|
|
447
|
-
this
|
|
448
|
-
this
|
|
446
|
+
this.#db.prepare('DELETE FROM auth_codes WHERE expires_at < ?').run(now);
|
|
447
|
+
this.#db.prepare('DELETE FROM device_codes WHERE expires_at < ?').run(now);
|
|
448
|
+
this.#db.prepare('DELETE FROM tokens WHERE expires_at IS NOT NULL AND expires_at < ?').run(now - 7 * 86_400_000);
|
|
449
449
|
}
|
|
450
450
|
/* ---------- OAuth clients (management) ---------- */
|
|
451
451
|
listClients() {
|
|
452
|
-
return this
|
|
452
|
+
return this.#db.prepare('SELECT * FROM oauth_clients ORDER BY created_at DESC').all();
|
|
453
453
|
}
|
|
454
454
|
deleteClient(clientId) {
|
|
455
|
-
this
|
|
456
|
-
this
|
|
455
|
+
this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ?').run(clientId);
|
|
456
|
+
this.#db.prepare('DELETE FROM oauth_clients WHERE client_id = ?').run(clientId);
|
|
457
457
|
}
|
|
458
458
|
renameDevice(deviceId, name) {
|
|
459
|
-
this
|
|
459
|
+
this.#db.prepare('UPDATE devices SET name = ? WHERE device_id = ?').run(name, deviceId);
|
|
460
460
|
}
|
|
461
461
|
auditStats(userId) {
|
|
462
|
-
const row = this
|
|
462
|
+
const row = this.#db.prepare('SELECT COUNT(*) AS total, SUM(CASE WHEN ok = 0 THEN 1 ELSE 0 END) AS failed, SUM(CASE WHEN ts > ? THEN 1 ELSE 0 END) AS last24h FROM audit WHERE user_id = ?').get(Date.now() - 86_400_000, userId);
|
|
463
463
|
return { total: row.total, failed: row.failed ?? 0, last24h: row.last24h ?? 0 };
|
|
464
464
|
}
|
|
465
465
|
/* ---------- API keys (static bearer tokens) ---------- */
|
|
466
466
|
ensureApiKeys() {
|
|
467
|
-
this
|
|
467
|
+
this.#db.exec('CREATE TABLE IF NOT EXISTS api_keys (key_hash TEXT PRIMARY KEY, user_id TEXT NOT NULL REFERENCES users(id) ON DELETE RESTRICT, name TEXT NOT NULL, prefix TEXT NOT NULL, created_at INTEGER NOT NULL, last_used INTEGER, revoked INTEGER NOT NULL DEFAULT 0)');
|
|
468
468
|
}
|
|
469
469
|
createApiKey(userId, name) {
|
|
470
470
|
this.ensureApiKeys();
|
|
471
471
|
const raw = `brc_ak_${randomToken(32)}`;
|
|
472
472
|
const prefix = raw.slice(0, 18);
|
|
473
|
-
this
|
|
473
|
+
this.#db.prepare('INSERT INTO api_keys (key_hash, user_id, name, prefix, created_at) VALUES (?,?,?,?,?)').run(sha256(raw), userId, name, prefix, Date.now());
|
|
474
474
|
return { raw, prefix };
|
|
475
475
|
}
|
|
476
476
|
getApiKey(raw) {
|
|
477
477
|
this.ensureApiKeys();
|
|
478
|
-
const row = this
|
|
478
|
+
const row = this.#db.prepare('SELECT user_id, name, prefix FROM api_keys WHERE key_hash = ? AND revoked = 0').get(sha256(raw));
|
|
479
479
|
if (row)
|
|
480
|
-
this
|
|
480
|
+
this.#db.prepare('UPDATE api_keys SET last_used = ? WHERE key_hash = ?').run(Date.now(), sha256(raw));
|
|
481
481
|
return row;
|
|
482
482
|
}
|
|
483
483
|
listApiKeys(userId) {
|
|
484
484
|
this.ensureApiKeys();
|
|
485
|
-
return this
|
|
485
|
+
return this.#db.prepare('SELECT prefix, name, created_at, last_used FROM api_keys WHERE user_id = ? AND revoked = 0 ORDER BY created_at DESC').all(userId);
|
|
486
486
|
}
|
|
487
487
|
revokeApiKey(userId, prefix) {
|
|
488
488
|
this.ensureApiKeys();
|
|
489
|
-
this
|
|
489
|
+
this.#db.prepare('UPDATE api_keys SET revoked = 1 WHERE user_id = ? AND prefix = ?').run(userId, prefix);
|
|
490
490
|
}
|
|
491
|
-
close() { this
|
|
491
|
+
close() { this.#db.close(); }
|
|
492
492
|
}
|
|
493
493
|
//# sourceMappingURL=sqlite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/traefik/core.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { BrcSettings } from '../config/settings.js';
|
|
2
|
+
import type { ZipEntry } from 'unzipper';
|
|
1
3
|
export interface VersionManifest {
|
|
2
4
|
version: 1;
|
|
3
5
|
current: string;
|
|
@@ -14,11 +16,21 @@ export declare function errorCode(error: unknown): string | undefined;
|
|
|
14
16
|
export declare function errorMessage(error: unknown): string;
|
|
15
17
|
export declare function isVersion(value: unknown): value is string;
|
|
16
18
|
export declare function parseManifest(value: unknown): VersionManifest;
|
|
17
|
-
export declare function ensureSafeDirectory(root: string, directory: string): Promise<void>;
|
|
18
|
-
export declare function ensureRegularFile(filename: string): Promise<void>;
|
|
19
|
-
export declare function readManifest(root: string): Promise<VersionManifest | null>;
|
|
20
19
|
export declare function safeArchivePath(value: string): boolean;
|
|
21
|
-
export declare function sha256File(filename: string): Promise<string>;
|
|
22
20
|
export declare function quoteYaml(value: string): string;
|
|
23
21
|
export declare function renderTemplate(template: string, replacements: Record<string, string>): string;
|
|
24
|
-
export
|
|
22
|
+
export interface TraefikTemplates {
|
|
23
|
+
staticConfig: string;
|
|
24
|
+
dynamicConfig: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function renderConfig({ templates, dynamicSettings, staticSettings, dynamicPath, generation }: {
|
|
27
|
+
templates: TraefikTemplates;
|
|
28
|
+
dynamicSettings: Readonly<BrcSettings>;
|
|
29
|
+
staticSettings: Readonly<BrcSettings>;
|
|
30
|
+
dynamicPath: string;
|
|
31
|
+
generation: string;
|
|
32
|
+
}): TraefikTemplates;
|
|
33
|
+
export declare function readChecksum(contents: string, filename: string): string;
|
|
34
|
+
export declare function parseRelease(value: unknown): TraefikRelease;
|
|
35
|
+
export declare function validateArchiveEntries(entries: ZipEntry[]): ZipEntry;
|
|
36
|
+
export declare function verifyChecksum(actual: string, expected: string): void;
|