# servers

id: f75ca6b2-55ee-40ac-91f7-25b06cd03632
name: Test 123
ownerId: 5749584c-4ae6-44c1-b901-81ed4a80be63
ownerPublicKey: 5749584c-4ae6-44c1-b901-81ed4a80be63
icon:
  data:image/webp;base64,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


# server_plugin_requirements

serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: example.all-api-boilerplate
status: required
versionRange: ^1.0.0
reason: A documented starter plugin that demonstrates every public Toju client plugin API surface.
configuredBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
installUrl: file:///home/ludde/Desktop/TojuPluginExample/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/TojuPluginExample/plugin-source.json
manifestJson:
  {"schemaVersion":1,"id":"example.all-api-boilerplate","title":"All API Boilerplate Plugin","description":"A documented starter plugin that demonstrates every public Toju client plugin API surface.","version":"1.0.0","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./src/main.js","readme":"./README.md","homepage":"https://git.azaaxin.com/myxelium/Toju","authors":[{"name":"MetoYou Plugin Developer"}],"capabilities":["profile.read","profile.write","users.read","users.manage","roles.read","roles.manage","messages.read","messages.send","messages.editOwn","messages.deleteOwn","messages.moderate","messages.sync","channels.read","channels.manage","server.read","server.manage","p2p.data","p2p.media","media.playAudio","media.addAudioStream","media.addVideoStream","audio.volume","audio.effects","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.local","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe","events.p2p.publish","events.p2p.subscribe"],"events":[{"eventName":"example:server","direction":"serverRelay","scope":"server","maxPayloadBytes":8192},{"eventName":"example:p2p","direction":"p2pHint","scope":"user","maxPayloadBytes":8192}],"data":[{"key":"example-client-state","scope":"client","storage":"local"},{"key":"example-server-state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true},"announcementPrefix":{"type":"string","default":"Plugin"}}},"ui":{"settingsPages":["overview"],"sidePanels":["control-panel"],"channelSections":["tools"],"appPages":["docs"],"composerActions":["announce"],"toolbarActions":["snapshot"],"profileActions":["inspect"],"embeds":["example.card"]},"pluginUser":{"displayName":"Example Plugin Bot","label":"Boilerplate helper"}}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: test.server-blog
status: required
versionRange: ^1.0.1
configuredBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
installUrl: file:///home/ludde/Desktop/TestPlugin/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/TestPlugin/plugin-source.json
reason:
  A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.

manifestJson:
  {"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.1","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}}


serverId: f75ca6b2-55ee-40ac-91f7-25b06cd03632
pluginId: metoyou.polls-wheel
status: required
versionRange: ^2.1.0
reason: Advanced polls and spinning wheel with real-time sync, timers, and live UI.
configuredBy: 5749584c-4ae6-44c1-b901-81ed4a80be63
installUrl: file:///home/ludde/Desktop/my-plugin/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/my-plugin/plugin-source.json
manifestJson:
  {"schemaVersion":1,"id":"metoyou.polls-wheel","title":"Polls & Wheel of Destiny","description":"Advanced polls and spinning wheel with real-time sync, timers, and live UI.","version":"2.1.0","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","readme":"./README.md","authors":[{"name":"MetoYou Plugin Developer"}],"capabilities":["channels.read","messages.read","messages.send","messages.editOwn","messages.deleteOwn","server.read","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.p2p.publish","events.p2p.subscribe"],"events":[{"eventName":"metoyou.polls.sync","direction":"p2pHint","scope":"server","maxPayloadBytes":16384}],"data":[{"key":"polls-wheel-state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"allowMultiVoteDefault":{"type":"boolean","default":false},"defaultDurationSeconds":{"type":"number","default":60},"enableWheel":{"type":"boolean","default":true}}},"ui":{"channelSections":["poll-create"],"embeds":["metoyou.poll"]},"pluginUser":{"displayName":"Poll Bot","label":"Poll system"}}


# plugin_data

serverId: 5d9b1879-143a-4b0f-978f-095524faa012
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777413110698,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.1","kind":"client","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777414801565}],"schemaVersion":1}


serverId: 4d7a1f18-d789-4be9-b521-7c85e3f1754d
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777413136372,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.0","kind":"client","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777413136372}],"schemaVersion":1}


serverId: 7ebdde75-f814-4b08-9531-4492dee27b89
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777413348053,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.0","kind":"client","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777413348053}],"schemaVersion":1}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777416404891,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.1","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777416404891}],"schemaVersion":1}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: test.server-blog
scope: server
key: state
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"schemaVersion":1,"posts":{"post-1777413590939-q5rpu32":{"id":"post-1777413590939-q5rpu32","authorId":"7bdc0392-9bbb-44cc-bd67-eaf236b0299e","authorName":"Ludde","content":"TEST","createdAt":1777413590939,"updatedAt":1777413590939}},"userState":{"7bdc0392-9bbb-44cc-bd67-eaf236b0299e":{"following":[],"bookmarks":[],"lastSeenByAuthor":{"7bdc0392-9bbb-44cc-bd67-eaf236b0299e":1777413590939}}},"shares":[{"channelId":"general","postId":"post-1777413590939-q5rpu32","sharedAt":1777415528841,"sharedById":"7bdc0392-9bbb-44cc-bd67-eaf236b0299e","sharedByName":"Ludde"},{"channelId":"general","postId":"post-1777413590939-q5rpu32","sharedAt":1777413604533,"sharedById":"7bdc0392-9bbb-44cc-bd67-eaf236b0299e","sharedByName":"Ludde"}],"updatedAt":1777416583897}


