feat(m9/T32c): schema-library CRUD commands + handlers + Central UI page + read-accessor

This commit is contained in:
Joseph Doherty
2026-06-18 12:32:31 -04:00
parent 71d5722692
commit 71a2bca4df
13 changed files with 1363 additions and 0 deletions
@@ -0,0 +1,17 @@
namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Management;
// M9-T32c — schema-library authoring commands. The reusable named JSON-Schema
// library (the SharedSchema entity + ISharedSchemaRepository, T32a) gains its CRUD
// surface here. These records travel the same HTTP / ClusterClient management
// boundary as every other *Command and are auto-discovered by reflection in
// ManagementCommandRegistry (no manual registry entry needed).
//
// Gating mirrors the SharedScript / DataConnection idiom: list/get are read-only
// (any authenticated user), create/update/delete are Designer-gated. Name is unique;
// SchemaJson must parse as a JSON Schema (validated server-side in the handler).
public record ListSharedSchemasCommand;
public record GetSharedSchemaCommand(int SharedSchemaId);
public record CreateSharedSchemaCommand(string Name, string? Scope, string SchemaJson);
public record UpdateSharedSchemaCommand(int SharedSchemaId, string Name, string? Scope, string SchemaJson);
public record DeleteSharedSchemaCommand(int SharedSchemaId);