Skip to content

AgentRegistryService — DDL appendix

Generated from the architecture model

This page is rendered from model/**/*.yaml by tools/docs_model during mkdocs build. Edit the YAML, not this page; hand-written design lives on the linked service, platform and plane pages.

Dialect shown: SQL Server (nvarchar, uniqueidentifier, datetimeoffset). Migrations are authored as FluentMigrator classes in the service's DatabaseModel.Migrations project; the TenantId column and the NHibernate tenant filter follow canonical ADR-0100 in SharedDb mode.

dbo.AssetReleases

Owner: AssetRelease

CREATE TABLE [dbo].[AssetReleases] (
    [ReleaseId] nvarchar(256) NOT NULL,
    [TenantId] nvarchar(64) NOT NULL,
    [AssetKind] int NOT NULL,
    [AssetId] nvarchar(128) NOT NULL,
    [Version] nvarchar(64) NOT NULL,
    [State] int NOT NULL,
    [SourceRepository] nvarchar(512) NOT NULL,
    [SourceCommit] nvarchar(64) NOT NULL,
    [ManifestHash] nvarchar(128) NOT NULL,
    [ManifestRef] nvarchar(512) NOT NULL,
    [EvaluationRecordRef] nvarchar(512) NULL,
    [ApprovalId] uniqueidentifier NULL,
    [PublishedAt] datetimeoffset NULL,
    [PublishedBy] nvarchar(256) NULL,
    [RowVersion] rowversion NOT NULL,
    CONSTRAINT [PK_AssetReleases] PRIMARY KEY ([ReleaseId])
);
CREATE UNIQUE INDEX [UX_Releases_Tenant_Asset_Version] ON [dbo].[AssetReleases] ([TenantId], [AssetKind], [AssetId], [Version]);
CREATE INDEX [IX_Releases_State] ON [dbo].[AssetReleases] ([TenantId], [AssetKind], [State]);
Column Type Null Key Description
ReleaseId nvarchar(256) no PK
TenantId nvarchar(64) no
AssetKind int no
AssetId nvarchar(128) no
Version nvarchar(64) no
State int no
SourceRepository nvarchar(512) no
SourceCommit nvarchar(64) no
ManifestHash nvarchar(128) no
ManifestRef nvarchar(512) no Blob reference of the manifest JSON.
EvaluationRecordRef nvarchar(512) yes
ApprovalId uniqueidentifier yes
PublishedAt datetimeoffset yes
PublishedBy nvarchar(256) yes
RowVersion rowversion no

dbo.ReleaseClosure

Owner: ClosureEntry

CREATE TABLE [dbo].[ReleaseClosure] (
    [ReleaseId] nvarchar(256) NOT NULL,
    [DepKind] int NOT NULL,
    [DepAssetId] nvarchar(128) NOT NULL,
    [TenantId] nvarchar(64) NOT NULL,
    [DepVersion] nvarchar(64) NOT NULL,
    [DepHash] nvarchar(128) NOT NULL,
    CONSTRAINT [PK_ReleaseClosure] PRIMARY KEY ([ReleaseId], [DepKind], [DepAssetId])
);
ALTER TABLE [dbo].[ReleaseClosure] ADD CONSTRAINT [FK_ReleaseClosure_AssetReleases_ReleaseId] FOREIGN KEY ([ReleaseId]) REFERENCES [dbo].[AssetReleases] ([ReleaseId]);
Column Type Null Key Description
ReleaseId nvarchar(256) no PK FK → AssetReleases.ReleaseId
DepKind int no PK
DepAssetId nvarchar(128) no PK
TenantId nvarchar(64) no
DepVersion nvarchar(64) no
DepHash nvarchar(128) no

dbo.ReleaseAliases

Owner: Alias

CREATE TABLE [dbo].[ReleaseAliases] (
    [TenantId] nvarchar(64) NOT NULL,
    [AssetKind] int NOT NULL,
    [AssetId] nvarchar(128) NOT NULL,
    [Name] nvarchar(32) NOT NULL,
    [ReleaseId] nvarchar(256) NOT NULL,
    [MovedAt] datetimeoffset NOT NULL,
    [MovedBy] nvarchar(256) NOT NULL,
    CONSTRAINT [PK_ReleaseAliases] PRIMARY KEY ([TenantId], [AssetKind], [AssetId], [Name])
);
ALTER TABLE [dbo].[ReleaseAliases] ADD CONSTRAINT [FK_ReleaseAliases_AssetReleases_ReleaseId] FOREIGN KEY ([ReleaseId]) REFERENCES [dbo].[AssetReleases] ([ReleaseId]);
Column Type Null Key Description
TenantId nvarchar(64) no PK
AssetKind int no PK
AssetId nvarchar(128) no PK
Name nvarchar(32) no PK
ReleaseId nvarchar(256) no FK → AssetReleases.ReleaseId
MovedAt datetimeoffset no
MovedBy nvarchar(256) no