Marvia-15
One platform, one workspace, two runtime modes.
The console runs atop the kernel as a privileged workspace. It reuses the shell, the widget framework, the runtimes and every registry — administration adds permissions, never a second architecture.
Consoles
20
Platform roles
10
Permissions
38
Super admin grants
38
Single platform
The console is a privileged workspace on the same kernel, with zero duplicated architecture.
Dual modes
Workspace mode and platform mode change navigation and permissions, nothing else.
RBAC everywhere
Ten platform roles, uniform permission checks across every console.
Registry-driven
Consoles consume existing registries; the console adds no parallel system.
Runtime modes
Mode switching alters navigation and permissions, nothing else
Platform mode is offered only to users holding at least one platform role, and every action inside it is audited.
Workspace mode
- Audience
- Every member of a workspace, including platform staff acting as a user.
- Navigation
- Core kernel navigation plus extension links.
- Permissions
- Workspace RBAC only; platform permissions are inert.
Platform mode
- Audience
- Administrators and operators of the Marvia platform.
- Navigation
- Console sections, resolved from the console registry and filtered by role.
- Permissions
- Platform RBAC, evaluated on every request and every render.
- — Mode switching changes navigation and permissions; it never changes the shell.
- — Platform mode requires at least one platform role; otherwise the switch is not offered.
- — Every platform-mode action is written to the audit centre with the acting role.
- — There is no admin-only component: consoles are built from the same registries as the product.
Platform navigation
Twenty consoles, derived from the registry
A section the operator cannot read is absent, not disabled. Groups collapse when empty.
Operations
Dashboard
platform.dashboard.readQueues
platform.queue.readJobs
platform.job.readSystem health
platform.health.readTenancy
User management
platform.user.readWorkspace management
platform.workspace.readProject management
platform.project.readEcosystem
Marketplace
platform.marketplace.readExtensions
platform.extension.readConnectors
platform.connector.readKnowledge
platform.knowledge.readContent
platform.content.readCommerce
Credits
platform.credits.readBilling
platform.billing.readPlatform
Feature flags
platform.flag.readAnnouncements
platform.announcement.readSupport
platform.support.readAudit centre
platform.audit.readAnalytics
platform.analytics.readDeveloper tools
platform.devtools.readRBAC
Ten roles resolving to granular platform permissions
Roles are additive, checked server-side, and only a super admin may grant them.
super-admin
38 permissions
platform-admin
36 permissions
marketplace-admin
6 permissions
content-admin
7 permissions
support-admin
7 permissions
billing-admin
6 permissions
developer-admin
12 permissions
moderator
5 permissions
auditor
21 permissions
read-only
20 permissions
- — Roles are additive; a user's effective permissions are the union of their roles.
- — Permissions are checked server-side on every operation, not only in navigation.
- — Auditor may read everything and export logs, but may mutate nothing.
- — Only super-admin may grant or revoke platform roles.
Search, dock and commands
One query, one context panel, one command system
Unified search fans out across every scope the operator may read; the dock reports context; commands are registered in the kernel palette.
Search scopes
- — One query fans out to every scope the operator may read; forbidden scopes are never queried.
- — Providers are asynchronous and independent; a slow provider never blocks the ranked list.
- — Results carry their scope so the operator always knows which console they will land in.
Context dock
- Current section and entity
- The console in view plus the selected user, workspace, project or extension.
- Recent activity
- The last events for the selected entity, read from the history service.
- Quick actions
- Permission-filtered commands for the selected entity.
- Related resources
- Owner, workspace, projects, connectors and extensions linked to the entity.
- Health status
- Live health of the entity and of the subsystems it depends on.
Global commands
- Create workspaceplatform.workspace.manage
- Suspend userdestructiveplatform.user.suspend
- Publish extensionplatform.marketplace.publish
- Approve marketplace listingplatform.marketplace.moderate
- Refresh connectorplatform.connector.manage
- Run queueplatform.queue.manage
- Create announcementplatform.announcement.manage
- Adjust creditsdestructiveplatform.credits.adjust
- Toggle feature flagplatform.flag.manage
Widgets
Every console is widget-driven
Widgets declare their permission and their refresh interval; the page decides nothing.
Users
metricplatform.user.read
refresh 300s
Credit consumption
chartplatform.credits.read
refresh 300s
Revenue
metricplatform.billing.read
refresh 900s
Marketplace moderation queue
tableplatform.marketplace.moderate
refresh 60s
System health
statusplatform.health.read
refresh 30s
Queue depth
chartplatform.queue.read
refresh 30s
Recent jobs
tableplatform.job.read
refresh 60s
Reports generated
metricplatform.project.read
refresh 600s
Learning adoption
chartplatform.content.read
refresh 900s
Extension errors
listplatform.extension.read
refresh 60s
Connector sync status
statusplatform.connector.read
refresh 60s
AI usage (future)
metricplatform.analytics.read
refresh 900s
- — Consoles are composed from widgets registered in the dashboard widget registry.
- — A widget the operator cannot read is never resolved, never fetched and never rendered.
- — Refresh intervals are declared by the widget, not chosen by the page.
Audit centre
Append-only, hash-chained, retained per category
Every platform-mode mutation writes a record before the operation is acknowledged.
Categories and retention
- user.action
- 730 days
- permission.change
- 2555 days
- workspace.change
- 730 days
- payment
- 2555 days
- credit.adjustment
- 2555 days
- extension.lifecycle
- 730 days
- connector.credential
- 2555 days
- content.change
- 365 days
- flag.change
- 365 days
- system.operation
- 365 days
- — Audit records are append-only and hash-chained; an edited row breaks the chain.
- — Every platform-mode mutation writes a record before the operation is acknowledged.
- — Records are exportable by auditors in CSV and JSON for compliance review.
- — Retention is per category and enforced by a scheduled job, never by hand.
Audit record
{
"id": "aud_01J9K",
"category": "credit.adjustment",
"action": "credits.adjust",
"actor_id": "usr_admin_04",
"actor_roles": ["billing-admin"],
"target_type": "workspace",
"target_id": "wsp_2f18",
"at": "2026-08-05T02:00:00.000Z",
"previous_hash": "3f6c…a91b",
"hash": "9d02…44e7",
"meta": { "amount": 2500, "reason": "Support goodwill credit" }
}System health
Declared thresholds, never hard-coded latency
An unreachable probe reports unknown, never healthy. Transitions raise platform events.
Snapshot worker
workerevery 30s · degraded ≥ 2000ms · failing ≥ 10000ms
Connector worker
workerevery 30s · degraded ≥ 2000ms · failing ≥ 10000ms
Queue worker
workerevery 30s · degraded ≥ 2000ms · failing ≥ 10000ms
Cron worker
workerevery 60s · degraded ≥ 3000ms · failing ≥ 15000ms
Primary database
databaseevery 15s · degraded ≥ 300ms · failing ≥ 2000ms
Queue backlog
queueevery 30s · degraded ≥ 1000ms · failing ≥ 5000ms
Object storage
storageevery 60s · degraded ≥ 1000ms · failing ≥ 5000ms
Edge API
apievery 15s · degraded ≥ 500ms · failing ≥ 3000ms
Integration
Consumes registries, reuses runtimes, duplicates nothing
The console is composed from what already exists in the kernel.
Registries consumed
- Widget registry
- Every console surface is composed of registered widgets.
- Sidebar registry
- Platform navigation is a permission-filtered projection.
- Command registry
- Global platform commands live beside product commands.
- Capability registry
- Console features discover extensions by capability.
- Content registry
- Announcements, docs and policies reuse the content engine.
- Report registry
- Operational reports use the universal report structure.
- Connector registry
- Connector console reads provider manifests and health.
- Extension registry
- Extension console reads owner-attributed artifacts.
Runtimes reused
- AppShell
- Sidebar, header, palette, prompt bar and overlays are unchanged.
- Workspace runtime
- Tenancy consoles operate through workspace context.
- Project runtime
- Project console reads websites, snapshots and reports.
- Content engine
- Content console edits the same documents users read.
- Report engine
- Analytics and operational reporting.
- Snapshot engine
- Project inspection and knowledge graph review.
- Universal Website Object
- The only website contract the console reads.
AI, performance and compliance
Permission-bound assistance and declared non-functional requirements
Assistants see exactly what the operator sees; performance and compliance rules are part of the contract.
AI assistants (future)
- — Summarize platform health into a daily operator briefing.
- — Recommend actions for degraded workspaces and stale connectors.
- — Detect anomalies in credit consumption and revenue.
- — Prioritize the marketplace moderation queue.
- — Suggest performance and cost optimizations.
- — Generate operational reports from findings.
- — Assistants are permission-bound: they see exactly what the operator may see.
- — AI output is advisory; no assistant executes a destructive command unattended.
Performance and accessibility
- — Lazy-load every console; the platform bundle never ships all twenty at once.
- — Virtualize tables and paginate by cursor — offset pagination is forbidden at platform scale.
- — Load incrementally: skeletons first, data as it lands, no blocking spinners.
- — Memoize derived projections such as navigation and permission sets.
- — Keyboard-first: every console action is reachable without a pointer.
- — ARIA-compliant tables, dialogs and status regions.
- — Reduced motion is respected in every transition.
- — Semantic HTML and screen-reader labels on all status indicators.
Non-functional requirements
- Security
- RBAC enforced server-side, immutable audit logs, no admin-only components.
- Scalability
- Registry-driven surfaces, lazy loading and incremental updates.
- Compliance
- Per-category retention, export capability and immutable storage.
- Performance
- SLAs on critical operations — user suspension under two seconds — verified by synthetic load tests.
- Multi-tenancy
- Workspace-level quotas, resource isolation and tenant-specific overrides.