declarative-sdk-for-k 2.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- declarative_sdk_for_k-2.21.0/LICENSE +21 -0
- declarative_sdk_for_k-2.21.0/NOTICE +54 -0
- declarative_sdk_for_k-2.21.0/PKG-INFO +526 -0
- declarative_sdk_for_k-2.21.0/README.md +452 -0
- declarative_sdk_for_k-2.21.0/declarative_sdk_for_k.egg-info/PKG-INFO +526 -0
- declarative_sdk_for_k-2.21.0/declarative_sdk_for_k.egg-info/SOURCES.txt +626 -0
- declarative_sdk_for_k-2.21.0/declarative_sdk_for_k.egg-info/dependency_links.txt +1 -0
- declarative_sdk_for_k-2.21.0/declarative_sdk_for_k.egg-info/entry_points.txt +6 -0
- declarative_sdk_for_k-2.21.0/declarative_sdk_for_k.egg-info/requires.txt +54 -0
- declarative_sdk_for_k-2.21.0/declarative_sdk_for_k.egg-info/top_level.txt +3 -0
- declarative_sdk_for_k-2.21.0/dsk/__init__.py +37 -0
- declarative_sdk_for_k-2.21.0/dsk/_obs/__init__.py +136 -0
- declarative_sdk_for_k-2.21.0/dsk/auth/__init__.py +46 -0
- declarative_sdk_for_k-2.21.0/dsk/auth/helper.py +449 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/__init__.py +9 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/__main__.py +6 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_live/__init__.py +14 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_live/runbook.py +230 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_live/transcript.py +227 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/__init__.py +23 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/common.py +152 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/compliance.py +185 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/ksm_usage.py +259 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/password.py +52 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/role_report.py +179 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/runner.py +154 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/security_audit.py +62 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/team_report_cmd.py +140 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/team_roles.py +327 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/_report/vault_health.py +714 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/audit_chain.py +272 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_audit.py +121 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_bundle.py +227 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_discover.py +216 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_drift_watch.py +153 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_import_from_keepercmd.py +1164 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_rehearse_report.py +229 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_scan.py +150 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_shim_info.py +29 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/cmd_verify.py +169 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/discover.py +224 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/main.py +4799 -0
- declarative_sdk_for_k-2.21.0/dsk/cli/renderer.py +105 -0
- declarative_sdk_for_k-2.21.0/dsk/core/__init__.py +414 -0
- declarative_sdk_for_k-2.21.0/dsk/core/_private_families.py +36 -0
- declarative_sdk_for_k-2.21.0/dsk/core/agent_kit_diff.py +45 -0
- declarative_sdk_for_k-2.21.0/dsk/core/agent_memory_policy_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/agentic_skill_policy_diff.py +63 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ai_act_diff.py +77 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ai_agent_diff.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ai_policy_diff.py +104 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ai_token_diff.py +104 -0
- declarative_sdk_for_k-2.21.0/dsk/core/checkpoint.py +117 -0
- declarative_sdk_for_k-2.21.0/dsk/core/cloud_jit_diff.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/cmmc_diff.py +45 -0
- declarative_sdk_for_k-2.21.0/dsk/core/compliance_diff.py +60 -0
- declarative_sdk_for_k-2.21.0/dsk/core/connection_profile_diff.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/cspm_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/db_access_diff.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/diff.py +1016 -0
- declarative_sdk_for_k-2.21.0/dsk/core/dora_diff.py +45 -0
- declarative_sdk_for_k-2.21.0/dsk/core/enterprise_diff.py +304 -0
- declarative_sdk_for_k-2.21.0/dsk/core/enterprise_graph.py +269 -0
- declarative_sdk_for_k-2.21.0/dsk/core/epm_diff.py +384 -0
- declarative_sdk_for_k-2.21.0/dsk/core/errors.py +66 -0
- declarative_sdk_for_k-2.21.0/dsk/core/evidence_stream_diff.py +60 -0
- declarative_sdk_for_k-2.21.0/dsk/core/field_names.py +52 -0
- declarative_sdk_for_k-2.21.0/dsk/core/gateway_ha_diff.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/governance.py +85 -0
- declarative_sdk_for_k-2.21.0/dsk/core/graph.py +183 -0
- declarative_sdk_for_k-2.21.0/dsk/core/integrations_events_diff.py +234 -0
- declarative_sdk_for_k-2.21.0/dsk/core/integrations_identity_diff.py +274 -0
- declarative_sdk_for_k-2.21.0/dsk/core/interfaces.py +130 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ir_adapters.py +137 -0
- declarative_sdk_for_k-2.21.0/dsk/core/itsm_gate_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/keeper_drive_diff.py +73 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ksm_diff.py +262 -0
- declarative_sdk_for_k-2.21.0/dsk/core/ksm_graph.py +140 -0
- declarative_sdk_for_k-2.21.0/dsk/core/lock.py +426 -0
- declarative_sdk_for_k-2.21.0/dsk/core/manifest.py +919 -0
- declarative_sdk_for_k-2.21.0/dsk/core/mcp_allowlist_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/mcp_diff.py +49 -0
- declarative_sdk_for_k-2.21.0/dsk/core/metadata.py +99 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models.py +610 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_agent_kit.py +69 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_agent_memory_policy.py +121 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_agentic_skill_policy.py +138 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_ai_act.py +114 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_ai_agent.py +117 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_ai_policy.py +78 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_ai_token.py +114 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_cloud_jit.py +88 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_cmmc.py +92 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_compliance.py +74 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_connection_profile.py +106 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_cspm.py +79 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_db_access.py +97 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_dora.py +97 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_enterprise.py +246 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_epm.py +292 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_evidence_stream.py +96 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_gateway_ha.py +104 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_integrations_events.py +155 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_integrations_identity.py +168 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_itsm_gate.py +79 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_jit.py +101 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_k8s_eso.py +134 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_keeper_drive.py +154 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_ksm.py +221 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_mcp.py +91 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_mcp_allowlist.py +111 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_msp.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_nhi.py +231 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_pam_extended.py +192 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_pipeline_env.py +90 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_policy.py +630 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_pqc.py +70 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_privileged_access.py +159 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_rotation.py +122 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_saas_rotation.py +134 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_scim.py +111 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_secret_scanner.py +71 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_siem.py +170 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_slack_gate.py +60 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_spiffe.py +54 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_terraform.py +107 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_trust_chain.py +81 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_tunnel.py +138 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_vault_sharing.py +61 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_workflow.py +172 -0
- declarative_sdk_for_k-2.21.0/dsk/core/models_workflow_gate.py +109 -0
- declarative_sdk_for_k-2.21.0/dsk/core/msp_diff.py +316 -0
- declarative_sdk_for_k-2.21.0/dsk/core/msp_graph.py +63 -0
- declarative_sdk_for_k-2.21.0/dsk/core/msp_models.py +112 -0
- declarative_sdk_for_k-2.21.0/dsk/core/nhi_diff.py +46 -0
- declarative_sdk_for_k-2.21.0/dsk/core/normalize.py +372 -0
- declarative_sdk_for_k-2.21.0/dsk/core/pam_extended_diff.py +273 -0
- declarative_sdk_for_k-2.21.0/dsk/core/pipeline_env_diff.py +48 -0
- declarative_sdk_for_k-2.21.0/dsk/core/planner.py +90 -0
- declarative_sdk_for_k-2.21.0/dsk/core/pqc_diff.py +46 -0
- declarative_sdk_for_k-2.21.0/dsk/core/preview.py +140 -0
- declarative_sdk_for_k-2.21.0/dsk/core/privileged_access_diff.py +74 -0
- declarative_sdk_for_k-2.21.0/dsk/core/record_type_aliases.py +26 -0
- declarative_sdk_for_k-2.21.0/dsk/core/redact.py +195 -0
- declarative_sdk_for_k-2.21.0/dsk/core/refusal.py +310 -0
- declarative_sdk_for_k-2.21.0/dsk/core/resource_limits.py +238 -0
- declarative_sdk_for_k-2.21.0/dsk/core/rules.py +165 -0
- declarative_sdk_for_k-2.21.0/dsk/core/saas_rotation_diff.py +63 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schema.py +552 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/__init__.py +1 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/_meta/x-keeper-live-proof.schema.json +28 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/agent-memory-policy/agent-memory-policy.v1.schema.json +127 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/agentic-skill-policy/agentic-skill-policy.v1.schema.json +197 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/ai-act-profile/ai-act-profile.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/ai-agent/ai-agent.v1.schema.json +272 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/ai-agent-trust-chain/ai-agent-trust-chain.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/ai-token/ai-token.v1.schema.json +84 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/ai_agent_v1.json +185 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/cloud-jit/cloud-jit.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/cmmc-profile/cmmc-profile.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/compliance-bundle/compliance-bundle.v1.schema.json +16 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/continuous-evidence-stream/continuous-evidence-stream.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/cspm-remediation/cspm-remediation.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/db-access-policy/db-access-policy.v1.schema.json +13 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/dora-profile/dora-profile.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/enterprise/enterprise.v1.schema.json +216 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/epm/epm.v1.schema.json +168 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/epm-policy/epm-policy.v1.schema.json +40 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/gateway-ha/gateway-ha.v1.schema.json +12 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/integrations/events.v1.schema.json +53 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/integrations/identity.v1.schema.json +144 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/itsm-approval-gate/itsm-approval-gate.v1.schema.json +13 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/jit-access/jit-access.v1.schema.json +39 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-agent-kit/keeper-agent-kit.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-ai-policy/keeper-ai-policy.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-drive/keeper-drive.v1.schema.json +120 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-enterprise/keeper-enterprise.v1.schema.json +522 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-epm/keeper-epm.v1.schema.json +23 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-integrations-events/keeper-integrations-events.v1.schema.json +146 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-integrations-identity/keeper-integrations-identity.v1.schema.json +132 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-k8s-eso/keeper-k8s-eso.v1.schema.json +96 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-ksm/keeper-ksm.v1.schema.json +23 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-pam-extended/keeper-pam-extended.v1.schema.json +189 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-policy/keeper-policy.v1.schema.json +421 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-privileged-access/keeper-privileged-access.v1.schema.json +122 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-saas-rotation/keeper-saas-rotation.v1.schema.json +106 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-scim/keeper-scim.v1.schema.json +157 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-security-posture/keeper-security-posture.v1.schema.json +23 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-siem/keeper-siem.v1.schema.json +162 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-terraform/keeper-terraform.v1.schema.json +70 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-tunnel/keeper-tunnel.v1.schema.json +116 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-vault/keeper-vault.v1.schema.json +519 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-vault-sharing/keeper-vault-sharing.v1.schema.json +216 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/keeper-workflow/keeper-workflow.v1.schema.json +151 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/ksm/ksm.v1.schema.json +187 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/mcp-secrets-binding/mcp-secrets-binding.v1.schema.json +30 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/mcp-server-allowlist/mcp-server-allowlist.v1.schema.json +144 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/msp-environment/msp-environment.v1.schema.json +81 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/nhi-agent/nhi-agent.v1.schema.json +214 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/nhi_agent_v1.json +126 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pam-connection-profile/pam-connection-profile.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pam-environment/pam-environment.v1.schema.json +585 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pam-environment.v1.schema.json +585 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pam-extended/keeper-pam-extended.v1.schema.json +238 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pam_extended/pam_extended.v1.schema.json +199 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pipeline-ephemeral-environment/pipeline-ephemeral-environment.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/pqc-policy/pqc-policy.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/privileged-access/privileged-access.v1.schema.json +122 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/rotation-policy/rotation-policy.v1.schema.json +188 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/saas-rotation/saas-rotation.v1.schema.json +96 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/secret-scanner-bridge/secret-scanner-bridge.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/slack-approval-gate/slack-approval-gate.v1.schema.json +13 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/spiffe-binding/spiffe-binding.v1.schema.json +43 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/tunnel/tunnel.v1.schema.json +116 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/vault_sharing/vault_sharing.v1.schema.json +216 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/workflow/workflow.v1.schema.json +151 -0
- declarative_sdk_for_k-2.21.0/dsk/core/schemas/workflow-gate/workflow-gate.v1.schema.json +14 -0
- declarative_sdk_for_k-2.21.0/dsk/core/scim_diff.py +101 -0
- declarative_sdk_for_k-2.21.0/dsk/core/secret_scanner_diff.py +61 -0
- declarative_sdk_for_k-2.21.0/dsk/core/sharing_diff.py +1313 -0
- declarative_sdk_for_k-2.21.0/dsk/core/sharing_graph.py +101 -0
- declarative_sdk_for_k-2.21.0/dsk/core/sharing_models.py +231 -0
- declarative_sdk_for_k-2.21.0/dsk/core/siem_diff.py +226 -0
- declarative_sdk_for_k-2.21.0/dsk/core/slack_gate_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/spiffe_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/spiffe_runtime.py +349 -0
- declarative_sdk_for_k-2.21.0/dsk/core/trust_chain_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/core/tunnel_diff.py +84 -0
- declarative_sdk_for_k-2.21.0/dsk/core/vault_diff.py +876 -0
- declarative_sdk_for_k-2.21.0/dsk/core/vault_graph.py +87 -0
- declarative_sdk_for_k-2.21.0/dsk/core/vault_models.py +478 -0
- declarative_sdk_for_k-2.21.0/dsk/core/vault_sharing_plan.py +105 -0
- declarative_sdk_for_k-2.21.0/dsk/core/workflow_diff.py +77 -0
- declarative_sdk_for_k-2.21.0/dsk/core/workflow_gate_diff.py +47 -0
- declarative_sdk_for_k-2.21.0/dsk/crossplane/__init__.py +10 -0
- declarative_sdk_for_k-2.21.0/dsk/crossplane/provider.py +123 -0
- declarative_sdk_for_k-2.21.0/dsk/daemon/__init__.py +0 -0
- declarative_sdk_for_k-2.21.0/dsk/daemon/drift_watch.py +368 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/__init__.py +5 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/dx_tools.py +556 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/__init__.py +1 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/agentic-llm-tenant.yaml +11 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/ai_agent_dsk_orchestrator.yaml +27 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/enterprise_role_management.yaml +29 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/enterprise_team_membership.yaml +31 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/enterprise_user_roster.yaml +34 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/ksm_app_clients.yaml +29 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/msp-fintech-saas.yaml +16 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/nhi_agent_ai_agent.yaml +14 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/nhi_agent_service_account.yaml +13 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/pam_rotation_policy.yaml +28 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/paved-road-eks.yaml +11 -0
- declarative_sdk_for_k-2.21.0/dsk/extras/patterns/vault_record_sharing.yaml +31 -0
- declarative_sdk_for_k-2.21.0/dsk/formats/__init__.py +1 -0
- declarative_sdk_for_k-2.21.0/dsk/formats/hcl_exporter.py +102 -0
- declarative_sdk_for_k-2.21.0/dsk/formats/hcl_importer.py +94 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/__init__.py +0 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/cspm_bridge.py +131 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/eso_bridge.py +213 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/k8s/__init__.py +11 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/k8s/eso.py +64 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/langchain.py +153 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/secret_scanner_bridge.py +129 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/slack_gate.py +118 -0
- declarative_sdk_for_k-2.21.0/dsk/integrations/ticket_gate.py +121 -0
- declarative_sdk_for_k-2.21.0/dsk/mcp/__init__.py +5 -0
- declarative_sdk_for_k-2.21.0/dsk/mcp/keepercmd_tools.py +324 -0
- declarative_sdk_for_k-2.21.0/dsk/mcp/manifest_helper.py +71 -0
- declarative_sdk_for_k-2.21.0/dsk/mcp/server.py +847 -0
- declarative_sdk_for_k-2.21.0/dsk/policy/__init__.py +0 -0
- declarative_sdk_for_k-2.21.0/dsk/policy/engine.py +160 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/__init__.py +30 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/__init__.py +11 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/enterprise.py +227 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/epm.py +129 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/ksm.py +163 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/msp.py +265 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/pam_extended.py +223 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/rotation.py +317 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/saas.py +161 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander/workflow.py +169 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_cli_helpers.py +541 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/__init__.py +23 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/enterprise.py +1099 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/ksm.py +1112 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/msp.py +340 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/pam_core.py +1566 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/rotation.py +289 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/sharing.py +748 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/transport.py +822 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/transport_service_mode.py +168 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/vault.py +1521 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/_commander_mixins/workflow_epm.py +891 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/ai_policy_provider.py +93 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/ai_token_provider.py +94 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/commander_cli.py +1997 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/commander_library_provider.py +384 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/commander_service.py +399 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/commander_version.py +242 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/integrations_events_provider.py +106 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/integrations_identity_provider.py +127 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/k8s_eso_provider.py +285 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/mock.py +2772 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/pam_workflow_argv.py +231 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/rest_provider_base.py +265 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/service_client.py +253 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/siem_provider.py +104 -0
- declarative_sdk_for_k-2.21.0/dsk/providers/terraform_provider.py +258 -0
- declarative_sdk_for_k-2.21.0/dsk/py.typed +1 -0
- declarative_sdk_for_k-2.21.0/dsk/secrets/__init__.py +104 -0
- declarative_sdk_for_k-2.21.0/dsk/secrets/bootstrap.py +596 -0
- declarative_sdk_for_k-2.21.0/dsk/secrets/bus.py +752 -0
- declarative_sdk_for_k-2.21.0/dsk/secrets/ksm.py +512 -0
- declarative_sdk_for_k-2.21.0/dsk/security/__init__.py +18 -0
- declarative_sdk_for_k-2.21.0/dsk/security/keeper_pubkey.py +101 -0
- declarative_sdk_for_k-2.21.0/dsk/security/minisign.py +155 -0
- declarative_sdk_for_k-2.21.0/dsk/shim/__init__.py +644 -0
- declarative_sdk_for_k-2.21.0/dsk/shim/_descriptor.py +234 -0
- declarative_sdk_for_k-2.21.0/dsk/shim/_types.py +140 -0
- declarative_sdk_for_k-2.21.0/keeper_sdk/__init__.py +141 -0
- declarative_sdk_for_k-2.21.0/pyproject.toml +180 -0
- declarative_sdk_for_k-2.21.0/setup.cfg +23 -0
- declarative_sdk_for_k-2.21.0/tests/test_adoption_smoke.py +119 -0
- declarative_sdk_for_k-2.21.0/tests/test_agent_kit.py +73 -0
- declarative_sdk_for_k-2.21.0/tests/test_agent_memory_policy_schema.py +140 -0
- declarative_sdk_for_k-2.21.0/tests/test_agentic_skill_policy_schema.py +247 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_act_profile.py +126 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_agent_plan.py +149 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_policy_models.py +80 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_policy_provider.py +125 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_security_examples.py +89 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_token_models.py +101 -0
- declarative_sdk_for_k-2.21.0/tests/test_ai_token_provider.py +112 -0
- declarative_sdk_for_k-2.21.0/tests/test_api_stability_tier1.py +556 -0
- declarative_sdk_for_k-2.21.0/tests/test_apply_lock.py +390 -0
- declarative_sdk_for_k-2.21.0/tests/test_apply_order_graphs.py +170 -0
- declarative_sdk_for_k-2.21.0/tests/test_audit_explain.py +176 -0
- declarative_sdk_for_k-2.21.0/tests/test_auth_helper.py +278 -0
- declarative_sdk_for_k-2.21.0/tests/test_auth_ksm.py +196 -0
- declarative_sdk_for_k-2.21.0/tests/test_bootstrap_ksm.py +872 -0
- declarative_sdk_for_k-2.21.0/tests/test_bus.py +67 -0
- declarative_sdk_for_k-2.21.0/tests/test_checkpoint.py +106 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli.py +587 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_commands_extended.py +437 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_feature_matrix.py +98 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_main_dispatch.py +138 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_main_extended.py +242 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_main_msp_edges.py +115 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_main_public_api.py +22 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_module_helpers.py +300 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_refusal.py +197 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_root.py +77 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_scan.py +129 -0
- declarative_sdk_for_k-2.21.0/tests/test_cli_sharing_dispatch.py +170 -0
- declarative_sdk_for_k-2.21.0/tests/test_cloud_jit_models.py +84 -0
- declarative_sdk_for_k-2.21.0/tests/test_cmd_artifacts.py +127 -0
- declarative_sdk_for_k-2.21.0/tests/test_cmd_import_from_keepercmd.py +279 -0
- declarative_sdk_for_k-2.21.0/tests/test_cmmc_profile.py +131 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_capability_probes.py +154 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_checkpoint_hash.py +32 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli.py +3674 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_cov_a.py +752 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_cov_b.py +857 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_cov_c.py +784 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_coverage_a.py +798 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_dispatch.py +260 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_helpers.py +288 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_ksm_lifecycle.py +239 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_pam_gateway.py +159 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_cli_sharing.py +565 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_coverage_gap_patterns.py +33 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_library_provider.py +171 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_mixins_r9.py +221 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_service_provider.py +590 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_service_stub.py +35 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_transport_service_mode.py +81 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_vault_mixin_edges.py +280 -0
- declarative_sdk_for_k-2.21.0/tests/test_commander_version.py +263 -0
- declarative_sdk_for_k-2.21.0/tests/test_compat_shim.py +99 -0
- declarative_sdk_for_k-2.21.0/tests/test_compliance_bundle.py +408 -0
- declarative_sdk_for_k-2.21.0/tests/test_connection_profile.py +236 -0
- declarative_sdk_for_k-2.21.0/tests/test_coverage_followups.py +353 -0
- declarative_sdk_for_k-2.21.0/tests/test_crossplane_provider.py +154 -0
- declarative_sdk_for_k-2.21.0/tests/test_cspm_bridge.py +132 -0
- declarative_sdk_for_k-2.21.0/tests/test_daemon_drift_watch.py +357 -0
- declarative_sdk_for_k-2.21.0/tests/test_daybook_harness.py +116 -0
- declarative_sdk_for_k-2.21.0/tests/test_db_access_policy.py +94 -0
- declarative_sdk_for_k-2.21.0/tests/test_diff.py +1090 -0
- declarative_sdk_for_k-2.21.0/tests/test_diff_command.py +115 -0
- declarative_sdk_for_k-2.21.0/tests/test_diff_modules_batch.py +444 -0
- declarative_sdk_for_k-2.21.0/tests/test_discover.py +194 -0
- declarative_sdk_for_k-2.21.0/tests/test_discover_command.py +225 -0
- declarative_sdk_for_k-2.21.0/tests/test_doctor.py +55 -0
- declarative_sdk_for_k-2.21.0/tests/test_dor_scenarios.py +207 -0
- declarative_sdk_for_k-2.21.0/tests/test_dora_profile.py +71 -0
- declarative_sdk_for_k-2.21.0/tests/test_drift_policy_enforce.py +39 -0
- declarative_sdk_for_k-2.21.0/tests/test_drift_watch.py +303 -0
- declarative_sdk_for_k-2.21.0/tests/test_drift_watch_preview_gate.py +57 -0
- declarative_sdk_for_k-2.21.0/tests/test_dsk_run.py +199 -0
- declarative_sdk_for_k-2.21.0/tests/test_dsk_tf_bridge.py +78 -0
- declarative_sdk_for_k-2.21.0/tests/test_dx_tools.py +123 -0
- declarative_sdk_for_k-2.21.0/tests/test_enterprise_apply.py +212 -0
- declarative_sdk_for_k-2.21.0/tests/test_enterprise_import.py +167 -0
- declarative_sdk_for_k-2.21.0/tests/test_enterprise_models.py +153 -0
- declarative_sdk_for_k-2.21.0/tests/test_enterprise_schema.py +367 -0
- declarative_sdk_for_k-2.21.0/tests/test_enterprise_writes.py +53 -0
- declarative_sdk_for_k-2.21.0/tests/test_epm_extended.py +211 -0
- declarative_sdk_for_k-2.21.0/tests/test_epm_manifest.py +231 -0
- declarative_sdk_for_k-2.21.0/tests/test_epm_policy.py +84 -0
- declarative_sdk_for_k-2.21.0/tests/test_epm_policy_apply.py +217 -0
- declarative_sdk_for_k-2.21.0/tests/test_epm_schema.py +276 -0
- declarative_sdk_for_k-2.21.0/tests/test_errors.py +63 -0
- declarative_sdk_for_k-2.21.0/tests/test_eso_bridge.py +337 -0
- declarative_sdk_for_k-2.21.0/tests/test_evidence_stream.py +130 -0
- declarative_sdk_for_k-2.21.0/tests/test_examples_validate.py +53 -0
- declarative_sdk_for_k-2.21.0/tests/test_exit_codes_contract.py +77 -0
- declarative_sdk_for_k-2.21.0/tests/test_field_names.py +30 -0
- declarative_sdk_for_k-2.21.0/tests/test_gateway_ha_epm.py +51 -0
- declarative_sdk_for_k-2.21.0/tests/test_governance_transfer.py +114 -0
- declarative_sdk_for_k-2.21.0/tests/test_graph.py +138 -0
- declarative_sdk_for_k-2.21.0/tests/test_h_series_gaps.py +367 -0
- declarative_sdk_for_k-2.21.0/tests/test_hcl_formats.py +126 -0
- declarative_sdk_for_k-2.21.0/tests/test_import_from_keepercmd.py +969 -0
- declarative_sdk_for_k-2.21.0/tests/test_inline_rotation_jit_apply.py +261 -0
- declarative_sdk_for_k-2.21.0/tests/test_integrations_events.py +358 -0
- declarative_sdk_for_k-2.21.0/tests/test_integrations_events_provider.py +136 -0
- declarative_sdk_for_k-2.21.0/tests/test_integrations_identity.py +334 -0
- declarative_sdk_for_k-2.21.0/tests/test_integrations_identity_provider.py +162 -0
- declarative_sdk_for_k-2.21.0/tests/test_integrations_offline.py +189 -0
- declarative_sdk_for_k-2.21.0/tests/test_interfaces.py +133 -0
- declarative_sdk_for_k-2.21.0/tests/test_itsm_gate.py +79 -0
- declarative_sdk_for_k-2.21.0/tests/test_jit_access.py +62 -0
- declarative_sdk_for_k-2.21.0/tests/test_jit_failclosed.py +125 -0
- declarative_sdk_for_k-2.21.0/tests/test_jit_models.py +65 -0
- declarative_sdk_for_k-2.21.0/tests/test_json_manifest.py +116 -0
- declarative_sdk_for_k-2.21.0/tests/test_k8s_eso.py +201 -0
- declarative_sdk_for_k-2.21.0/tests/test_k8s_eso_provider.py +173 -0
- declarative_sdk_for_k-2.21.0/tests/test_k8s_operator.py +118 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_drive_schema.py +116 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_enterprise_schema.py +237 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_integrations_events_schema.py +160 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_integrations_identity_schema.py +143 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_ksm_schema.py +85 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_pam_environment_schema.py +54 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_pam_extended_schema.py +241 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_vault_schema.py +214 -0
- declarative_sdk_for_k-2.21.0/tests/test_keeper_vault_sharing_schema.py +292 -0
- declarative_sdk_for_k-2.21.0/tests/test_keepercmd_mcp_tools.py +561 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_app_create.py +290 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_app_lifecycle.py +117 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_app_reference.py +103 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_apply_lifecycle.py +193 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_bus.py +170 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_bus_impl.py +256 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_bus_stub.py +39 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_extras.py +488 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_provider_mock.py +277 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_schema.py +323 -0
- declarative_sdk_for_k-2.21.0/tests/test_ksm_usage_report.py +318 -0
- declarative_sdk_for_k-2.21.0/tests/test_langchain_integration.py +179 -0
- declarative_sdk_for_k-2.21.0/tests/test_live_proof_artifacts.py +51 -0
- declarative_sdk_for_k-2.21.0/tests/test_live_transcript.py +114 -0
- declarative_sdk_for_k-2.21.0/tests/test_manifest.py +80 -0
- declarative_sdk_for_k-2.21.0/tests/test_manifest_errors.py +498 -0
- declarative_sdk_for_k-2.21.0/tests/test_manifest_loader_sharing.py +90 -0
- declarative_sdk_for_k-2.21.0/tests/test_manifest_schema_errors.py +169 -0
- declarative_sdk_for_k-2.21.0/tests/test_mcp_allowlist_schema.py +156 -0
- declarative_sdk_for_k-2.21.0/tests/test_mcp_models.py +62 -0
- declarative_sdk_for_k-2.21.0/tests/test_mcp_server.py +588 -0
- declarative_sdk_for_k-2.21.0/tests/test_mcp_server_extended.py +622 -0
- declarative_sdk_for_k-2.21.0/tests/test_metadata.py +72 -0
- declarative_sdk_for_k-2.21.0/tests/test_mock_provider_ai_compliance_dispatch.py +222 -0
- declarative_sdk_for_k-2.21.0/tests/test_mock_provider_extended.py +572 -0
- declarative_sdk_for_k-2.21.0/tests/test_mock_provider_pam_bridge_dispatch.py +473 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_apply.py +260 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_apply_lifecycle.py +114 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_cli.py +233 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_commander_row_map.py +88 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_diff.py +264 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_environment_p0.py +113 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_examples.py +52 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_graph.py +103 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_marker.py +149 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_mock_provider.py +451 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_models.py +231 -0
- declarative_sdk_for_k-2.21.0/tests/test_msp_planner.py +175 -0
- declarative_sdk_for_k-2.21.0/tests/test_nhi_ai_agent_schema.py +383 -0
- declarative_sdk_for_k-2.21.0/tests/test_nhi_ai_agent_schemas.py +122 -0
- declarative_sdk_for_k-2.21.0/tests/test_nhi_plan.py +138 -0
- declarative_sdk_for_k-2.21.0/tests/test_normalize.py +248 -0
- declarative_sdk_for_k-2.21.0/tests/test_obs.py +149 -0
- declarative_sdk_for_k-2.21.0/tests/test_orient_export.py +91 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_config_drift.py +275 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_db_proxy.py +207 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_extended.py +282 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_extended_apply.py +297 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_extended_plan.py +168 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_extended_schema.py +108 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_rotation_readback.py +261 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_user_saas_plugins.py +213 -0
- declarative_sdk_for_k-2.21.0/tests/test_pam_workflow_settings.py +264 -0
- declarative_sdk_for_k-2.21.0/tests/test_perf.py +152 -0
- declarative_sdk_for_k-2.21.0/tests/test_phase4a_smoke.py +483 -0
- declarative_sdk_for_k-2.21.0/tests/test_phase_b_schema.py +140 -0
- declarative_sdk_for_k-2.21.0/tests/test_phase_harness_scripts.py +75 -0
- declarative_sdk_for_k-2.21.0/tests/test_pipeline_env.py +70 -0
- declarative_sdk_for_k-2.21.0/tests/test_plan_format_flag.py +73 -0
- declarative_sdk_for_k-2.21.0/tests/test_planner.py +121 -0
- declarative_sdk_for_k-2.21.0/tests/test_policy_engine.py +152 -0
- declarative_sdk_for_k-2.21.0/tests/test_policy_scaffolds.py +306 -0
- declarative_sdk_for_k-2.21.0/tests/test_pqc_load_export.py +67 -0
- declarative_sdk_for_k-2.21.0/tests/test_pqc_policy.py +90 -0
- declarative_sdk_for_k-2.21.0/tests/test_preview_gate.py +233 -0
- declarative_sdk_for_k-2.21.0/tests/test_privileged_access_plan.py +127 -0
- declarative_sdk_for_k-2.21.0/tests/test_privileged_access_schema.py +87 -0
- declarative_sdk_for_k-2.21.0/tests/test_property_manifest_v1.py +924 -0
- declarative_sdk_for_k-2.21.0/tests/test_providers.py +112 -0
- declarative_sdk_for_k-2.21.0/tests/test_public_api_exports.py +58 -0
- declarative_sdk_for_k-2.21.0/tests/test_pulumi_provider.py +103 -0
- declarative_sdk_for_k-2.21.0/tests/test_rbi_list_fields.py +192 -0
- declarative_sdk_for_k-2.21.0/tests/test_rbi_readback.py +177 -0
- declarative_sdk_for_k-2.21.0/tests/test_rbi_upstream_gap.py +152 -0
- declarative_sdk_for_k-2.21.0/tests/test_readme_links.py +83 -0
- declarative_sdk_for_k-2.21.0/tests/test_red_team_r23.py +510 -0
- declarative_sdk_for_k-2.21.0/tests/test_redact.py +118 -0
- declarative_sdk_for_k-2.21.0/tests/test_redaction_e2e.py +191 -0
- declarative_sdk_for_k-2.21.0/tests/test_refusal.py +161 -0
- declarative_sdk_for_k-2.21.0/tests/test_rehearse_report.py +160 -0
- declarative_sdk_for_k-2.21.0/tests/test_renderer_snapshots.py +341 -0
- declarative_sdk_for_k-2.21.0/tests/test_report_commands.py +289 -0
- declarative_sdk_for_k-2.21.0/tests/test_report_role_report.py +280 -0
- declarative_sdk_for_k-2.21.0/tests/test_report_runner.py +191 -0
- declarative_sdk_for_k-2.21.0/tests/test_report_team_report.py +278 -0
- declarative_sdk_for_k-2.21.0/tests/test_report_team_roles.py +220 -0
- declarative_sdk_for_k-2.21.0/tests/test_report_vault_health.py +168 -0
- declarative_sdk_for_k-2.21.0/tests/test_resource_limits.py +247 -0
- declarative_sdk_for_k-2.21.0/tests/test_rest_provider_base.py +528 -0
- declarative_sdk_for_k-2.21.0/tests/test_rotation_policy.py +252 -0
- declarative_sdk_for_k-2.21.0/tests/test_rotation_retry.py +18 -0
- declarative_sdk_for_k-2.21.0/tests/test_rules.py +104 -0
- declarative_sdk_for_k-2.21.0/tests/test_saas_rotation_apply.py +254 -0
- declarative_sdk_for_k-2.21.0/tests/test_saas_rotation_schema.py +137 -0
- declarative_sdk_for_k-2.21.0/tests/test_schema.py +159 -0
- declarative_sdk_for_k-2.21.0/tests/test_schema_registry.py +78 -0
- declarative_sdk_for_k-2.21.0/tests/test_scim_apply.py +226 -0
- declarative_sdk_for_k-2.21.0/tests/test_scim_models.py +106 -0
- declarative_sdk_for_k-2.21.0/tests/test_scim_source_variants.py +203 -0
- declarative_sdk_for_k-2.21.0/tests/test_scim_structural_apply.py +581 -0
- declarative_sdk_for_k-2.21.0/tests/test_secret_scanner.py +249 -0
- declarative_sdk_for_k-2.21.0/tests/test_secrets_ksm.py +237 -0
- declarative_sdk_for_k-2.21.0/tests/test_security_hardening.py +265 -0
- declarative_sdk_for_k-2.21.0/tests/test_service_client.py +280 -0
- declarative_sdk_for_k-2.21.0/tests/test_service_mode.py +166 -0
- declarative_sdk_for_k-2.21.0/tests/test_shared_folder_apply.py +208 -0
- declarative_sdk_for_k-2.21.0/tests/test_shared_folder_commander.py +296 -0
- declarative_sdk_for_k-2.21.0/tests/test_shared_folder_model.py +121 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_diff_folders.py +304 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_diff_record_shares.py +244 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_diff_share_folders.py +252 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_diff_shared_folders.py +229 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_mock_provider.py +291 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_mock_provider_siblings.py +673 -0
- declarative_sdk_for_k-2.21.0/tests/test_sharing_models.py +218 -0
- declarative_sdk_for_k-2.21.0/tests/test_shim_artifact_io.py +82 -0
- declarative_sdk_for_k-2.21.0/tests/test_shim_descriptor_signatures.py +37 -0
- declarative_sdk_for_k-2.21.0/tests/test_shim_info.py +92 -0
- declarative_sdk_for_k-2.21.0/tests/test_shim_library.py +161 -0
- declarative_sdk_for_k-2.21.0/tests/test_shim_redaction.py +103 -0
- declarative_sdk_for_k-2.21.0/tests/test_siem_diff_adapter.py +104 -0
- declarative_sdk_for_k-2.21.0/tests/test_siem_provider.py +138 -0
- declarative_sdk_for_k-2.21.0/tests/test_siem_schema.py +310 -0
- declarative_sdk_for_k-2.21.0/tests/test_slack_gate.py +234 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_args.py +186 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_parallel_guard.py +277 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_profile_default_back_compat.py +115 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_profile_load.py +88 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_scenarios.py +294 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_sharing_lifecycle.py +415 -0
- declarative_sdk_for_k-2.21.0/tests/test_smoke_vault_scenarios.py +183 -0
- declarative_sdk_for_k-2.21.0/tests/test_spiffe_models.py +77 -0
- declarative_sdk_for_k-2.21.0/tests/test_spiffe_runtime.py +209 -0
- declarative_sdk_for_k-2.21.0/tests/test_stage_5_bindings.py +360 -0
- declarative_sdk_for_k-2.21.0/tests/test_sync_upstream.py +275 -0
- declarative_sdk_for_k-2.21.0/tests/test_team_role_report.py +119 -0
- declarative_sdk_for_k-2.21.0/tests/test_teams_roles_validate.py +150 -0
- declarative_sdk_for_k-2.21.0/tests/test_terraform_integration.py +139 -0
- declarative_sdk_for_k-2.21.0/tests/test_terraform_provider.py +374 -0
- declarative_sdk_for_k-2.21.0/tests/test_ticket_gate.py +150 -0
- declarative_sdk_for_k-2.21.0/tests/test_trust_chain.py +81 -0
- declarative_sdk_for_k-2.21.0/tests/test_tunnel_schema.py +128 -0
- declarative_sdk_for_k-2.21.0/tests/test_two_writer.py +196 -0
- declarative_sdk_for_k-2.21.0/tests/test_uid_ref_gate.py +80 -0
- declarative_sdk_for_k-2.21.0/tests/test_v18_gates.py +157 -0
- declarative_sdk_for_k-2.21.0/tests/test_validate_gate.py +106 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_broader.py +282 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_custom_fields.py +92 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_diff.py +475 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_diff_attachments.py +228 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_diff_keeper_fill.py +257 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_diff_record_types.py +217 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_graph.py +90 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_health.py +598 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_health_report.py +335 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_l2_typed_records.py +276 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_mock_provider.py +185 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_models.py +160 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_schema.py +281 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_shared_folder.py +543 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_sharing_schema.py +333 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_update_smoke.py +239 -0
- declarative_sdk_for_k-2.21.0/tests/test_vault_validate_semantic.py +150 -0
- declarative_sdk_for_k-2.21.0/tests/test_verify_cmd.py +147 -0
- declarative_sdk_for_k-2.21.0/tests/test_w3_ab_audit.py +150 -0
- declarative_sdk_for_k-2.21.0/tests/test_w7_families_mock.py +589 -0
- declarative_sdk_for_k-2.21.0/tests/test_workflow_apply.py +376 -0
- declarative_sdk_for_k-2.21.0/tests/test_workflow_models.py +67 -0
- declarative_sdk_for_k-2.21.0/tests/test_workflow_saas_models.py +113 -0
- declarative_sdk_for_k-2.21.0/tests/test_workflow_schema.py +78 -0
- declarative_sdk_for_k-2.21.0/webui/__init__.py +21 -0
- declarative_sdk_for_k-2.21.0/webui/server.py +1040 -0
- declarative_sdk_for_k-2.21.0/webui/static/app.js +886 -0
- declarative_sdk_for_k-2.21.0/webui/static/img/logo.svg +25 -0
- declarative_sdk_for_k-2.21.0/webui/static/index.html +430 -0
- declarative_sdk_for_k-2.21.0/webui/static/styles.css +662 -0
- declarative_sdk_for_k-2.21.0/webui/stream.py +454 -0
- declarative_sdk_for_k-2.21.0/webui/tests/__init__.py +0 -0
- declarative_sdk_for_k-2.21.0/webui/tests/test_server.py +634 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 Martin Sawczyn
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
DSK incorporates the following third-party libraries; their licenses and attributions are reproduced or referenced below.
|
|
2
|
+
|
|
3
|
+
Name: click
|
|
4
|
+
License: BSD-3-Clause
|
|
5
|
+
Copyright holder: Pallets
|
|
6
|
+
Project URL: https://github.com/pallets/click
|
|
7
|
+
|
|
8
|
+
Name: cryptography
|
|
9
|
+
License: Apache-2.0 OR BSD-3-Clause
|
|
10
|
+
Copyright holder: The Python Cryptographic Authority and individual contributors
|
|
11
|
+
Project URL: https://github.com/pyca/cryptography
|
|
12
|
+
|
|
13
|
+
Name: pydantic
|
|
14
|
+
License: MIT
|
|
15
|
+
Copyright holder: Samuel Colvin
|
|
16
|
+
Project URL: https://github.com/pydantic/pydantic
|
|
17
|
+
|
|
18
|
+
Name: networkx
|
|
19
|
+
License: BSD-3-Clause
|
|
20
|
+
Copyright holder: NetworkX Developers
|
|
21
|
+
Project URL: https://github.com/networkx/networkx
|
|
22
|
+
|
|
23
|
+
Name: pyyaml
|
|
24
|
+
License: MIT
|
|
25
|
+
Copyright holder: Kirill Simonov
|
|
26
|
+
Project URL: https://github.com/yaml/pyyaml
|
|
27
|
+
|
|
28
|
+
Name: rich
|
|
29
|
+
License: MIT
|
|
30
|
+
Copyright holder: Will McGugan
|
|
31
|
+
Project URL: https://github.com/Textualize/rich
|
|
32
|
+
|
|
33
|
+
Name: jsonschema
|
|
34
|
+
License: MIT
|
|
35
|
+
Copyright holder: Julian Berman
|
|
36
|
+
Project URL: https://github.com/python-jsonschema/jsonschema
|
|
37
|
+
|
|
38
|
+
Name: keepercommander
|
|
39
|
+
License: MIT
|
|
40
|
+
Copyright holder: Keeper Security Inc.
|
|
41
|
+
Project URL: https://github.com/Keeper-Security/Commander
|
|
42
|
+
|
|
43
|
+
Name: protobuf
|
|
44
|
+
License: BSD-3-Clause
|
|
45
|
+
Copyright holder: Google LLC
|
|
46
|
+
Project URL: https://github.com/protocolbuffers/protobuf
|
|
47
|
+
|
|
48
|
+
Name: pyotp
|
|
49
|
+
License: MIT
|
|
50
|
+
Copyright holder: Mark Percival and PyOTP contributors
|
|
51
|
+
Project URL: https://github.com/pyauth/pyotp
|
|
52
|
+
|
|
53
|
+
This notice is provided for attribution convenience and does not replace the
|
|
54
|
+
license files distributed by the third-party projects.
|
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: declarative-sdk-for-k
|
|
3
|
+
Version: 2.21.0
|
|
4
|
+
Summary: Declarative lifecycle library for Keeper tenant state — adopt, plan, apply, diff, drift-watch, audit-explain. Terraform-style workflow for Keeper PAM, vault, MSP, and KSM.
|
|
5
|
+
Author-email: Martin Sawczyn <martin@augenblik.eu>
|
|
6
|
+
Maintainer-email: Martin Sawczyn <martin@augenblik.eu>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/msawczynk/dsk
|
|
9
|
+
Project-URL: Repository, https://github.com/msawczynk/dsk
|
|
10
|
+
Project-URL: Documentation, https://msawczynk.github.io/dsk/
|
|
11
|
+
Project-URL: Issues, https://github.com/msawczynk/dsk/issues
|
|
12
|
+
Project-URL: Changelog, https://github.com/msawczynk/dsk/blob/main/CHANGELOG.md
|
|
13
|
+
Keywords: keeper,vault,pam,ksm,enterprise,declarative,iac,agents,llm,terraform-like
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
|
+
Classifier: Topic :: Security
|
|
21
|
+
Classifier: Topic :: System :: Systems Administration
|
|
22
|
+
Classifier: Intended Audience :: Developers
|
|
23
|
+
Classifier: Intended Audience :: System Administrators
|
|
24
|
+
Requires-Python: >=3.11
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
License-File: NOTICE
|
|
28
|
+
Requires-Dist: click>=8.1
|
|
29
|
+
Requires-Dist: cryptography<49,>=42
|
|
30
|
+
Requires-Dist: pydantic>=2.0
|
|
31
|
+
Requires-Dist: networkx>=3.0
|
|
32
|
+
Requires-Dist: pyyaml>=6.0
|
|
33
|
+
Requires-Dist: rich>=13.0
|
|
34
|
+
Requires-Dist: jsonschema>=4.21
|
|
35
|
+
Requires-Dist: keepercommander<19,>=18.0
|
|
36
|
+
Requires-Dist: protobuf<7,>=4.25
|
|
37
|
+
Requires-Dist: pyotp
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
41
|
+
Requires-Dist: mypy; extra == "dev"
|
|
42
|
+
Requires-Dist: ruff==0.15.10; extra == "dev"
|
|
43
|
+
Requires-Dist: bandit>=1.9; extra == "dev"
|
|
44
|
+
Requires-Dist: build; extra == "dev"
|
|
45
|
+
Requires-Dist: twine; extra == "dev"
|
|
46
|
+
Requires-Dist: types-PyYAML; extra == "dev"
|
|
47
|
+
Requires-Dist: types-jsonschema; extra == "dev"
|
|
48
|
+
Requires-Dist: hypothesis; extra == "dev"
|
|
49
|
+
Requires-Dist: pytest-benchmark; extra == "dev"
|
|
50
|
+
Requires-Dist: mutmut; extra == "dev"
|
|
51
|
+
Requires-Dist: deptry; extra == "dev"
|
|
52
|
+
Requires-Dist: mkdocs; extra == "dev"
|
|
53
|
+
Requires-Dist: mkdocs-material; extra == "dev"
|
|
54
|
+
Requires-Dist: cyclonedx-bom; extra == "dev"
|
|
55
|
+
Provides-Extra: ksm
|
|
56
|
+
Requires-Dist: keeper-secrets-manager-core<18,>=17.2.0; extra == "ksm"
|
|
57
|
+
Provides-Extra: mcp
|
|
58
|
+
Requires-Dist: mcp[cli]>=1.0.0; extra == "mcp"
|
|
59
|
+
Provides-Extra: hcl
|
|
60
|
+
Requires-Dist: python-hcl2>=4.0.0; extra == "hcl"
|
|
61
|
+
Provides-Extra: spiffe
|
|
62
|
+
Requires-Dist: PyJWT<3,>=2.8; extra == "spiffe"
|
|
63
|
+
Requires-Dist: requests<3,>=2.31; extra == "spiffe"
|
|
64
|
+
Provides-Extra: slack
|
|
65
|
+
Requires-Dist: requests<3,>=2.31; extra == "slack"
|
|
66
|
+
Provides-Extra: langchain
|
|
67
|
+
Requires-Dist: langchain<2,>=0.3; extra == "langchain"
|
|
68
|
+
Provides-Extra: service
|
|
69
|
+
Requires-Dist: cryptography<49,>=42; extra == "service"
|
|
70
|
+
Provides-Extra: webui
|
|
71
|
+
Requires-Dist: fastapi>=0.110; extra == "webui"
|
|
72
|
+
Requires-Dist: uvicorn[standard]>=0.27; extra == "webui"
|
|
73
|
+
Dynamic: license-file
|
|
74
|
+
|
|
75
|
+
# Keeper Declarative SDK (DSK)
|
|
76
|
+
|
|
77
|
+
[](https://github.com/msawczynk/dsk/actions/workflows/ci.yml)
|
|
78
|
+
[](https://pypi.org/project/declarative-sdk-for-k/)
|
|
79
|
+
[](https://www.python.org/downloads/)
|
|
80
|
+
[](LICENSE)
|
|
81
|
+
|
|
82
|
+
> **Not an official Keeper Security product.** DSK is an independent community tool. It is not endorsed by, affiliated with, or supported by Keeper Security, Inc. For official Keeper tooling see the [Keeper Terraform provider](https://registry.terraform.io/providers/Keeper-Security/keeper/latest) and [Keeper Commander](https://github.com/Keeper-Security/Commander).
|
|
83
|
+
|
|
84
|
+
## Status
|
|
85
|
+
|
|
86
|
+
DSK is in beta and being prepared for absorption into Keeper Security's
|
|
87
|
+
official tooling. See [`HANDOVER.md`](HANDOVER.md) for the absorption intent
|
|
88
|
+
and current status.
|
|
89
|
+
|
|
90
|
+
> **For Keeper executive review:** see [`docs/SHOWCASE-FOR-CRAIG.md`](docs/SHOWCASE-FOR-CRAIG.md).
|
|
91
|
+
|
|
92
|
+
- [**Demo for Keeper Engineering**](docs/CRAIG-DEMO.md) — 10-minute hands-on walkthrough
|
|
93
|
+
|
|
94
|
+
Security policy: [`SECURITY.md`](SECURITY.md). Contribution guide:
|
|
95
|
+
[`CONTRIBUTING.md`](CONTRIBUTING.md).
|
|
96
|
+
|
|
97
|
+
## What is this, in plain English?
|
|
98
|
+
|
|
99
|
+
**At a glance:** `validate` → `plan` → `apply` (see [`docs/QUICK_START.md`](docs/QUICK_START.md)), plus `import` / `export` and reports. Copy-paste examples live in [`docs/EXAMPLES.md`](docs/EXAMPLES.md) and the [`examples/`](examples/) tree. To see a keeperCMD run-dir work in five minutes, start with [`examples/01-verify-existing-rundir/`](examples/01-verify-existing-rundir/).
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
**DSK lets you describe what your Keeper tenant should look like in a YAML
|
|
103
|
+
file, then asks the SDK to make the live tenant match.**
|
|
104
|
+
|
|
105
|
+
The Python library API is two-tiered: the narrow absorption API for
|
|
106
|
+
`keeper_tenant_migrate` is documented in [`LIBRARY_API.md`](LIBRARY_API.md),
|
|
107
|
+
while the wider standalone DSK modules remain available outside that
|
|
108
|
+
absorption contract.
|
|
109
|
+
|
|
110
|
+
You write a manifest (one file, plain YAML) that lists the gateways,
|
|
111
|
+
configurations, machines, databases, vault records, KSM apps, MSP
|
|
112
|
+
companies, and policies you want. You then run three commands:
|
|
113
|
+
|
|
114
|
+
| Command | What it does | Plain-English meaning |
|
|
115
|
+
|---------|--------------|-----------------------|
|
|
116
|
+
| `dsk validate manifest.yaml` | Schema + reference + capability checks | "Is this file even legal?" |
|
|
117
|
+
| `dsk plan manifest.yaml` | Compares manifest to live tenant | "What would change if I applied this?" |
|
|
118
|
+
| `dsk apply manifest.yaml` | Executes the plan | "Make the tenant match the file." |
|
|
119
|
+
|
|
120
|
+
That's the whole loop. It is the same loop Terraform uses for cloud
|
|
121
|
+
infrastructure — DSK is the equivalent for Keeper PAM, vault, MSP, and
|
|
122
|
+
KSM. You can preview every change before it runs, and DSK only ever
|
|
123
|
+
touches records it can prove it owns (via ownership markers it writes
|
|
124
|
+
when you import or apply).
|
|
125
|
+
|
|
126
|
+
DSK is **complementary to Terraform, not a replacement.** If you already
|
|
127
|
+
use the official [Keeper Terraform provider](https://registry.terraform.io/providers/Keeper-Security/commander/latest/docs)
|
|
128
|
+
for some resources, keep using it; DSK can sit beside it for everything
|
|
129
|
+
the Terraform provider doesn't yet cover, or for teams that prefer a
|
|
130
|
+
single Python-native loop with explicit human-in-the-loop confirmation.
|
|
131
|
+
See [`docs/TERRAFORM_INTEGRATION.md`](docs/TERRAFORM_INTEGRATION.md) for
|
|
132
|
+
ownership-boundary guidance.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Why use it?
|
|
137
|
+
|
|
138
|
+
- **Reviewable change.** Every mutation is a YAML diff in a pull request.
|
|
139
|
+
- **Safe by default.** `plan` is dry-run; `apply` requires `--auto-approve`
|
|
140
|
+
or an interactive prompt; deletes need an explicit `--allow-delete`.
|
|
141
|
+
- **Mock provider for CI.** Run the full loop offline against a fake
|
|
142
|
+
tenant — no Keeper credentials needed in pull-request checks.
|
|
143
|
+
- **Live provider for production.** When you're ready, point the same
|
|
144
|
+
manifests at a real Keeper tenant via the bundled Commander
|
|
145
|
+
integration.
|
|
146
|
+
- **Typed exit codes.** CI pipelines branch on integers, not regexes.
|
|
147
|
+
- **Built for AI agents.** Every command has a `--json` mode and a
|
|
148
|
+
documented JSON contract; see [`AGENTS.md`](AGENTS.md).
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Install and verify
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
pip install declarative-sdk-for-k
|
|
156
|
+
dsk --version
|
|
157
|
+
dsk doctor
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Need a specific git ref or extras (HCL, MCP, KSM)? See
|
|
161
|
+
[`docs/INSTALLATION.md`](docs/INSTALLATION.md).
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## A walkthrough you can copy-paste
|
|
166
|
+
|
|
167
|
+
Save this as `acme-lab.yaml`:
|
|
168
|
+
|
|
169
|
+
```yaml
|
|
170
|
+
schema: pam-environment.v1
|
|
171
|
+
name: acme-lab
|
|
172
|
+
resources:
|
|
173
|
+
- uid_ref: gw.lab
|
|
174
|
+
resource_type: pamGateway
|
|
175
|
+
title: Lab Gateway
|
|
176
|
+
- uid_ref: cfg.aws
|
|
177
|
+
resource_type: pamConfiguration
|
|
178
|
+
title: AWS PAM Config
|
|
179
|
+
gateway_uid_ref: gw.lab
|
|
180
|
+
- uid_ref: db.prod
|
|
181
|
+
resource_type: pamDatabase
|
|
182
|
+
title: prod-mysql
|
|
183
|
+
pam_configuration_uid_ref: cfg.aws
|
|
184
|
+
host: prod.example.com
|
|
185
|
+
port: 3306
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Run the loop offline against the mock provider (no credentials needed):
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
dsk validate acme-lab.yaml --provider mock
|
|
192
|
+
dsk plan acme-lab.yaml --provider mock
|
|
193
|
+
dsk apply acme-lab.yaml --provider mock --auto-approve
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
`validate` confirms the file is well-formed. `plan` prints a table of
|
|
197
|
+
what would change. `apply` performs those changes against the in-memory
|
|
198
|
+
mock tenant.
|
|
199
|
+
|
|
200
|
+
When you're ready to point at the real tenant, drop `--provider mock`
|
|
201
|
+
and export the credentials (see [`docs/LOGIN.md`](docs/LOGIN.md)):
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
export KEEPER_EMAIL='you@example.com'
|
|
205
|
+
export KEEPER_PASSWORD='...'
|
|
206
|
+
export KEEPER_TOTP_SECRET='BASE32SECRET' # not the 6-digit code
|
|
207
|
+
|
|
208
|
+
dsk validate acme-lab.yaml --online
|
|
209
|
+
dsk plan acme-lab.yaml
|
|
210
|
+
dsk apply acme-lab.yaml --auto-approve
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
The five-minute walkthrough lives at
|
|
214
|
+
[`docs/QUICK_START.md`](docs/QUICK_START.md).
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Common tasks (recipe book)
|
|
219
|
+
|
|
220
|
+
### 1. "I want to see what would change without changing anything."
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
dsk plan acme-lab.yaml --json | jq '.summary'
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Exit `0` = clean, `2` = changes present, `4` = conflicts. Full JSON shape
|
|
227
|
+
in [`AGENTS.md`](AGENTS.md#json-contracts-agents-can-parse).
|
|
228
|
+
|
|
229
|
+
### 2. "I want a field-level diff before approving."
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
dsk diff acme-lab.yaml
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Secrets are redacted at the renderer; raw values never leave the process.
|
|
236
|
+
|
|
237
|
+
### 3. "I have records that already exist in Keeper. Adopt them."
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
dsk import acme-lab.yaml --dry-run # preview adoptions
|
|
241
|
+
dsk import acme-lab.yaml --auto-approve
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Adoption only matches records with no existing ownership marker.
|
|
245
|
+
|
|
246
|
+
### 4. "I want to lift an existing tenant into a manifest."
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
dsk export project.json -o acme-lab.yaml
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
`project.json` is a Commander-shaped PAM project export. The output is a
|
|
253
|
+
manifest you can edit, commit, and re-apply.
|
|
254
|
+
|
|
255
|
+
### 5. "Run a CI gate that fails on conflict but allows clean changes."
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
dsk plan acme-lab.yaml --json > plan.json
|
|
259
|
+
jq -e '.summary.conflict == 0' plan.json
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Or use the bundled [GitHub Action](.github/actions/dsk/README.md):
|
|
263
|
+
|
|
264
|
+
```yaml
|
|
265
|
+
- uses: msawczynk/dsk/.github/actions/dsk@main
|
|
266
|
+
with:
|
|
267
|
+
manifest-path: manifests/acme-lab.yaml
|
|
268
|
+
command: plan
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 6. "Watch for drift continuously."
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
DSK_PREVIEW=drift-watch dsk drift-watch manifests/*.yaml
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### 7. "Generate a compliance evidence bundle."
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
dsk bundle manifests/acme-lab.yaml -o evidence/
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### 8. "Run a Keeper Commander report from DSK with redaction."
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
dsk report password-report --quiet
|
|
287
|
+
dsk report compliance-report --node 12345
|
|
288
|
+
dsk report security-audit-report --record-details
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### 9. "Expose DSK to keeper-migrate."
|
|
292
|
+
|
|
293
|
+
Hybrid Option 3 keeps standalone DSK intact and adds a shim layer that
|
|
294
|
+
`keeper-migrate` can discover:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
dsk shim-info
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Python embedders can use:
|
|
301
|
+
|
|
302
|
+
```python
|
|
303
|
+
from dsk import shim
|
|
304
|
+
|
|
305
|
+
info = shim.shim_info()
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
See [`docs/architecture/keeper-migrate-shim-design.md`](docs/architecture/keeper-migrate-shim-design.md).
|
|
309
|
+
|
|
310
|
+
### 10. "Use it from Python, not the CLI."
|
|
311
|
+
|
|
312
|
+
```python
|
|
313
|
+
from dsk.core import (
|
|
314
|
+
load_manifest, build_graph, build_plan, compute_diff,
|
|
315
|
+
)
|
|
316
|
+
from dsk.providers import MockProvider
|
|
317
|
+
|
|
318
|
+
manifest = load_manifest("acme-lab.yaml")
|
|
319
|
+
graph = build_graph(manifest)
|
|
320
|
+
provider = MockProvider()
|
|
321
|
+
plan = build_plan(manifest, graph, provider)
|
|
322
|
+
print(f"creates={plan.summary.create} updates={plan.summary.update}")
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
More entry points (vault, MSP, KSM): see
|
|
326
|
+
[`docs/QUICK_START.md`](docs/QUICK_START.md#programmatic-load) and the
|
|
327
|
+
package overview in [`dsk/SCAFFOLD.md`](dsk/SCAFFOLD.md).
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## CLI commands at a glance
|
|
332
|
+
|
|
333
|
+
| Command | Role |
|
|
334
|
+
|---------|------|
|
|
335
|
+
| `dsk validate PATH` | Schema, references, optional `--online` tenant checks |
|
|
336
|
+
| `dsk plan PATH` | Plan vs tenant; `--json` for machine-readable |
|
|
337
|
+
| `dsk diff PATH` | Field-level diff (redacted) |
|
|
338
|
+
| `dsk apply PATH` | Execute plan; `--dry-run`, `--auto-approve`, `--allow-delete` |
|
|
339
|
+
| `dsk import PATH` | Adopt unmarked live records |
|
|
340
|
+
| `dsk import-from-keepercmd RUN_DIR` | Import keeperCMD migration run-dir into DSK manifests |
|
|
341
|
+
| `dsk verify RUN_DIR` | Verify keeperCMD run-dir audit chain, sidecars, checksums, and contract version |
|
|
342
|
+
| `dsk export FILE.json` | Commander-shaped PAM JSON → manifest YAML |
|
|
343
|
+
| `dsk discover` | List unmanaged PAM resources |
|
|
344
|
+
| `dsk scan` | Surface unmanaged identities and configuration drift |
|
|
345
|
+
| `dsk drift-watch PATH...` | Drift daemon (preview-gated) |
|
|
346
|
+
| `dsk bundle` | Compliance evidence bundle |
|
|
347
|
+
| `dsk audit explain AUDIT_LOG` | Inspect keeperCMD audit-chain events and failures |
|
|
348
|
+
| `dsk rehearse-report RUN_DIR` | Emit keeperCMD rehearsal drift report / JUnit stub |
|
|
349
|
+
| `dsk report ...` | Password / compliance / security-audit / vault-health / KSM / team / role reports |
|
|
350
|
+
| `dsk spiffe-verify` | Verify SPIFFE JWT-SVID bindings |
|
|
351
|
+
| `dsk refusal` | Run refusal policy checks on manifests |
|
|
352
|
+
| `dsk panic-revoke` | Mark emergency revocation intent in plan inputs |
|
|
353
|
+
| `dsk live-smoke` | Run the committed live-tenant smoke harness |
|
|
354
|
+
| `dsk run ...` | Commander passthrough with redaction |
|
|
355
|
+
| `dsk bootstrap-ksm` | KSM bootstrap helper |
|
|
356
|
+
| `dsk doctor` | Environment / dependency snapshot |
|
|
357
|
+
| `dsk orient` | Short orientation for agents |
|
|
358
|
+
| `dsk mcp serve` | MCP (Model Context Protocol) server |
|
|
359
|
+
| `dsk webui` | Browser-based front-end (Keeper-inspired, dark-mode toggle, streaming + cancel) |
|
|
360
|
+
|
|
361
|
+
`dsk rehearse-report` currently has a text-mode stub while D1 fixture work is
|
|
362
|
+
pending; `--format junit` emits the CI-consumable rehearsal status XML.
|
|
363
|
+
|
|
364
|
+
Every command supports `--help`. JSON shapes and exit-code contracts:
|
|
365
|
+
[`AGENTS.md`](AGENTS.md).
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## What can DSK manage?
|
|
370
|
+
|
|
371
|
+
The manifest catalog splits into two tiers. **Tier 1** families are backed by a live Keeper API today — `validate`, `plan`, and `apply` all work against a real tenant (live-smoke evidence cited per row). **Tier 2** families have a real schema and useful `validate` + `plan` output, but `apply` exits with a typed `CapabilityError` because the Keeper API doesn't exist yet, or because the family targets an external system (Slack, ITSM, SIEM, CI, OPA). Nothing silently drops; both tiers are honest about their limits.
|
|
372
|
+
|
|
373
|
+
> **Not an official Keeper Security product.** DSK is a community tool. It is not endorsed by, affiliated with, or supported by Keeper Security, Inc. For official Keeper tooling see the [Keeper Terraform provider](https://registry.terraform.io/providers/Keeper-Security/keeper/latest) and [Keeper Commander](https://github.com/Keeper-Security/Commander).
|
|
374
|
+
|
|
375
|
+
### Tier 1 — Keeper-API-backed (live-proven)
|
|
376
|
+
|
|
377
|
+
| Family | Live-smoke evidence | Status |
|
|
378
|
+
|---|---|---|
|
|
379
|
+
| `pam-environment.v1` | E2E green (28 Apr 2026) — pamMachine, pamDatabase, pamDirectory, pamRemoteBrowser | supported |
|
|
380
|
+
| `keeper-vault.v1` | vault login record create→verify→destroy (28 Apr 2026) | supported |
|
|
381
|
+
| `keeper-vault-sharing.v1` | shared folder create + membership grant (30 Apr 2026) | supported |
|
|
382
|
+
| `keeper-ksm.v1` | KSM bootstrap + app create + KsmLoginHelper (28 Apr 2026) | supported (app lifecycle preview-gated) |
|
|
383
|
+
| `msp-environment.v1` | MC add/update/remove via Commander (1 May 2026) | supported |
|
|
384
|
+
| `keeper-epm.v1` | EPM policy add/verify/delete on lab tenant (1 May 2026) | supported (watchlists/approvers upstream-gap) |
|
|
385
|
+
| `keeper-workflow.v1` | workflow create/verify/delete on lab tenant (1 May 2026) | preview-gated → supported in progress |
|
|
386
|
+
| `jit-access.v1` | pam project import jit_settings path (Commander 17.2.7+) | supported plan+apply; readback upstream-gap |
|
|
387
|
+
| `rotation-policy.v1` | PAMCreateRecordRotationCommand path (Commander 18.0.0) | supported apply; readback upstream-gap |
|
|
388
|
+
| `keeper-enterprise.v1` | offline foundation — nodes/users/roles/teams/enforcements | preview-gated (online apply pending) |
|
|
389
|
+
| `keeper-pam-extended.v1` | offline foundation — gateway configs/rotation schedules/discovery rules | preview-gated |
|
|
390
|
+
| `keeper-integrations-identity.v1` | offline foundation — domains/SCIM/SSO/outbound email | preview-gated / upstream-gap |
|
|
391
|
+
| `keeper-integrations-events.v1` | offline foundation — automator rules/audit alerts/API keys | preview-gated / upstream-gap |
|
|
392
|
+
|
|
393
|
+
### Tier 2 — Forward-spec / delivery-only (validate + plan only; apply refused)
|
|
394
|
+
|
|
395
|
+
`apply` exits with `CapabilityError` — the schema is real and produces useful plan output, but the Keeper API or target system write path does not exist yet.
|
|
396
|
+
|
|
397
|
+
| Family | Why apply is refused | Delivery target |
|
|
398
|
+
|---|---|---|
|
|
399
|
+
| `ai-act-profile.v1` | No Keeper AI-Act API | spec / OPA gate output |
|
|
400
|
+
| `dora-profile.v1` | No Keeper DORA API | spec / OPA gate output |
|
|
401
|
+
| `cmmc-profile.v1` | No Keeper CMMC API | spec / OPA gate output |
|
|
402
|
+
| `pqc-policy.v1` | No Keeper PQC API | spec |
|
|
403
|
+
| `spiffe-binding.v1` | No Keeper SPIFFE API | spec / OPA |
|
|
404
|
+
| `nhi-agent.v1` | Keeper NHI PAM API not GA | spec |
|
|
405
|
+
| `ai-token.v1` | No Keeper AI-token API | spec / external IDP |
|
|
406
|
+
| `ai-agent-trust-chain.v1` | No Keeper agent-trust API | spec |
|
|
407
|
+
| `keeper-ai-policy.v1` | No Keeper AI-policy API | spec |
|
|
408
|
+
| `agentic-skill-policy.v1` | No Keeper skill-policy API | spec / external |
|
|
409
|
+
| `agent-memory-policy.v1` | No Keeper memory-policy API | spec / external |
|
|
410
|
+
| `mcp-server-allowlist.v1` | No Keeper MCP-allowlist API | spec / OPA |
|
|
411
|
+
| `mcp-secrets-binding.v1` | No Keeper MCP-binding API | spec |
|
|
412
|
+
| `compliance-bundle.v1` | Aggregator over compliance specs above | spec |
|
|
413
|
+
| `continuous-evidence-stream.v1` | External SIEM, no Keeper API | k8s / SIEM REST |
|
|
414
|
+
| `cspm-remediation.v1` | External CSPM | external |
|
|
415
|
+
| `pipeline-ephemeral-environment.v1` | External CI | external |
|
|
416
|
+
| `cloud-jit.v1` | No multi-cloud JIT writer in Commander | preview-gated |
|
|
417
|
+
| `workflow-gate.v1` / `slack-approval-gate.v1` / `itsm-approval-gate.v1` | External Slack / ITSM | external REST |
|
|
418
|
+
| `secret-scanner-bridge.v1` | External scanner (GHAS → PAM rotation bridge) | external |
|
|
419
|
+
| `pam-connection-profile.v1` | Commander post-import mutation gap | preview-gated / upstream-gap |
|
|
420
|
+
| `db-access-policy.v1` | KeeperDB session policy live proof pending | preview-gated |
|
|
421
|
+
| `gateway-ha.v1` | No Commander HA gateway writer | preview-gated |
|
|
422
|
+
| `keeper-scim.v1` | Enterprise SCIM apply upstream-gap | preview-gated / upstream-gap |
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Providers
|
|
427
|
+
|
|
428
|
+
| Provider | Use |
|
|
429
|
+
|----------|-----|
|
|
430
|
+
| `mock` | Offline graph, deterministic UIDs, no network. Use this in CI. |
|
|
431
|
+
| `commander` | Live Keeper via the `keepercommander` Python package (pinned in `pyproject.toml`). |
|
|
432
|
+
|
|
433
|
+
Login helpers, KSM bootstrap, and custom auth: [`docs/LOGIN.md`](docs/LOGIN.md).
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Testing
|
|
438
|
+
|
|
439
|
+
- **In-repo (always current):** start with [`docs/QUICK_START.md`](docs/QUICK_START.md) and the **examples index** [`docs/EXAMPLES.md`](docs/EXAMPLES.md). Full doc set: [`docs/index.md`](docs/index.md) (also built as a [MkDocs](https://www.mkdocs.org/) site from this tree).
|
|
440
|
+
|
|
441
|
+
DSK ships with **3,500+ unit and integration tests** that exercise every
|
|
442
|
+
manifest family, every CLI subcommand, the mock provider, the Commander
|
|
443
|
+
provider's stubbed surfaces, and the JSON-output contracts. The test
|
|
444
|
+
suite is the binding contract — if a feature isn't covered by a test,
|
|
445
|
+
treat it as preview.
|
|
446
|
+
|
|
447
|
+
Run the full suite:
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
pip install -e ".[dev]"
|
|
451
|
+
pytest # full suite (~30s)
|
|
452
|
+
pytest --cov=dsk # with coverage
|
|
453
|
+
ruff check . && ruff format --check .
|
|
454
|
+
mypy dsk
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
The committed entry point for local merge gates is
|
|
458
|
+
[`scripts/phase_harness/run_local_gates.sh`](scripts/phase_harness/run_local_gates.sh).
|
|
459
|
+
CI runs the same gates plus an examples-validation matrix on every PR
|
|
460
|
+
(see [`.github/workflows/ci.yml`](.github/workflows/ci.yml)).
|
|
461
|
+
|
|
462
|
+
For live-tenant smoke runs against a real Keeper tenant, the
|
|
463
|
+
committed harness is [`scripts/smoke/`](scripts/smoke/) and the
|
|
464
|
+
runbook is [`docs/LIVE_TEST_RUNBOOK.md`](docs/LIVE_TEST_RUNBOOK.md).
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## Documentation map
|
|
469
|
+
|
|
470
|
+
| You want to... | Read |
|
|
471
|
+
|----------------|------|
|
|
472
|
+
| Install and verify | [`docs/INSTALLATION.md`](docs/INSTALLATION.md) |
|
|
473
|
+
| Five-minute walkthrough | [`docs/QUICK_START.md`](docs/QUICK_START.md) |
|
|
474
|
+
| Login and providers | [`docs/LOGIN.md`](docs/LOGIN.md) |
|
|
475
|
+
| Exit codes and validation stages | [`docs/VALIDATION_STAGES.md`](docs/VALIDATION_STAGES.md) |
|
|
476
|
+
| Honest capability matrix | [`docs/SDK_DA_COMPLETION_PLAN.md`](docs/SDK_DA_COMPLETION_PLAN.md) |
|
|
477
|
+
| Commander coverage and pin | [`docs/COMMANDER.md`](docs/COMMANDER.md) |
|
|
478
|
+
| GitHub Actions integration | [`docs/GITHUB_ACTIONS.md`](docs/GITHUB_ACTIONS.md) |
|
|
479
|
+
| Terraform side-by-side | [`docs/TERRAFORM_INTEGRATION.md`](docs/TERRAFORM_INTEGRATION.md) |
|
|
480
|
+
| Pulumi / Crossplane / k8s | [`pulumi/`](pulumi/), [`crossplane/`](crossplane/), [`kubernetes/`](kubernetes/) |
|
|
481
|
+
| Backstage plugin | [`backstage-plugin-dsk/`](backstage-plugin-dsk/) |
|
|
482
|
+
| Web UI (browser front-end, dark mode) | [`webui/`](webui/) |
|
|
483
|
+
| Agent / LLM contract | [`AGENTS.md`](AGENTS.md) |
|
|
484
|
+
| Library API and semver contract | [`LIBRARY_API.md`](LIBRARY_API.md), [`SEMVER.md`](SEMVER.md) |
|
|
485
|
+
| Glossary and naming conventions | [`docs/glossary.md`](docs/glossary.md) |
|
|
486
|
+
| ADR index | [`docs/adr/README.md`](docs/adr/README.md) |
|
|
487
|
+
| Threat model | [`docs/security/threat-model.md`](docs/security/threat-model.md) |
|
|
488
|
+
| Compliance control mapping | [`docs/compliance/control-mapping.md`](docs/compliance/control-mapping.md) |
|
|
489
|
+
| Changelog | [`CHANGELOG.md`](CHANGELOG.md) |
|
|
490
|
+
| Keeper engineer onboarding | [`docs/onboarding-for-keeper-engineers.md`](docs/onboarding-for-keeper-engineers.md) |
|
|
491
|
+
| keeperCMD run-dir tutorials | [`examples/01-verify-existing-rundir/`](examples/01-verify-existing-rundir/), [`examples/02-import-from-keepercmd/`](examples/02-import-from-keepercmd/), [`examples/03-rehearse-vs-apply/`](examples/03-rehearse-vs-apply/) |
|
|
492
|
+
| Raw keeperCMD migration guide | [`docs/migration-from-raw-keepercmd.md`](docs/migration-from-raw-keepercmd.md) |
|
|
493
|
+
| Wave 2 promotion safety | [`docs/wave2-promotion-runbook.md`](docs/wave2-promotion-runbook.md) |
|
|
494
|
+
| OUTPUT_CONTRACT v1.2 absorption | [`docs/output-contract-v1.2-absorption-runbook.md`](docs/output-contract-v1.2-absorption-runbook.md) |
|
|
495
|
+
| Per-folder scaffold (where to land work) | [`SCAFFOLD.md`](SCAFFOLD.md) |
|
|
496
|
+
| Reconciliation against design + checklists | [`RECONCILIATION.md`](RECONCILIATION.md) |
|
|
497
|
+
| Roadmap | [`docs/DSK_NEXT_WORK.md`](docs/DSK_NEXT_WORK.md) |
|
|
498
|
+
|
|
499
|
+
## Security & supply chain
|
|
500
|
+
|
|
501
|
+
Release builds publish a CycloneDX JSON SBOM as a GitHub Release artifact
|
|
502
|
+
(`sbom.json`). Generate the same file locally with:
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
pip install -e ".[dev]"
|
|
506
|
+
make sbom
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
Release artifact link pattern:
|
|
510
|
+
`https://github.com/msawczynk/dsk/releases/download/<tag>/sbom.json`
|
|
511
|
+
|
|
512
|
+
---
|
|
513
|
+
|
|
514
|
+
## Contributing
|
|
515
|
+
|
|
516
|
+
DSK is autonomous-agent friendly: every change should be reproducible by
|
|
517
|
+
running the local gates above. The agent operating manual is
|
|
518
|
+
[`AGENTS.md`](AGENTS.md). Contribution guidance is in
|
|
519
|
+
[`CONTRIBUTING.md`](CONTRIBUTING.md). Issues and PRs welcome at
|
|
520
|
+
[`msawczynk/dsk`](https://github.com/msawczynk/dsk).
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
## License
|
|
525
|
+
|
|
526
|
+
MIT — see [`LICENSE`](LICENSE).
|