Files
2026-11-14 09:56:45 +00:00

28 lines
1.2 KiB
TypeScript

// The branding module's manifest (plan item AT2.6). It owns no table: the brand is a column of the
// tenancy module's `organizations`, written through that module's entity.
import { defineModule } from "@conusai-kit/core"
import { BRANDING_PROCEDURES } from "./adapters/procedures.js"
import { BRAND_CHANGED } from "./contract/index.js"
import { en, lt } from "./i18n/index.js"
export const brandingModule = defineModule({
id: "branding",
version: "0.1.0",
kit: "^0.1.0",
requires: ["tenancy"],
permissions: {
// Every member sees the brand: it is what the product looks like to them.
"branding.brand.read": "viewer",
// Changing it changes the product for every member, so it is an administrator's act.
"branding.brand.write": "admin",
},
procedures: BRANDING_PROCEDURES,
audit: [BRAND_CHANGED],
// The organization's brand page, in the shell's navigation for whoever may change it: a member who may
// only read it sees it in every page of the product already.
ui: { nav: [{ scope: "org", label: "branding.title", href: "branding", permission: "branding.brand.write" }] },
// Both languages, as objects: kit-i18n merges them from the registry (AT-D23).
i18n: { en, lt },
})