mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 01:29:56 +00:00
* feat: add contextual plugin help to Ask OpenClaw Punchcard-Session: crisp-summit-lantern-qk * fix(ui): redact URL credentials from plugin Ask drafts Reuse the canonical URL policy in the bounded help-value scan, including serialized map keys. Keep the editable config value intact and prove rejected Save → Ask → Send on desktop and phone. Punchcard-Session: crisp-summit-lantern-qk * test: reuse the complete Custodian context fixture Punchcard-Session: crisp-summit-lantern-qk * refactor(ui): narrow plugin help selection input Accept only the loaded selection facts consumed by the help controller, removing its type dependency on the complete page renderer model. Punchcard-Session: crisp-summit-lantern-qk * perf(ui): keep plugin help preparation off startup Separate synchronous dock state and session ownership from lazy question preparation and session persistence helpers. Register plugin-only English copy with its lazy consumers while preserving source catalog order. Punchcard-Session: crisp-summit-lantern-qk * style: normalize contextual help rebase spacing Punchcard-Session: crisp-summit-lantern-qk * perf(ui): keep attachment media preparation off startup Punchcard-Session: crisp-summit-lantern-qk * test(qwen): fix the clock for default timeout assertions Punchcard-Session: crisp-summit-lantern-qk * test(ui): wait for side-chat opening focus Punchcard-Session: crisp-summit-lantern-qk * chore(pr): deduplicate wrapper dependency inventory Punchcard-Session: crisp-summit-lantern-qk * test(qwen): drop superseded default-clock workaround * feat: group bundled plugin settings by authored manifest metadata Punchcard-Session: crisp-summit-lantern-qk
79 lines
2.2 KiB
JSON
79 lines
2.2 KiB
JSON
{
|
|
"id": "visitor-access",
|
|
"categories": ["security"],
|
|
"name": "Visitor Access",
|
|
"description": "Manage expiring visitor grants through one Cloudflare Access email policy.",
|
|
"activation": {
|
|
"onStartup": true
|
|
},
|
|
"contracts": {
|
|
"tools": ["visitor_invite", "visitor_revoke", "visitor_list"]
|
|
},
|
|
"uiHints": {
|
|
"apiToken": {
|
|
"label": "Cloudflare API token",
|
|
"sensitive": true
|
|
}
|
|
},
|
|
"configGroups": [
|
|
{
|
|
"id": "cloudflare-access",
|
|
"title": "Cloudflare Access",
|
|
"order": 10,
|
|
"properties": ["accountId", "appId", "apiToken", "policyName"]
|
|
},
|
|
{
|
|
"id": "visitor-grants",
|
|
"title": "Visitor grants",
|
|
"order": 20,
|
|
"properties": ["defaultTtlDays", "maxVisitors"]
|
|
}
|
|
],
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["accountId", "appId", "apiToken"],
|
|
"properties": {
|
|
"accountId": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128,
|
|
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
"description": "Cloudflare account containing the Access application."
|
|
},
|
|
"appId": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128,
|
|
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
"description": "Access application whose dedicated visitor policy is managed."
|
|
},
|
|
"apiToken": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Resolved Cloudflare API token with Access policy read and write permissions."
|
|
},
|
|
"policyName": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 200,
|
|
"default": "Visitors (openclaw-managed)",
|
|
"description": "Exact name of the only policy this plugin may manage."
|
|
},
|
|
"defaultTtlDays": {
|
|
"type": ["integer", "null"],
|
|
"minimum": 0,
|
|
"maximum": 3650,
|
|
"default": 14,
|
|
"description": "Default grant duration in days. Zero or null requires explicit days or forever on each invite."
|
|
},
|
|
"maxVisitors": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 500,
|
|
"default": 50,
|
|
"description": "Maximum number of visitor emails allowed by this plugin."
|
|
}
|
|
}
|
|
}
|
|
}
|