Add keep overview command and a docker-compose deploy wrapper
All checks were successful
Docker / build-and-push (push) Successful in 1m57s
All checks were successful
Docker / build-and-push (push) Successful in 1m57s
keep overview gives an admin a cross-vault view of every recipient and grant in one screen, instead of walking vaults one at a time via /vaults/:key/recipients. scripts/deploy.sh pulls a project's env from keep before running docker compose up, for VPS deploys of several docker-compose projects. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,3 +18,22 @@ export async function recipientRemove(recipientId: string): Promise<void> {
|
||||
await expectOk(await adminFetch('DELETE', `/api/admin/recipients/${encodeURIComponent(recipientId)}`));
|
||||
console.log(`recipient removed: ${recipientId} (and all their vault grants)`);
|
||||
}
|
||||
|
||||
export async function adminOverview(): Promise<void> {
|
||||
const data = await expectOk(await adminFetch('GET', '/api/admin/overview'));
|
||||
|
||||
console.log('recipients:');
|
||||
if (!data.recipients.length) console.log(' none yet.');
|
||||
for (const r of data.recipients) {
|
||||
console.log(` ${r.recipientId} ${r.label}`);
|
||||
}
|
||||
|
||||
console.log('\nvaults:');
|
||||
if (!data.vaults.length) console.log(' none yet.');
|
||||
for (const v of data.vaults) {
|
||||
console.log(` ${v.vaultKey}`);
|
||||
for (const g of v.grants) {
|
||||
console.log(` ${g.canWrite ? 'rw' : 'r-'} ${g.recipientId} ${g.label ?? '(unknown recipient)'}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user