136 lines
5.6 KiB
JSON
136 lines
5.6 KiB
JSON
{
|
|
"schema_version": "awoooi_external_mcp_replay_policy_v1",
|
|
"policy_version": "1.0.0",
|
|
"work_item_id": "MCP-REPLAY-PLAYWRIGHT-001",
|
|
"candidate_id": "external.playwright-verifier",
|
|
"adapter_id": "playwright_public_accessibility_verifier_v1",
|
|
"risk_class": "high",
|
|
"scope": "offline_protocol_and_tool_schema_compatibility_only",
|
|
"owner_lane": "awoooi_mcp_supply_chain",
|
|
"expires_at": "2026-10-15T00:00:00+08:00",
|
|
"exit_condition": "replace_with_verified_public_origin_shadow_canary_and_rollback_receipts_or_disable_candidate",
|
|
"replacement_action": "publish_a_new_exact_policy_and_replay_receipt_before_any_shadow_or_canary",
|
|
"rollback_ref": "disable_external.playwright-verifier_and_retain_immutable_artifact",
|
|
"post_verifier": "verify_external_mcp_replay_receipt.py",
|
|
"artifact_source": {
|
|
"policy_path": "config/mcp/playwright-mcp-artifact-policy.json",
|
|
"policy_checksum": "sha256:44c9f79c2af59f1d2703cbd2181b43f4c4dd4ee9f70164f606bdda70d823e78b",
|
|
"audit_branch": "mcp-artifact-receipts",
|
|
"audit_commit": "9c08ada5c0f15bb6924304af29cd13c8376182ff",
|
|
"controller_receipt_path": "docs/operations/external-mcp-artifacts/playwright-mcp-0.0.78-controller.snapshot.json",
|
|
"controller_receipt_sha256": "d59214363d9b380591b51157088f63d4ca115354d383070ba7cd4a958408641a",
|
|
"verifier_receipt_path": "docs/operations/external-mcp-artifacts/playwright-mcp-0.0.78-verifier.snapshot.json",
|
|
"verifier_receipt_sha256": "c993ba77c771b01144c962335dfd79490356b5d6797eed2bafb8c0261173f43c",
|
|
"artifact_ref": "registry.wooo.work/awoooi/mcp-artifacts/playwright-mcp@sha256:de002c418bbb94fb4609539c4259c39ccb7f8b353f8bac8fbcba9e5742ad79ed",
|
|
"artifact_runtime_ref": "192.168.0.110:5000/awoooi/mcp-artifacts/playwright-mcp@sha256:de002c418bbb94fb4609539c4259c39ccb7f8b353f8bac8fbcba9e5742ad79ed",
|
|
"bundle_manifest_sha256": "54b1d7ff24fc6f8ca89d4d36adcdb43e1cf79ed6018a4cd4f0d630c857bffb2c",
|
|
"cyclonedx_sbom_sha256": "092500242530e40f361f52cc662edda9e6c83f76edf81dfe9574235546c22be7",
|
|
"package_integrities": {
|
|
"@playwright/mcp@0.0.78": "5cb4d4780ea610df6c43e849e1d7c6f042240dbc52d0add3adcd91064509b9fd364e013615044d4ccb6afda25f87244c20db1197f61b738b317162ed167e3f4d",
|
|
"playwright@1.62.0-alpha-1783623505000": "e8a57d8783cfde1aaee0d686771c5c8a359f621f4b25c148fd1dac3f84d30b8239705a37a116b0374113956e4c904ddc40480a861a23d0a50dcf8b1fa424f44e",
|
|
"playwright-core@1.62.0-alpha-1783623505000": "08f25976c03f2864f641095e92257a5adf90950ad91d5499ea888db4e23f6d860e2152ccf237ca1964cce33422c9de1437ee340aae1c03a9719991d96ed3ef25"
|
|
}
|
|
},
|
|
"runtime": {
|
|
"image_ref": "registry.wooo.work/awoooi/ci-runner@sha256:04de9ba58445af167ef0a9f5a8d21ef20980ed82aa7818fd2cd0b64ed0aa3866",
|
|
"platform": "linux/amd64",
|
|
"user": "65534:65534",
|
|
"entrypoint": [
|
|
"node",
|
|
"node_modules/@playwright/mcp/cli.js"
|
|
],
|
|
"arguments": [
|
|
"--headless",
|
|
"--isolated",
|
|
"--allowed-origins",
|
|
"https://awoooi.wooo.work",
|
|
"--output-dir",
|
|
"/tmp/mcp-output",
|
|
"--executable-path",
|
|
"/nonexistent/browser"
|
|
],
|
|
"network_mode": "none",
|
|
"read_only_root": true,
|
|
"no_new_privileges": true,
|
|
"cap_drop": [
|
|
"ALL"
|
|
],
|
|
"pids_limit": 64,
|
|
"memory_limit": "384m",
|
|
"cpu_limit": "0.5",
|
|
"tmpfs": "/tmp:rw,noexec,nosuid,size=32m",
|
|
"startup_timeout_seconds": 20,
|
|
"shutdown_timeout_seconds": 5
|
|
},
|
|
"protocol_contract": {
|
|
"protocol_version": "2025-06-18",
|
|
"server_name": "Playwright",
|
|
"server_version": "1.62.0-alpha-1783623505000",
|
|
"tool_count": 24,
|
|
"tool_name_set_sha256": "12d23fea9d8d1a1de3f44863dc00cf393f0a2165323838cf93fed30a6a4cc237",
|
|
"tool_schema_manifest_sha256": "c3737ced21147d0512b0400df5885c95a545bc915892b5c8f928cee78428ac99",
|
|
"adapter_allowed_tools": [
|
|
"browser_close",
|
|
"browser_navigate",
|
|
"browser_snapshot",
|
|
"browser_take_screenshot"
|
|
],
|
|
"adapter_denied_tools": [
|
|
"browser_click",
|
|
"browser_console_messages",
|
|
"browser_drag",
|
|
"browser_drop",
|
|
"browser_evaluate",
|
|
"browser_file_upload",
|
|
"browser_fill_form",
|
|
"browser_find",
|
|
"browser_handle_dialog",
|
|
"browser_hover",
|
|
"browser_navigate_back",
|
|
"browser_network_request",
|
|
"browser_network_requests",
|
|
"browser_press_key",
|
|
"browser_resize",
|
|
"browser_run_code_unsafe",
|
|
"browser_select_option",
|
|
"browser_tabs",
|
|
"browser_type",
|
|
"browser_wait_for"
|
|
]
|
|
},
|
|
"execution_boundaries": {
|
|
"direct_gateway_registration_allowed": false,
|
|
"adapter_registration_allowed": false,
|
|
"browser_start_allowed": false,
|
|
"tool_call_allowed": false,
|
|
"navigation_allowed": false,
|
|
"authenticated_session_allowed": false,
|
|
"raw_request_or_response_body_storage_allowed": false,
|
|
"external_rag_write_allowed": false,
|
|
"production_write_allowed": false,
|
|
"shadow_allowed": false,
|
|
"canary_allowed": false,
|
|
"promotion_allowed": false
|
|
},
|
|
"promotion_blockers_after_replay": [
|
|
"immutable_browser_runtime_supply_chain_missing",
|
|
"public_origin_egress_proxy_and_private_network_denial_missing",
|
|
"public_origin_shadow_replay_not_verified",
|
|
"canary_verifier_and_rollback_execution_pending"
|
|
],
|
|
"prohibited": [
|
|
"github_api_or_actions",
|
|
"actions_checkout",
|
|
"github_source_or_container_download",
|
|
"npx_y",
|
|
"at_latest",
|
|
"floating_container_tag",
|
|
"direct_external_mcp_registration",
|
|
"browser_or_tool_execution_in_protocol_replay",
|
|
"secret_read_or_log",
|
|
"request_or_response_body_storage",
|
|
"external_rag_write",
|
|
"production_mutation"
|
|
]
|
|
}
|