Appearance
Building plugins
AuroraDocs has a developer-preview plugin API. It is useful for bundled plugins and local experimentation, but it is not yet a public remote-plugin marketplace.
Current Status
Available today:
- local/bundled plugin manifests
- sidebar widgets
- slash commands
- custom property types
- custom database views
- object lifecycle event hooks
- isolated plugin storage helpers
- permissions declared in the manifest
Not implemented as general user-facing distribution:
- public remote plugin install from arbitrary URLs
- signed package verification
- marketplace discovery
- secure third-party sandboxing strong enough for untrusted code
Treat plugins as code you trust.
Manifest
A plugin manifest describes the plugin identity, permissions, and entry point.
json
{
"id": "com.example.timestamp",
"name": "Timestamp",
"version": "1.0.0",
"description": "Insert a formatted timestamp.",
"permissions": ["slashCommand", "storage.read", "storage.write"],
"main": "./bundle.js"
}Use a stable reverse-domain id. Declare only the permissions the plugin needs.
Permissions
| Permission | What it grants |
|---|---|
slashCommand | Register commands in the editor slash menu |
propertyType | Register custom property types |
databaseView | Register custom database/collection views |
sidebar | Add right-panel/sidebar widgets |
events | Subscribe to object create/update/delete hooks |
storage.read | Read plugin-owned storage |
storage.write | Write plugin-owned storage |
Contribution Types
Slash Commands
Slash commands appear in the / menu. They receive the editor host context and should keep edits narrow and reversible.
js
window.__auroraPlugin__ = {
id: 'com.example.timestamp',
name: 'Timestamp',
version: '1.0.0',
permissions: ['slashCommand'],
slashCommands: [
{
id: 'insert-timestamp',
title: 'Timestamp',
description: 'Insert the current date and time',
command(editor) {
editor.chain().focus().insertContent(new Date().toLocaleString()).run()
},
},
],
}Property Types
Custom property types can render custom cells/editors while storing normal Aurora property values.
Database Views
Database views can add alternate visualizations for collections, receiving the filtered objects, properties, schema, and object-open callbacks from Aurora.
Sidebar Widgets
Sidebar widgets render in the right panel and are best for compact contextual tools. Keep them responsive and avoid assuming desktop-only screen width.
Events
Lifecycle hooks can respond to object creation, updates, or deletion. Event handlers should avoid long blocking work.
Storage
Plugin storage is namespaced. Use it for non-secret plugin state. Do not store provider keys, OAuth tokens, passwords, or recovery phrases in plugin storage.
Development Notes
During development, use local or bundled paths and refresh the app after bundle changes. Remote URL installation may exist in historical docs or experiments, but it is not the supported public path until signing and marketplace controls are implemented.
For the current contract, see the repository references:
docs/reference/plugin-api.mddocs/reference/plugin-authoring-guide.md