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.
36 lines
1.5 KiB
TypeScript
36 lines
1.5 KiB
TypeScript
import type { PluginManifest } from '@@/plugins/manifest';
|
|
|
|
// Mail: IMAP and Gmail sync into a per-account SQLite store, read and composed in the browser.
|
|
//
|
|
// Extracted from the platform on 2026-08-17. It was switched off in place on 2026-08-13 along with every
|
|
// other plugin router, and had never been turned back on — so this plugin's first install is also the
|
|
// first time the feature has run in four days. See PLUGIN.md.
|
|
//
|
|
// `appName` is not declared: it is the directory name, so the id cannot disagree with where the code sits.
|
|
export const manifest: PluginManifest = {
|
|
publisher: 'officerdev',
|
|
version: '1.0.0',
|
|
platform: '>=1.0.0',
|
|
|
|
label: 'Email',
|
|
summary: 'IMAP and Gmail accounts, synced locally and searchable offline',
|
|
/** the single biggest thing people move off Google. */
|
|
tags: ['Personal', 'Degoogling'],
|
|
icon: 'Mail',
|
|
color: '#38bdf8',
|
|
|
|
// One permission over the whole surface — the mail, the accounts and the compose window are one feature
|
|
// and there is no useful split where a member may read mail but not manage the account it arrives on.
|
|
//
|
|
// Grantable per role at read or write, like every plugin permission. What a grant MEANS is this plugin's
|
|
// job: `email_accounts` is scoped by `user_id` and every query takes the caller, so a granted member sees
|
|
// their own accounts rather than the owner's.
|
|
permissions: [
|
|
{
|
|
key: 'email',
|
|
label: 'Email',
|
|
description: 'Mail accounts and messages',
|
|
},
|
|
],
|
|
};
|