Files
kontextual-engine/examples/cmis/capability-fixtures.json
2026-05-14 02:20:17 +02:00

209 lines
9.3 KiB
JSON

{
"schema_version": 1,
"standard": {
"name": "CMIS",
"version": "1.1",
"primary_binding": "browser",
"deferred_bindings": ["atompub", "web_services"]
},
"profiles": {
"readonly-browser": {
"description": "Read-only Browser Binding access point for governed content access.",
"binding": "browser",
"mutations": false,
"visibility": ["public", "internal"],
"deny": ["confidential", "restricted"],
"expected_tck_posture": "repository/type/read/navigation/query/content-read subset"
},
"governed-authoring": {
"description": "Browser Binding access point with selected governed mutations.",
"binding": "browser",
"mutations": true,
"visibility": ["public", "internal"],
"deny": ["confidential", "restricted"],
"expected_tck_posture": "readonly subset plus selected create/update/delete checks"
},
"admin-export": {
"description": "Service-account export profile for broad governance inspection.",
"binding": "browser",
"mutations": false,
"visibility": ["public", "internal", "confidential", "restricted"],
"deny": [],
"expected_tck_posture": "internal contract tests, not general client compatibility"
},
"compat-tck": {
"description": "Compatibility profile tuned for selected OpenCMIS TCK groups.",
"binding": "browser",
"mutations": true,
"visibility": ["public", "internal"],
"deny": ["confidential", "restricted"],
"expected_tck_posture": "selected OpenCMIS TCK Browser Binding subset"
}
},
"objects": [
{
"id": "doc-public-source",
"kind": "document",
"title": "Public source document",
"sensitivity": "public",
"content_stream": true,
"media_type": "text/markdown",
"version_series": "vs-public-source",
"version_label": "1.0",
"folder_path": "/sources/public"
},
{
"id": "doc-internal-normalized",
"kind": "document",
"title": "Internal normalized representation",
"sensitivity": "internal",
"content_stream": true,
"media_type": "application/json",
"version_series": "vs-internal-normalized",
"version_label": "2.0",
"folder_path": "/representations/normalized"
},
{
"id": "doc-confidential-risk",
"kind": "document",
"title": "Confidential risk note",
"sensitivity": "confidential",
"content_stream": true,
"media_type": "text/markdown",
"version_series": "vs-confidential-risk",
"version_label": "1.0",
"folder_path": "/sources/confidential"
},
{
"id": "rel-derived-from",
"kind": "relationship",
"source_id": "doc-internal-normalized",
"target_id": "doc-public-source",
"relationship_type": "derived_from"
},
{
"id": "event-content-updated",
"kind": "change_event",
"change_type": "updated",
"object_id": "doc-internal-normalized",
"change_token": "chg-0002"
}
],
"capability_groups": [
{
"id": "repository-type",
"service": "repository",
"examples": ["repo-browser", "readonly-browser", "governed-authoring"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["repository_info", "capability_flags", "base_type_definitions", "property_definitions"],
"unsupported": []
},
{
"id": "navigation",
"service": "navigation",
"examples": ["root-folder", "topic-folder", "source-system-folder", "unfiled-assets"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["get_children", "projection_parent_folders", "unsupported_descendants_flag", "unsupported_folder_tree_flag"],
"unsupported": ["get_descendants", "get_folder_tree", "multifiling", "unfiling"]
},
{
"id": "object-content",
"service": "object",
"examples": ["source-document", "normalized-representation", "metadata-rich-document", "streamless-document"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["get_object", "get_properties", "get_content_stream", "append_content_stream", "allowable_actions"],
"unsupported": []
},
{
"id": "versioning",
"service": "versioning",
"examples": ["single-version-document", "multi-version-document", "read-only-checkout"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["version_properties_projection", "latest_version_flags", "unsupported_versioning_flags"],
"unsupported": ["versioning_services", "private_working_copy", "all_versions_search"]
},
{
"id": "discovery-query",
"service": "discovery",
"examples": ["lexical-query", "metadata-filter", "relationship-scoped-query", "bounded-order-by", "unsupported-join"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["query_capabilities", "paging", "bounded_order_by", "unsupported_grammar_diagnostics"],
"unsupported": ["full_cmis_sql_joins", "custom_order_by"]
},
{
"id": "relationships",
"service": "relationship",
"examples": ["asset-to-asset", "asset-to-context-entity", "lineage-relation"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["relationship_projection", "source_filter", "target_filter", "profile_visibility"],
"unsupported": []
},
{
"id": "acl-policy",
"service": "acl",
"examples": ["public-asset", "internal-asset", "confidential-asset", "denied-actor", "service-account"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["allowable_actions", "acl_projection", "denial_omits_object", "no_metadata_leakage"],
"unsupported": ["apply_acl", "apply_policy", "remove_policy"]
},
{
"id": "change-log",
"service": "change_log",
"examples": ["asset-create", "metadata-update", "content-update", "transformation-output", "workflow-run", "policy-denial"],
"supported_profiles": ["readonly-browser", "governed-authoring", "admin-export", "compat-tck"],
"must_validate": ["change_tokens", "event_ordering", "audit_correlation", "paging"],
"unsupported": []
},
{
"id": "retention-renditions-bulk",
"service": "extension",
"examples": ["retention-metadata", "legal-hold-metadata", "preview-representation", "bulk-metadata-update"],
"supported_profiles": ["admin-export"],
"must_validate": ["explicit_capability_flags", "structured_unsupported_operation"],
"unsupported": ["retention_hold_mutation", "bulk_update_properties", "rendition_streams"]
}
],
"unsupported_diagnostics": {
"atompub": "binding_not_supported",
"web_services": "binding_not_supported",
"get_descendants": "capability_not_supported",
"get_folder_tree": "capability_not_supported",
"multifiling": "projection_only",
"unfiling": "capability_not_supported",
"versioning_services": "capability_not_supported",
"private_working_copy": "capability_not_supported",
"all_versions_search": "capability_not_supported",
"full_cmis_sql_joins": "query_not_supported",
"custom_order_by": "custom_order_by_not_supported",
"apply_acl": "operation_not_implemented",
"apply_policy": "capability_not_supported",
"remove_policy": "capability_not_supported",
"retention_hold_mutation": "capability_not_supported",
"bulk_update_properties": "capability_not_supported",
"rendition_streams": "capability_not_supported",
"type_mutability": "capability_not_supported"
},
"profile_expectations": {
"readonly-browser": {
"must_expose": ["repository-type", "navigation", "object-content", "versioning", "discovery-query", "relationships", "acl-policy", "change-log"],
"must_not_expose_objects": ["doc-confidential-risk"],
"must_reject_actions": ["create_document", "update_properties", "delete_object", "set_content_stream", "append_content_stream"]
},
"governed-authoring": {
"must_expose": ["repository-type", "navigation", "object-content", "versioning", "discovery-query", "relationships", "acl-policy", "change-log"],
"must_not_expose_objects": ["doc-confidential-risk"],
"must_authorize_actions": ["create_document", "update_properties", "delete_object", "set_content_stream", "append_content_stream"]
},
"admin-export": {
"must_expose": ["repository-type", "navigation", "object-content", "versioning", "discovery-query", "relationships", "acl-policy", "change-log", "retention-renditions-bulk"],
"must_not_expose_objects": [],
"must_reject_actions": ["create_document", "update_properties", "delete_object", "set_content_stream", "append_content_stream"]
},
"compat-tck": {
"must_expose": ["repository-type", "navigation", "object-content", "versioning", "discovery-query", "relationships", "acl-policy", "change-log"],
"must_not_expose_objects": ["doc-confidential-risk"],
"must_authorize_actions": ["create_document", "update_properties", "delete_object", "set_content_stream", "append_content_stream"]
}
}
}