refactor(registry): add stable uid registry

This commit was merged in pull request #64.
This commit is contained in:
2026-08-25 21:45:56 -04:00
parent 622d09818f
commit f45aa44ead
12 changed files with 259 additions and 154 deletions

View File

@@ -1,4 +1,4 @@
{ lib }:
{ lib, ... }:
{
type = lib.types.str;
}

View File

@@ -1,4 +1,4 @@
{ lib }:
{ lib, ... }:
{
type = lib.types.submodule {
options = {

View File

@@ -1,4 +1,4 @@
{ lib }:
{ lib, ... }:
let
entryType = lib.types.submodule {
options = {

31
registry/stable-uid.nix Normal file
View File

@@ -0,0 +1,31 @@
{ lib, ... }:
let
inherit (lib)
filterAttrs
groupBy
mapAttrs
unique
;
serviceNamesByUid = entries:
mapAttrs (_uid: uidEntries: unique (map (entry: entry.entry) uidEntries)) (
groupBy (entry: toString entry.value) entries
);
duplicateUids = entries:
filterAttrs (_uid: serviceNames: builtins.length serviceNames > 1) (serviceNamesByUid entries);
in
{
# Next stable UID: 20003
replicate = true;
type = lib.types.ints.positive;
validate = entries: [
{
assertion = duplicateUids entries == { };
message = "Stable UID allocations must be unique.";
}
];
}