Files
kiosk/manifest.ts
T
Claude Opus 5 5374d40553 rename: OAS becomes Kiosk, everywhere
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.
2026-08-18 01:42:37 +00:00

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',
},
],
};