feat: expose PWA, app identity, and extension directory keys in JSON config #312

This commit is contained in:
Linus Rath
2026-05-21 23:35:58 +02:00
parent 9b22ef810e
commit fc5f6f43d6
58 changed files with 159 additions and 130 deletions
+4 -4
View File
@@ -155,7 +155,7 @@ export const usePluginStore = create<PluginStoreState>()(
}));
return;
} else {
// 'pending' or 'not-requested' submit a request and refuse to enable.
// 'pending' or 'not-requested' - submit a request and refuse to enable.
await submitApprovalRequest(plugin).catch(() => { /* best effort */ });
set(state => ({
plugins: state.plugins.map(p =>
@@ -165,12 +165,12 @@ export const usePluginStore = create<PluginStoreState>()(
return;
}
} else if (requireApproval && !policyApproved) {
// No bundleHash means we can't pin the approval refuse.
// No bundleHash means we can't pin the approval - refuse.
return;
}
// Per-user consent gate: prompt for any permission the user has not
// explicitly approved yet. Managed plugins (admin-pushed) skip this
// explicitly approved yet. Managed plugins (admin-pushed) skip this -
// the admin has already approved them at install time.
const implicit = new Set<string>(IMPLICIT_PERMISSIONS);
const granted = new Set<string>(plugin.grantedPermissions ?? []);
@@ -549,7 +549,7 @@ async function downloadPluginBundle(pluginId: string, bundleHash?: string): Prom
// Ed25519 signature verification. Present on every server-managed bundle
// since the signing module is server-side; refuse to persist a bundle
// that fails verification. If the header is missing (older server / dev
// build with signing disabled) we log and allow the SHA-256 hash check
// build with signing disabled) we log and allow - the SHA-256 hash check
// at load time still catches transport corruption.
const sig = res.headers.get('X-Bundle-Signature');
if (sig) {