Claude 24f816b6a3
Consolidate 22 sibling repos into layered organism structure
Place useful parts of the surrounding repos into sica-fondt by layer, per the
body model (Ada = membrane; brain/endocrine/capabilities/knowledge non-Ada):

- brain/        LLM reasoning + providers (dapr, hermes, MoMoA)
- capabilities/ REPRAG sidecars: hermes tools/skills, dapr tools, parallel
                dispatch, A51 channels, and the OSINT cluster
- knowledge/    LORAG corpus: 754 cyber-skills, agency personas, secure-coding,
                MITRE ATT&CK data
- reference/    defensive threat-reference (C3, shhbruh doc) + AdaYaml parser

License handling: AGPL sources (worldosint, advanced_evolution, mercury,
Reticulum) and GPL DeTTECT are SPEC-only clean-room/port descriptions — no
copyleft code copied. MIT/Apache/data parts copied as working trees.

Safety: shhbruh escape/persistence material and C3 covert-C2 kept as reference
only, not wired into the running organism. See CONSOLIDATION.md.

https://claude.ai/code/session_01UehUqEXXJJCsHoA4voCU5c
2026-06-10 06:53:01 +00:00

1.9 KiB

API Reference: Azure AD PIM Audit Agent

Dependencies

Library Version Purpose
requests >=2.28 HTTP client for Microsoft Graph API

CLI Usage

python scripts/agent.py \
  --tenant-id YOUR_TENANT_ID \
  --client-id YOUR_CLIENT_ID \
  --client-secret YOUR_SECRET \
  --output-dir /reports/ \
  --output pim_report.json

Functions

PIMClient(tenant_id, client_id, client_secret)

Authenticates via OAuth2 client credentials flow to Microsoft Graph API.

list_role_definitions() -> list

GET /roleManagement/directory/roleDefinitions - Available directory roles.

list_eligible_assignments() -> list

GET /roleManagement/directory/roleEligibilityScheduleInstances - PIM eligible roles.

list_active_assignments() -> list

GET /roleManagement/directory/roleAssignmentScheduleInstances - Active assignments.

list_role_settings() -> list

GET /policies/roleManagementPolicyAssignments - PIM policy configurations.

audit_permanent_assignments(active, eligible) -> list

Identifies permanent role assignments not managed via PIM eligible workflow.

compute_pim_coverage(active, eligible) -> dict

Calculates percentage of assignments managed through PIM.

Microsoft Graph Endpoints

Endpoint Purpose
POST /oauth2/v2.0/token Client credentials auth
GET /roleManagement/directory/roleDefinitions Role catalog
GET /roleManagement/directory/roleEligibilityScheduleInstances Eligible assignments
GET /roleManagement/directory/roleAssignmentScheduleInstances Active assignments

Output Schema

{
  "coverage": {"active_assignments": 15, "eligible_assignments": 42, "pim_coverage_pct": 73.7},
  "permanent_assignments": [{"role": "Global Administrator", "recommendation": "Convert to eligible"}],
  "recommendations": ["Convert 5 permanent assignments to PIM-eligible"]
}