Initial curated ITWorx_MCP_Hub source from 368fba691ea8d23403b4d56b53b5ec670d7c5020
This commit is contained in:
commit
cb5be898ea
663 files changed
+82674
No files matched your search
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "010 Deny Generic Privileged Tools",
|
||||
"slug": "010-deny-generic-privileged-tools"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 10,
|
||||
"description": "Irrevocably block generic shell, filesystem, Docker, SQL, secret and arbitrary HTTP capabilities.",
|
||||
"match": {
|
||||
"toolPatterns": [
|
||||
"shell.*",
|
||||
"filesystem.*",
|
||||
"docker.raw_*",
|
||||
"database.execute_*",
|
||||
"secrets.*",
|
||||
"http.request_*"
|
||||
]
|
||||
},
|
||||
"conditions": {},
|
||||
"decision": "deny_and_alert",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "020 Project Scope Isolation",
|
||||
"slug": "020-project-scope-isolation"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 20,
|
||||
"description": "Require the token project claim, endpoint project and requested resource project to be identical.",
|
||||
"match": {
|
||||
"resourceTypes": [
|
||||
"tool",
|
||||
"resource",
|
||||
"prompt"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"allEqual": [
|
||||
"claims.project",
|
||||
"route.project",
|
||||
"request.project"
|
||||
],
|
||||
"requiredClaims": [
|
||||
"sub",
|
||||
"aud",
|
||||
"scope",
|
||||
"project"
|
||||
]
|
||||
},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "030 Production Destructive Deny V1.1",
|
||||
"slug": "030-production-destructive-deny-v1-1"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 30,
|
||||
"description": "Reject administrative and unknown operations in production; bounded project-scoped R2/R3 operations require separate explicit allows.",
|
||||
"match": {
|
||||
"environmentClassifications": [
|
||||
"production"
|
||||
],
|
||||
"riskClasses": [
|
||||
"R4",
|
||||
"RX"
|
||||
]
|
||||
},
|
||||
"conditions": {},
|
||||
"decision": "deny_and_alert",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "035 Gitea Controlled Writes V1.1",
|
||||
"slug": "035-gitea-controlled-writes-v1-1"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 35,
|
||||
"description": "Allow the bounded Gitea R2 operations for the registered or account-discovered gitea-all production project and an enabled bound client.",
|
||||
"match": {
|
||||
"project": "gitea-all",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["gitea"],
|
||||
"riskClasses": ["R2"],
|
||||
"toolPatterns": [
|
||||
"gitea.repository.create",
|
||||
"gitea.branchprotection.ensure",
|
||||
"gitea.portfolio.governance.apply",
|
||||
"gitea.branch.create",
|
||||
"gitea.issue.create",
|
||||
"gitea.issue.update",
|
||||
"gitea.issue.comment.create",
|
||||
"gitea.file.create",
|
||||
"gitea.file.update",
|
||||
"gitea.file.delete",
|
||||
"gitea.pullrequest.create",
|
||||
"gitea.pullrequest.update",
|
||||
"gitea.pullrequest.close",
|
||||
"gitea.pullrequest.validation.ensure",
|
||||
"gitea.changeset.apply",
|
||||
"gitea.validation.run",
|
||||
"gitea.workspace.run",
|
||||
"gitea.orchestration.start"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"requireEnabledClient": true,
|
||||
"requireBinding": true,
|
||||
"maxArgumentBytes": 1200000
|
||||
},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"Policy","metadata":{"name":"036 Gitea Loop Reviewed Lifecycle V1","slug":"036-gitea-loop-reviewed-lifecycle-v1"},"spec":{"priority":36,"description":"Allow SHA-fenced PR synchronization and exact-head verified merge for the bound ProjectBrain/Gitea delivery loop; connector safety gates remain mandatory.","match":{"project":"gitea-loop","environmentClassifications":["production"],"connectors":["gitea"],"riskClasses":["R3"],"toolPatterns":["gitea.pullrequest.sync","gitea.pullrequest.merge"]},"conditions":{"requireEnabledClient":true,"requireBinding":true,"maxArgumentBytes":65536},"decision":"allow_if_conditions","terminal":true}}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "036 Gitea Reviewed Lifecycle V1",
|
||||
"slug": "036-gitea-reviewed-lifecycle-v1"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 36,
|
||||
"description": "Allow SHA-fenced PR synchronization, verified exact-head merge and merged-branch cleanup only for the bound gitea-all production client; connector preconditions remain mandatory.",
|
||||
"match": {
|
||||
"project": "gitea-all",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["gitea"],
|
||||
"riskClasses": ["R3"],
|
||||
"toolPatterns": [
|
||||
"gitea.pullrequest.sync",
|
||||
"gitea.pullrequest.merge",
|
||||
"gitea.branch.delete"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"requireEnabledClient": true,
|
||||
"requireBinding": true,
|
||||
"maxArgumentBytes": 65536
|
||||
},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {"name": "037 ProjectBrain Governed Operations", "slug": "037-projectbrain-governed-operations"},
|
||||
"spec": {
|
||||
"priority": 37,
|
||||
"description": "Allow ProjectBrain R2 mutations only for the bound gitea-all production client; ProjectBrain independently enforces review, approval, branch, SHA and validation gates.",
|
||||
"match": {
|
||||
"project": "gitea-all",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["projectbrain"],
|
||||
"riskClasses": ["R2"],
|
||||
"toolPatterns": ["projectbrain.*"]
|
||||
},
|
||||
"conditions": {"requireEnabledClient": true, "requireBinding": true, "maxArgumentBytes": 1200000},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "038 ProjectBrain Analysis Operations",
|
||||
"slug": "038-projectbrain-analysis-operations"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 38,
|
||||
"description": "Allow only the bounded ProjectBrain analysis job mutations for clients that already hold an enabled inherited Gitea portfolio binding.",
|
||||
"match": {
|
||||
"project": "gitea-analysis",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["projectbrain"],
|
||||
"riskClasses": ["R2"],
|
||||
"toolPatterns": [
|
||||
"projectbrain.analysis.start",
|
||||
"projectbrain.analysis.cancel"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"requireEnabledClient": true,
|
||||
"requireBinding": true,
|
||||
"maxArgumentBytes": 65536
|
||||
},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {"name": "039 ProjectBrain Finding Loop Operations", "slug": "039-projectbrain-finding-loop-operations"},
|
||||
"spec": {
|
||||
"priority": 39,
|
||||
"description": "Allow bounded repository bootstrap plus ProjectBrain content, context, analysis, finding, autonomous-controller and approval-gated delivery mutations exposed by the gitea-loop profile.",
|
||||
"match": {
|
||||
"project": "gitea-loop",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["gitea", "projectbrain"],
|
||||
"riskClasses": ["R2"],
|
||||
"toolPatterns": ["gitea.repository.create", "gitea.workspace.run", "gitea.branchprotection.ensure",
|
||||
"gitea.pullrequest.validation.ensure", "projectbrain.analysis.start", "projectbrain.analysis.cancel", "projectbrain.portfolio.repository.reconcile", "projectbrain.portfolio.repository.exclusion.set", "projectbrain.brainstorm.save", "projectbrain.knowledge.save", "projectbrain.documentation.save", "projectbrain.memory.save", "projectbrain.contextpack.create", "projectbrain.feedback.record", "projectbrain.finding.*", "projectbrain.delivery.*", "projectbrain.autonomy.*"]
|
||||
},
|
||||
"conditions": {"requireEnabledClient": true, "requireBinding": true, "maxArgumentBytes": 1200000},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {"name": "040 OpenCode Governed Jobs", "slug": "040-opencode-governed-jobs"},
|
||||
"spec": {
|
||||
"priority": 40,
|
||||
"description": "Allow managed Gitea workspace snapshots, preview-gated OpenCode jobs, and bounded delivery execution only for the separately bound openchamber-agent production client. Final acceptance remains external to OpenChamber.",
|
||||
"match": {
|
||||
"project": "openchamber-agent",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["opencode"],
|
||||
"riskClasses": ["R2", "R3"],
|
||||
"toolPatterns": ["opencode.workspace.ensure", "opencode.job.start", "opencode.job.cancel", "opencode.delivery.control.start", "opencode.delivery.control.retry", "opencode.delivery.control.cancel"]
|
||||
},
|
||||
"conditions": {"requireEnabledClient": true, "requireBinding": true, "maxArgumentBytes": 65536},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "040 Read Tool Allow",
|
||||
"slug": "040-read-tool-allow"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 40,
|
||||
"description": "Allow R0/R1 calls only when scope, capability pack, connector binding, input budget and output policy all pass.",
|
||||
"match": {
|
||||
"riskClasses": [
|
||||
"R0",
|
||||
"R1"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"requireScope": true,
|
||||
"requireCapabilityPack": true,
|
||||
"requireConnectorBinding": true,
|
||||
"requireInputValidation": true,
|
||||
"requireOutputValidation": true,
|
||||
"requireRedaction": true
|
||||
},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {"name": "041 AppOps Governed Operations", "slug": "041-appops-governed-operations"},
|
||||
"spec": {
|
||||
"priority": 41,
|
||||
"description": "Allow only bounded typed AppOps mutations after Hub identity, binding and AppOps exact-target policy checks; no generic shell, Docker socket or human-approval bypass is introduced.",
|
||||
"match": {
|
||||
"project": "server-ops",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["appops"],
|
||||
"riskClasses": ["R2", "R3"],
|
||||
"toolPatterns": [
|
||||
"server.operation.request",
|
||||
"server.operation.execute",
|
||||
"server.job.cancel",
|
||||
"server.project.reconcile",
|
||||
"server.deployment.target.enroll",
|
||||
"server.deployment.apply",
|
||||
"server.deployment.rollback"
|
||||
]
|
||||
},
|
||||
"conditions": {"requireEnabledClient": true, "requireBinding": true, "maxArgumentBytes": 65536},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "042 Stitch Governed Design Writes",
|
||||
"slug": "042-stitch-governed-design-writes"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 42,
|
||||
"description": "Allow only bounded Stitch design creation and screen changes for the bound production Stitch project; deletion and administration remain denied.",
|
||||
"match": {
|
||||
"project": "stitch-design",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["stitch"],
|
||||
"riskClasses": ["R2"],
|
||||
"toolPatterns": [
|
||||
"stitch.project.create",
|
||||
"stitch.screen.edit",
|
||||
"stitch.screen.generate",
|
||||
"stitch.screen.variants"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"requireEnabledClient": true,
|
||||
"requireBinding": true,
|
||||
"maxArgumentBytes": 65536
|
||||
},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {"name": "043 Knowledge Hub reviewed intake", "slug": "043-knowledge-intake-review-only"},
|
||||
"spec": {
|
||||
"priority": 43,
|
||||
"description": "Allow only bounded document proposals for human review in the bound Knowledge Hub project.",
|
||||
"match": {
|
||||
"project": "knowledge-hub",
|
||||
"environmentClassifications": ["production"],
|
||||
"connectors": ["ingestion"],
|
||||
"riskClasses": ["R2"],
|
||||
"toolPatterns": ["knowledge.ingestion.analyze", "knowledge.ingestion.text_proposal", "knowledge.ingestion.submit"]
|
||||
},
|
||||
"conditions": {"requireEnabledClient": true, "requireBinding": true, "maxArgumentBytes": 3145728},
|
||||
"decision": "allow_if_conditions",
|
||||
"terminal": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "050 Output Budget",
|
||||
"slug": "050-output-budget"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 50,
|
||||
"description": "Deny or truncate output beyond a tool-specific hard budget before returning it to a model.",
|
||||
"match": {
|
||||
"resourceTypes": [
|
||||
"tool-result",
|
||||
"resource-content"
|
||||
]
|
||||
},
|
||||
"conditions": {
|
||||
"maxDefaultBytes": 262144,
|
||||
"maxDefaultItems": 500,
|
||||
"redactionProfile": "strict"
|
||||
},
|
||||
"decision": "enforce",
|
||||
"terminal": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "Policy",
|
||||
"metadata": {
|
||||
"name": "Global Default Deny",
|
||||
"slug": "global-deny"
|
||||
},
|
||||
"spec": {
|
||||
"priority": 0,
|
||||
"description": "Deny every action unless a more specific allow policy and all security invariants match.",
|
||||
"match": {},
|
||||
"conditions": {},
|
||||
"decision": "deny",
|
||||
"terminal": false
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user