Skip to content

[SDM Compliance] SDM compliance report #4

@leanderdruwel-skyline

Description

@leanderdruwel-skyline

SDM Compliance Report — Example-Event-Management-Backend

Generated by sdm-compliance-check.agent.md (v2 — storage flexibility update)
Branch scanned: completed


Detected storage path: Auto-generated DOM
Models use [SdmDomStorage] + Skyline.DataMiner.SDM (bundled CodeGenerator). Generated mapper EventDomMapper.g.cs confirmed present.


sdm / tier-1-foundational

# Check Status Notes
T1-1 Skyline.DataMiner.SDM or SDM.Abstractions referenced ✅ Compliant Skyline.DataMiner.SDM v1.0.1 in EventManagement.Backend.csproj; Skyline.DataMiner.SDM.SourceGenerator.Runtime v1.0.1 in EventManagement.Installer.csproj
T1-2 Data models inherit from SdmObject<T> ✅ Compliant Event : SdmObject<Event> in EventManagement.Backend/Models/Event.cs
T1-3 Each model has storage binding ✅ Compliant Event carries [SdmDomStorage("exampleventmgmt")]; generated EventDomMapper.g.cs confirms code generator ran
T1-4 [GenerateExposers] on all [SdmDomStorage] models ✅ Compliant Present on Event
T1-5 Auto-generated storage mappers present ✅ Compliant EventManagement.Shared/Maps/EventDomMapper.g.cs — generated by Skyline.DataMiner.SDM.CodeGenerator
T1-6 Custom repository completeness N/A No custom repositories — solution uses auto-generated DOM path only

Result: ✅ 0 errors · 0 warnings · 1 N/A


sdm / tier-2-encapsulated

# Check Status Notes
T2-1 API helper interface exists ✅ Compliant IEventApiHelper exposes IBulkRepository<Event> Events
T2-2 API helper class implements interface + IConnection ✅ Compliant EventApiHelper(IConnection) initialises Events = new EventDomRepository(connection)
T2-3 Backend structurally separate from installer/scripts ✅ Compliant EventManagement.Backend.csproj is a Microsoft.NET.Sdk library; installer is a separate Skyline.DataMiner.Sdk package project
T2-4 Storage initialisation script exists ✅ Compliant EventManagement.Installer: DomInstaller.InstallDefaultContent() sets up DOM module + section definitions. Installer also validates SDM is pre-installed as a prerequisite (best-practice ✅)
T2-5 Unit tests using repository mock infrastructure ✅ Compliant RepositoryTests uses DomConnectionMock + DomSLNetMessageHandler from Skyline.DataMiner.Utils.DOM

Result: ✅ 0 errors · 0 warnings


sdm / tier-3-federated

# Check Status Notes
T3-1 Backend project packaged as NuGet ✅ Compliant <GeneratePackageOnBuild>True</GeneratePackageOnBuild>, <PackageVersion>1.0.1</PackageVersion>
T3-2 Package ID follows Skyline.DataMiner.* convention ✅ Compliant AssemblyName = Skyline.DataMiner.Learning.EventManagement
T3-3 SDM Solution Registration referenced and used ⚠️ Non-compliant [WARNING] No reference to SLC-SDM-Registration in any .csproj and no SdmRegistrar usage found. Other solutions cannot discover this solution through the federated SDM mesh.
T3-4 User-Defined API (UDAPI) exposes models N/A No [OnApiTrigger] or SDM.UserDefinedApi found — acceptable for a learning/example repo
T3-5 GQI ad-hoc data source exposes models N/A No GQI project found — acceptable for a learning/example repo
T3-6 LINQ support enabled (IQueryableRepository<T>) N/A Not implemented — consumers use FilterElement<T> directly via IBulkRepository<Event>

Result: ⚠️ 0 errors · 1 warning · 3 N/A


SDM Compliance Summary

Detected storage path: Auto-generated DOM

Tier Status Errors Warnings
Tier 1 — Foundational ✅ Compliant 0 0
Tier 2 — Encapsulated ✅ Compliant 0 0
Tier 3 — Federated ⚠️ Partial 0 1

Highest fully compliant tier: Tier 2

SDM Models detected

Model class Storage type [GenerateExposers] Repository interface Mapper / impl
Event DOM auto-gen ("exampleventmgmt") IBulkRepository<Event> (generated) EventDomMapper.g.cs

Priority Actions

  1. [T3-3 WARNING] Add SLC-SDM-Registration as a package reference and call SdmRegistrar.RegisterSolution(...) + SdmRegistrar.RegisterModels(...) during installation. This registers the solution with the federated SDM mesh, enabling cross-solution discovery and ObjectLinking. Without it, other DataMiner solutions cannot detect that EventManagement is installed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions