tags are how the marketplace is browsed rather than scrolled: a list of them on the left, the plugins that carry one on the right. a closed vocabulary (PLUGIN_TAGS in the platform) because free text becomes homelab, home-lab, Home Lab and selfhosted inside a month, and a filter list of synonyms is worse than no filter at all. declared here rather than curated in the catalogue, so a plugin can say what it is and nobody edits a table when one ships. the marketplace caches it on sync, exactly as it already does for label and summary.
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import type { PluginManifest } from '@@/plugins/manifest';
|
|
|
|
/**
|
|
* Transmission — the torrent daemon you already run, driven from Officer.
|
|
*
|
|
* ── What this plugin is, and what it is not ──
|
|
*
|
|
* It does not install or supervise Transmission, and it holds no torrents. You point it at a daemon's
|
|
* RPC endpoint and it speaks that protocol on your behalf, holding the credentials server-side so no
|
|
* device carries them.
|
|
*
|
|
* ── Where the connection lives ──
|
|
*
|
|
* In `service_connections`, a CORE table — this plugin declares no schema of its own. That is deliberate
|
|
* rather than an omission: the table is the app store's shared credential store, keyed by
|
|
* `(user_id, service)`, already encrypted at rest and already read by `app-store/effects.ts`. Giving
|
|
* transmission a private copy of the same three columns would be a second place the same fact could live.
|
|
*
|
|
* It does mean this plugin depends on a core facility it does not own. Recorded in PLUGIN.md rather than
|
|
* hidden, because it is the one thing about this extraction that is not self-contained.
|
|
*
|
|
* ── No `osDependencies` ──
|
|
*
|
|
* Nothing shells out. The sidecar speaks Transmission's JSON-RPC over `fetch`.
|
|
*/
|
|
export const manifest: PluginManifest = {
|
|
publisher: 'officerdev',
|
|
version: '1.0.0',
|
|
platform: '>=1.0.0',
|
|
|
|
label: 'Transmission',
|
|
summary: 'Torrent downloads — queue, files, peers and speed, from your own daemon',
|
|
/** a daemon you run. */
|
|
tags: ['Homelab'],
|
|
icon: 'Download',
|
|
color: '#dc2626',
|
|
|
|
permissions: [
|
|
{
|
|
key: 'transmission',
|
|
label: 'Transmission',
|
|
description: 'Torrent downloads',
|
|
},
|
|
],
|
|
};
|