officer kiosk is the product name; OAS was a placeholder that mimicked expo's application services and is gone. the rename is total because nothing has shipped: appName, permission key, all four table prefixes, every index and check constraint name, the exported drizzle symbols, and the secret-store purpose. no rows exist anywhere, so there is no migration and no compatibility window - which is exactly why doing it now cost nothing and doing it after the first publish would have cost a manual migration on every install. the one remaining mention of OAS is dated history in the manifest, naming what this was ported from.
36 lines
1.6 KiB
TypeScript
36 lines
1.6 KiB
TypeScript
import type { PluginManifest } from '@@/plugins/manifest';
|
|
|
|
// Officer Kiosk — build, sign and deliver iOS and Android apps to your own registered devices.
|
|
// What EAS does, self-hosted.
|
|
//
|
|
// Ported from the standalone Bun/Hono service that was called OAS, whose access control was an invite key
|
|
// held in a browser's local storage. The rule we actually want is "the people already registered on the
|
|
// platform", which is the thing the platform already knows how to enforce — so the key stops being
|
|
// something a person holds and becomes something an account has.
|
|
//
|
|
// `appName` is the directory name: `kiosk`.
|
|
export const manifest: PluginManifest = {
|
|
publisher: 'officerdev',
|
|
version: '1.0.0',
|
|
platform: '>=1.0.0',
|
|
|
|
label: 'Kiosk',
|
|
summary: 'Build, sign and install iOS and Android apps on your own devices',
|
|
// A lucide glyph until the real artwork lands. Kiosk already has an icon and a splash screen drawn —
|
|
// drop the icon at `assets/icon.png` (served as `/plugins/kiosk/icon.png`) and the tile renders the
|
|
// artwork instead, with `tile: 'bare'` in the catalogue entry so nothing paints a square behind it.
|
|
icon: 'Smartphone',
|
|
color: '#a78bfa',
|
|
|
|
// One permission over the whole surface, which is also all the platform offers: the first entry
|
|
// claims the plugin's entire route surface. Owner-only actions (publishing, retention, other people's
|
|
// devices) are enforced inside the router with `isSuperAdmin`, not by a second permission.
|
|
permissions: [
|
|
{
|
|
key: 'kiosk',
|
|
label: 'App install',
|
|
description: 'Install Officer apps on your own devices',
|
|
},
|
|
],
|
|
};
|