mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-29 14:45:24 +00:00
feat: collapse plugin runtime to one tier behind a plugin SDK
This commit is contained in:
1 parent
6e058f6e9e
commit
4758016f41
96 files changed
+34631
-8551
No files matched your search
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "sample-bad-action",
|
||||
"name": "Sample Bad Action",
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "An action gated by a permission the plugin never declares.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
@@ -12,26 +12,19 @@
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": false,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux", "win32", "darwin"]
|
||||
},
|
||||
"permissions": ["ui.tab"],
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "samplebadaction",
|
||||
"permissions": ["samplebadaction.use"]
|
||||
"group": "sample-plugin",
|
||||
"permissions": ["sample-plugin.use"]
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"id": "samplebadaction.open",
|
||||
"titleKey": "sampleBadAction.open",
|
||||
"id": "sample.open",
|
||||
"titleKey": "sample.open",
|
||||
"handler": "open",
|
||||
"permission": "samplebadaction.never_declared"
|
||||
"permission": "sample-plugin.nope"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sidecars": []
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "Sample_Plugin!",
|
||||
"name": "Sample Plugin",
|
||||
"id": "Sample_Plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "Has an id that violates the required pattern.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
@@ -12,12 +12,5 @@
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux"]
|
||||
},
|
||||
"permissions": [],
|
||||
"sidecars": []
|
||||
"capabilities": ["kv:own", "ui:surface"]
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample Plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
@@ -11,12 +11,5 @@
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux"]
|
||||
},
|
||||
"permissions": [],
|
||||
"sidecars": []
|
||||
"capabilities": ["kv:own", "ui:surface"]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"contributes": {
|
||||
"tabs": [
|
||||
{
|
||||
"id": "t",
|
||||
"titleKey": "k",
|
||||
"icon": "i",
|
||||
"openFrom": ["rail"],
|
||||
"extra": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "sample-plugin",
|
||||
"permissions": ["sample-plugin.use"],
|
||||
"defaultForRole": {
|
||||
"user": ["admin.users.manage"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "sample-provider",
|
||||
"name": "Sample Provider",
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "Gates a service behind a permission its own group never declares.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
@@ -12,25 +12,18 @@
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": false,
|
||||
"electron": false,
|
||||
"platforms": ["linux"]
|
||||
},
|
||||
"permissions": ["hosts.read"],
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "sampleprovider",
|
||||
"permissions": ["sampleprovider.greet.use"]
|
||||
}
|
||||
},
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"provides": [
|
||||
{
|
||||
"service": "sampleprovider.greet",
|
||||
"version": "1.2.0",
|
||||
"permission": "sampleprovider.undeclared"
|
||||
"service": "sample.thing",
|
||||
"version": "1.0.0",
|
||||
"permission": "sample-plugin.undeclared"
|
||||
}
|
||||
],
|
||||
"sidecars": []
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "sample-plugin",
|
||||
"permissions": ["sample-plugin.use"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": ["hosts.read"]
|
||||
}
|
||||
@@ -1,23 +1,16 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample Plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "Has a category that is not in the known category list.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Miscellaneous",
|
||||
"category": "Nonsense",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux"]
|
||||
},
|
||||
"permissions": [],
|
||||
"sidecars": []
|
||||
"capabilities": ["kv:own", "ui:surface"]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"sudoEverything": true
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample Plugin",
|
||||
"version": "1.0.0",
|
||||
"description": "Requests a permission that is not in the known capability list.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux"]
|
||||
},
|
||||
"permissions": ["credentials.read"],
|
||||
"sidecars": []
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "sample-actions",
|
||||
"name": "Sample Actions",
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A plugin that contributes a UI action and offers a slot of its own.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
@@ -12,41 +12,19 @@
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": false,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux", "win32", "darwin"]
|
||||
},
|
||||
"permissions": ["ui.tab"],
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "sampleactions",
|
||||
"permissions": ["sampleactions.use"]
|
||||
"group": "sample-plugin",
|
||||
"permissions": ["sample-plugin.use"]
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"id": "sampleactions.openWithContext",
|
||||
"titleKey": "sampleActions.open",
|
||||
"handler": "openWithContext",
|
||||
"icon": "Sparkles",
|
||||
"permission": "sampleactions.use",
|
||||
"slot": "terminal.toolbar",
|
||||
"kind": "button"
|
||||
},
|
||||
{
|
||||
"id": "sampleactions.ungated",
|
||||
"titleKey": "sampleActions.ungated",
|
||||
"handler": "ungated"
|
||||
}
|
||||
],
|
||||
"actionSlots": [
|
||||
{
|
||||
"id": "sampleactions.panel",
|
||||
"accepts": ["button"],
|
||||
"descriptionKey": "sampleActions.panelDescription"
|
||||
"id": "sample.open",
|
||||
"titleKey": "sample.open",
|
||||
"handler": "open",
|
||||
"permission": "sample-plugin.use"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sidecars": []
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "sample-provider",
|
||||
"name": "Sample Provider",
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A plugin that both provides and requires a named service.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"category": "Productivity",
|
||||
@@ -12,32 +12,18 @@
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": false,
|
||||
"electron": false,
|
||||
"platforms": ["linux", "win32", "darwin"]
|
||||
},
|
||||
"permissions": ["hosts.read"],
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "sampleprovider",
|
||||
"permissions": ["sampleprovider.greet.use"]
|
||||
}
|
||||
},
|
||||
"capabilities": ["kv:own", "ui:surface"],
|
||||
"provides": [
|
||||
{
|
||||
"service": "sampleprovider.greet",
|
||||
"version": "1.2.0",
|
||||
"permission": "sampleprovider.greet.use"
|
||||
"service": "sample.thing",
|
||||
"version": "1.0.0",
|
||||
"permission": "sample-plugin.use"
|
||||
}
|
||||
],
|
||||
"requires": [
|
||||
{
|
||||
"service": "other.thing",
|
||||
"versionRange": "^1.0.0",
|
||||
"optional": true
|
||||
"contributes": {
|
||||
"permissionGroup": {
|
||||
"group": "sample-plugin",
|
||||
"permissions": ["sample-plugin.use"]
|
||||
}
|
||||
],
|
||||
"sidecars": []
|
||||
}
|
||||
}
|
||||
@@ -1,45 +1,16 @@
|
||||
{
|
||||
"id": "sample-plugin",
|
||||
"name": "Sample Plugin",
|
||||
"name": "Sample",
|
||||
"version": "1.0.0",
|
||||
"description": "A sample plugin used for schema validation tests.",
|
||||
"description": "A sample.",
|
||||
"author": {
|
||||
"name": "Jane Doe",
|
||||
"url": "https://example.com"
|
||||
"name": "Termix"
|
||||
},
|
||||
"license": "MIT",
|
||||
"repository": "https://github.com/example/sample-plugin",
|
||||
"category": "Productivity",
|
||||
"icon": "Box",
|
||||
"engine": {
|
||||
"termix": ">=2.9.0",
|
||||
"api": "1"
|
||||
},
|
||||
"capabilities": {
|
||||
"backend": true,
|
||||
"frontend": true,
|
||||
"electron": false,
|
||||
"platforms": ["linux", "win32", "darwin"]
|
||||
},
|
||||
"permissions": ["hosts.read", "ui.tab", "ui.rail"],
|
||||
"contributes": {
|
||||
"tabs": [
|
||||
{
|
||||
"id": "sample-plugin-tab",
|
||||
"titleKey": "samplePlugin.tab.title",
|
||||
"icon": "Box",
|
||||
"openFrom": ["rail", "palette"]
|
||||
}
|
||||
],
|
||||
"settingsPanel": {
|
||||
"titleKey": "samplePlugin.settings.title"
|
||||
},
|
||||
"apiPrefix": "sample"
|
||||
},
|
||||
"dependencies": {
|
||||
"plugins": {
|
||||
"other-plugin": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"sidecars": []
|
||||
"capabilities": ["kv:own", "ui:surface"]
|
||||
}
|
||||
Reference in new issue
Block a user