dbml_sharepoint.generators.assessgen
assess.js and assess-manifest.md
Site-assessment generator: read-only assess.js + assess-manifest.md.
Derives a pack's deployment requirements from its schema+mapping and emits a browser-console script that probes a target site for them across three tiers (always-run enumerations, pack-driven attempt-probes, and a printed not-assessable honesty block). STRICTLY read-only — see the read-only guarantee test. Spec: docs/plans/2026-07-24-tenant-assessment-design.md.
Requirement
@dataclass
class Requirement:
key: str
description: str
level_on_fail: str
Requirement(key: str, description: str, level_on_fail: str)
assess_targets
def assess_targets(schema: dbml_sharepoint.model.parser.Schema, bundle: dbml_sharepoint.model.mapping_loader.MappingBundle, site_role: str) -> dict[str, typing.Any]
The data-driven inputs the assess.js probes loop over.
derive_requirements
def derive_requirements(schema: dbml_sharepoint.model.parser.Schema, bundle: dbml_sharepoint.model.mapping_loader.MappingBundle, site_role: str) -> list[dbml_sharepoint.generators.assessgen.Requirement]
The pack's site requirements, worst-case severity on probe failure.
NOT_ASSESSABLE
NOT_ASSESSABLE = ('Power Automate / Power Apps inventory (lives in Power Platform APIs, no SharePoint REST surface from site context)', 'Audit settings (SSOM-only; not exposed via CSOM/REST)', 'Information-barrier seg…
generate_assess_js
def generate_assess_js(*, schema: dbml_sharepoint.model.parser.Schema, bundle: dbml_sharepoint.model.mapping_loader.MappingBundle, release: dbml_sharepoint.model.release.Release, site_url: str, site_role: str, source_dbml: str, generated_at: str) -> str
generate_assess_manifest
def generate_assess_manifest(*, schema: dbml_sharepoint.model.parser.Schema, bundle: dbml_sharepoint.model.mapping_loader.MappingBundle, site_url: str, site_role: str) -> str