Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Use Founder / Developer tabs in the docs sidebar to filter this page. Admin Wiki is a compounding project knowledge base (Markdown + [[wikilinks]]) — not the filesystem /docs MDX library and not TipTap news HTML.
Ring clones store operational knowledge in a Postgres vault: tenant-wide pages plus optional project-order spaces. Humans edit at /admin/wiki and on Order Lab desks; agents search and mutate through ring-mcp using the same WikiKernel.
| Layer | Where |
|---|---|
| UI | /admin/wiki · buyer /my-orders/[id] · integrator /my-jobs/[id] |
| Nav | Admin supermenu Content & Blog → Wiki · right rail title + actions |
| Kernel | features/wiki/** (wiki-service.ts, ACL, wikilinks, search) |
| Collections | wiki_pages, wiki_links, wiki_events |
| Migration | data/migrations/040_wiki_pages.sql |
| HTTP | /api/wiki, /api/wiki/[id] |
| MCP | /api/mcp/v1/wiki* · tools ring-wiki-* |
Chat and tickets forget. A wiki compiles what your clone knows about a settler project: brand decisions, deploy notes, integrator handoffs — with links that stay current.
Wiki appears in the Admin supermenu under Content & Blog, and in the right rail beside the editor.
Each paid project order can open a project vault on buyer and integrator desks.
Jump from Wiki actions to /admin/crm/orders when a page belongs to a ringization job.
Next-step: Admin console nav SSOT — Wiki lives under Content & Blog and in the right rail.
Same-workflow: project vaults open on buyer My Projects and integrator Order Lab desks; CRM orders desk is a rail action.
Depends-on: ring-wiki-* tools ride the same MCP service token as news/entity tools.
See-also: TipTap news HTML is a different CMS — do not store wiki bodies there.
Use Founder / Developer tabs in the docs sidebar to filter this page. Admin Wiki is a compounding project knowledge base (Markdown + [[wikilinks]]) — not the filesystem /docs MDX library and not TipTap news HTML.
Ring clones store operational knowledge in a Postgres vault: tenant-wide pages plus optional project-order spaces. Humans edit at /admin/wiki and on Order Lab desks; agents search and mutate through ring-mcp using the same WikiKernel.
| Layer | Where |
|---|---|
| UI | /admin/wiki · buyer /my-orders/[id] · integrator /my-jobs/[id] |
| Nav | Admin supermenu Content & Blog → Wiki · right rail title + actions |
| Kernel | features/wiki/** (wiki-service.ts, ACL, wikilinks, search) |
| Collections | wiki_pages, wiki_links, wiki_events |
| Migration | data/migrations/040_wiki_pages.sql |
| HTTP | /api/wiki, /api/wiki/[id] |
| MCP | /api/mcp/v1/wiki* · tools ring-wiki-* |
Chat and tickets forget. A wiki compiles what your clone knows about a settler project: brand decisions, deploy notes, integrator handoffs — with links that stay current.
Wiki appears in the Admin supermenu under Content & Blog, and in the right rail beside the editor.
Each paid project order can open a project vault on buyer and integrator desks.
Jump from Wiki actions to /admin/crm/orders when a page belongs to a ringization job.
Next-step: Admin console nav SSOT — Wiki lives under Content & Blog and in the right rail.
Same-workflow: project vaults open on buyer My Projects and integrator Order Lab desks; CRM orders desk is a rail action.
Depends-on: ring-wiki-* tools ride the same MCP service token as news/entity tools.
See-also: TipTap news HTML is a different CMS — do not store wiki bodies there.
Use Founder / Developer tabs in the docs sidebar to filter this page. Admin Wiki is a compounding project knowledge base (Markdown + [[wikilinks]]) — not the filesystem /docs MDX library and not TipTap news HTML.
Ring clones store operational knowledge in a Postgres vault: tenant-wide pages plus optional project-order spaces. Humans edit at /admin/wiki and on Order Lab desks; agents search and mutate through ring-mcp using the same WikiKernel.
| Layer | Where |
|---|---|
| UI | /admin/wiki · buyer /my-orders/[id] · integrator /my-jobs/[id] |
| Nav | Admin supermenu Content & Blog → Wiki · right rail title + actions |
| Kernel | features/wiki/** (wiki-service.ts, ACL, wikilinks, search) |
| Collections | wiki_pages, wiki_links, wiki_events |
| Migration | data/migrations/040_wiki_pages.sql |
| HTTP | /api/wiki, /api/wiki/[id] |
| MCP | /api/mcp/v1/wiki* · tools ring-wiki-* |
Chat and tickets forget. A wiki compiles what your clone knows about a settler project: brand decisions, deploy notes, integrator handoffs — with links that stay current.
Wiki appears in the Admin supermenu under Content & Blog, and in the right rail beside the editor.
Each paid project order can open a project vault on buyer and integrator desks.
Jump from Wiki actions to /admin/crm/orders when a page belongs to a ringization job.
Next-step: Admin console nav SSOT — Wiki lives under Content & Blog and in the right rail.
Same-workflow: project vaults open on buyer My Projects and integrator Order Lab desks; CRM orders desk is a rail action.
Depends-on: ring-wiki-* tools ride the same MCP service token as news/entity tools.
See-also: TipTap news HTML is a different CMS — do not store wiki bodies there.
Agents self-build and query the vault without opening the UI.
po:{orderId} vault for that clone’s decisions (no secrets — those stay in Order Lab #secrets).[[wikilinks]].[[@Payments]] or [[tenant:Payments]]./admin/wiki as platform admin; confirm _schema seeded (title lives in the right rail).concepts) by setting path on new pages — folders are path prefixes, not empty docs.[[Page]] for same-vault links; use [[@Title]] to cite tenant knowledge from a project vault./my-orders/[id] or /my-jobs/[id], use Project Wiki for that order only.| Actor | Tenant vault | Project vault |
|---|---|---|
| Admin / Buyer | Full read/write | Full (own orders) |
| Integrator | Read + append-only | Full (assigned orders) |
| Agent (ring-mcp) | Read only | Full |
app/_actions/wiki.ts@/features/wiki/types| Form | Resolve |
|---|---|
[[slug]] / [[Title]] / [[path/slug]] / [[Page|display]] | Same vault |
[[@Payments]] / [[tenant:Payments]] | Tenant vault |
| Concern | Path |
|---|---|
| Types / ACL / parser / search | features/wiki/types.ts, acl.ts, wikilink-parser.ts, search-score.ts |
| Service | features/wiki/wiki-service.ts |
| Actor resolve (buyer/integrator) | features/wiki/resolve-wiki-actor.ts |
| Admin workspace | features/wiki/components/wiki-workspace.tsx |
| Desk panel | features/wiki/components/wiki-desk-panel.tsx |
| Server actions | app/_actions/wiki.ts (async exports only) |
| Right rail | admin-nav-config rail section wiki + admin-rail.tsx |
| MCP routes | app/api/mcp/v1/wiki/** |
| BackendSelector | wiki_pages, wiki_links, wiki_events |
| Tool | Role |
|---|---|
ring-wiki-search | Legiox-shaped matches[] (lexical) |
ring-wiki-list / get | Catalog + backlinks |
ring-wiki-create / update / delete | CRUD (confirm on delete); agent tenant create/write denied |
ring-wiki-lint | Orphans / dead links |
ring-wiki-events | List or append ops log |
psql "$DATABASE_URL" -f data/migrations/040_wiki_pages.sqlAlso present in data/schema.sql for fresh installs. No wiki-specific env vars are required beyond the existing Postgres DATABASE_URL / MCP service token.
import * as WikiService from '@/features/wiki/wiki-service'
import { resolveWikiActor } from '@/features/wiki/resolve-wiki-actor'
import type { VaultKey } from '@/features/wiki/types'
const actor = await resolveWikiActor({
userId: session.user.id,
role: session.user.role,
orderId, // when scoping a project vault
})
await WikiService.ensureTenantSchema(actor)
const vault: VaultKey = 'tenant'
const pages = await WikiService.listPages(actor, vault)MCP handlers set isAgent: true so tenant write rules apply even if the service token role is superadmin.
await WikiService.updatePage(actor, pageId, {
bodyMarkdown: '## Note\nIntegrator addendum…',
mode: 'append', // required for integrator on tenant
})Wiki must not store Order Lab env secrets. Link operators to #secrets / project-config panels instead (features/crm/orders/*).
Deep-dive: JSONB collection pattern (`id` + `data`) used by wiki_pages and siblings.
Agents self-build and query the vault without opening the UI.
po:{orderId} vault for that clone’s decisions (no secrets — those stay in Order Lab #secrets).[[wikilinks]].[[@Payments]] or [[tenant:Payments]]./admin/wiki as platform admin; confirm _schema seeded (title lives in the right rail).concepts) by setting path on new pages — folders are path prefixes, not empty docs.[[Page]] for same-vault links; use [[@Title]] to cite tenant knowledge from a project vault./my-orders/[id] or /my-jobs/[id], use Project Wiki for that order only.| Actor | Tenant vault | Project vault |
|---|---|---|
| Admin / Buyer | Full read/write | Full (own orders) |
| Integrator | Read + append-only | Full (assigned orders) |
| Agent (ring-mcp) | Read only | Full |
app/_actions/wiki.ts@/features/wiki/types| Form | Resolve |
|---|---|
[[slug]] / [[Title]] / [[path/slug]] / [[Page|display]] | Same vault |
[[@Payments]] / [[tenant:Payments]] | Tenant vault |
| Concern | Path |
|---|---|
| Types / ACL / parser / search | features/wiki/types.ts, acl.ts, wikilink-parser.ts, search-score.ts |
| Service | features/wiki/wiki-service.ts |
| Actor resolve (buyer/integrator) | features/wiki/resolve-wiki-actor.ts |
| Admin workspace | features/wiki/components/wiki-workspace.tsx |
| Desk panel | features/wiki/components/wiki-desk-panel.tsx |
| Server actions | app/_actions/wiki.ts (async exports only) |
| Right rail | admin-nav-config rail section wiki + admin-rail.tsx |
| MCP routes | app/api/mcp/v1/wiki/** |
| BackendSelector | wiki_pages, wiki_links, wiki_events |
| Tool | Role |
|---|---|
ring-wiki-search | Legiox-shaped matches[] (lexical) |
ring-wiki-list / get | Catalog + backlinks |
ring-wiki-create / update / delete | CRUD (confirm on delete); agent tenant create/write denied |
ring-wiki-lint | Orphans / dead links |
ring-wiki-events | List or append ops log |
psql "$DATABASE_URL" -f data/migrations/040_wiki_pages.sqlAlso present in data/schema.sql for fresh installs. No wiki-specific env vars are required beyond the existing Postgres DATABASE_URL / MCP service token.
import * as WikiService from '@/features/wiki/wiki-service'
import { resolveWikiActor } from '@/features/wiki/resolve-wiki-actor'
import type { VaultKey } from '@/features/wiki/types'
const actor = await resolveWikiActor({
userId: session.user.id,
role: session.user.role,
orderId, // when scoping a project vault
})
await WikiService.ensureTenantSchema(actor)
const vault: VaultKey = 'tenant'
const pages = await WikiService.listPages(actor, vault)MCP handlers set isAgent: true so tenant write rules apply even if the service token role is superadmin.
await WikiService.updatePage(actor, pageId, {
bodyMarkdown: '## Note\nIntegrator addendum…',
mode: 'append', // required for integrator on tenant
})Wiki must not store Order Lab env secrets. Link operators to #secrets / project-config panels instead (features/crm/orders/*).
Deep-dive: JSONB collection pattern (`id` + `data`) used by wiki_pages and siblings.
Agents self-build and query the vault without opening the UI.
po:{orderId} vault for that clone’s decisions (no secrets — those stay in Order Lab #secrets).[[wikilinks]].[[@Payments]] or [[tenant:Payments]]./admin/wiki as platform admin; confirm _schema seeded (title lives in the right rail).concepts) by setting path on new pages — folders are path prefixes, not empty docs.[[Page]] for same-vault links; use [[@Title]] to cite tenant knowledge from a project vault./my-orders/[id] or /my-jobs/[id], use Project Wiki for that order only.| Actor | Tenant vault | Project vault |
|---|---|---|
| Admin / Buyer | Full read/write | Full (own orders) |
| Integrator | Read + append-only | Full (assigned orders) |
| Agent (ring-mcp) | Read only | Full |
app/_actions/wiki.ts@/features/wiki/types| Form | Resolve |
|---|---|
[[slug]] / [[Title]] / [[path/slug]] / [[Page|display]] | Same vault |
[[@Payments]] / [[tenant:Payments]] | Tenant vault |
| Concern | Path |
|---|---|
| Types / ACL / parser / search | features/wiki/types.ts, acl.ts, wikilink-parser.ts, search-score.ts |
| Service | features/wiki/wiki-service.ts |
| Actor resolve (buyer/integrator) | features/wiki/resolve-wiki-actor.ts |
| Admin workspace | features/wiki/components/wiki-workspace.tsx |
| Desk panel | features/wiki/components/wiki-desk-panel.tsx |
| Server actions | app/_actions/wiki.ts (async exports only) |
| Right rail | admin-nav-config rail section wiki + admin-rail.tsx |
| MCP routes | app/api/mcp/v1/wiki/** |
| BackendSelector | wiki_pages, wiki_links, wiki_events |
| Tool | Role |
|---|---|
ring-wiki-search | Legiox-shaped matches[] (lexical) |
ring-wiki-list / get | Catalog + backlinks |
ring-wiki-create / update / delete | CRUD (confirm on delete); agent tenant create/write denied |
ring-wiki-lint | Orphans / dead links |
ring-wiki-events | List or append ops log |
psql "$DATABASE_URL" -f data/migrations/040_wiki_pages.sqlAlso present in data/schema.sql for fresh installs. No wiki-specific env vars are required beyond the existing Postgres DATABASE_URL / MCP service token.
import * as WikiService from '@/features/wiki/wiki-service'
import { resolveWikiActor } from '@/features/wiki/resolve-wiki-actor'
import type { VaultKey } from '@/features/wiki/types'
const actor = await resolveWikiActor({
userId: session.user.id,
role: session.user.role,
orderId, // when scoping a project vault
})
await WikiService.ensureTenantSchema(actor)
const vault: VaultKey = 'tenant'
const pages = await WikiService.listPages(actor, vault)MCP handlers set isAgent: true so tenant write rules apply even if the service token role is superadmin.
await WikiService.updatePage(actor, pageId, {
bodyMarkdown: '## Note\nIntegrator addendum…',
mode: 'append', // required for integrator on tenant
})Wiki must not store Order Lab env secrets. Link operators to #secrets / project-config panels instead (features/crm/orders/*).
Deep-dive: JSONB collection pattern (`id` + `data`) used by wiki_pages and siblings.