Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
c994081
fix: keep DcimInterface.mtu on the generic so LAG and virtual interfa…
lancamat1 Aug 31, 2026
0c29a4a
fix: pluralize cardinality-many relationship names on OrganizationMan…
lancamat1 Aug 31, 2026
4bf6d25
fix: declare LocationHosting.name identity explicitly
lancamat1 Aug 31, 2026
5ec2081
fix(ipam): align IpamPrefix.status choice order with the base status …
lancamat1 Aug 31, 2026
8119eb1
fix(ipam): give IpamPrefix.role backbone its own color
lancamat1 Aug 31, 2026
2ecaa00
fix: declare explicit uniqueness constraints behind HFIDs (CC-4)
lancamat1 Aug 31, 2026
09032e0
fix: align attribute names with CC-2 naming rules
lancamat1 Aug 31, 2026
fc52a80
fix: order uniqueness_constraints to match the namespace-first HFID
lancamat1 Aug 31, 2026
26280ad
fix(cable): give DcimCable a human_friendly_id backed by an explicit …
lancamat1 Aug 31, 2026
768d160
refactor(cluster): rename ClusterGeneric.location to locations
lancamat1 Aug 31, 2026
18aa411
refactor(compute,hosting_cluster): group compute units under a visibl…
lancamat1 Aug 31, 2026
76acca1
fix(cross_connect): align status with the base mandatory+default+pale…
lancamat1 Aug 31, 2026
223c096
fix(device_module): make DcimModuleBay.position a validated Number
lancamat1 Aug 31, 2026
faf2738
fix(device_module): give DcimGenericModule.computed_name a default Ji…
lancamat1 Aug 31, 2026
d8d2307
fix(device_psu_module): label and validate DcimPSUModuleType.wattage
lancamat1 Aug 31, 2026
f9d3211
fix(dwdm,patch_panel): restore the three connector types dropped by a…
lancamat1 Aug 31, 2026
c5931d8
fix(dwdm): keep connector_type mandatory, matching every other hardwa…
lancamat1 Aug 31, 2026
010d5b0
fix(location,rack): align the retired lifecycle choice to the base de…
lancamat1 Aug 31, 2026
235be3e
fix(patch_panel): namespace the front/rear interface relationship ide…
lancamat1 Aug 31, 2026
7dd300b
fix(rack): scope rack identity to its site and pair site/racks as Par…
lancamat1 Aug 31, 2026
2c9ce51
refactor(rack): rename facility_id to facility to match LocationSite
lancamat1 Aug 31, 2026
e7bd03d
fix(snmp): peer SnmpCommunity.devices at DcimGenericDevice
lancamat1 Aug 31, 2026
5094cc5
refactor(snmp): pluralize SnmpClient relationships and make name unique
lancamat1 Aug 31, 2026
83fcdde
refactor(tenancy): rename TenancyTenant to OrganizationTenant and pla…
lancamat1 Aug 31, 2026
cf085f4
refactor(vlan): fill IpamVLANGroupScope through the extensions mechanism
lancamat1 Aug 31, 2026
33a88df
fix: rename GenericVLAN to IpamGenericVLAN and scope VLAN-ID uniquene…
lancamat1 Aug 31, 2026
b26063a
fix(qinq): order the IpamCVLAN uniqueness constraint to match its HFID
lancamat1 Aug 31, 2026
0419281
fix: stop a VRRP virtual IP deletion from cascading into its group
lancamat1 Aug 31, 2026
8d93b7e
fix(peering_ixp): do not cascade-delete BGP sessions with their IXP c…
lancamat1 Aug 31, 2026
83f8f27
fix(snmp): follow the community and device renames in the objects file
lancamat1 Aug 31, 2026
3de8d8a
fix(topology): point experimental topology at Ipam kinds
lancamat1 Aug 31, 2026
9ce2a49
fix(circuit_service): use DcimCircuitEndpoint kind
lancamat1 Aug 31, 2026
ce79de5
fix(location_extended): use name in LocationRack human_friendly_id
lancamat1 Aug 31, 2026
3ebaac7
fix(optical_transport): compute module names from the module bay in o…
lancamat1 Aug 31, 2026
0ffcd60
fix(physical_disk): scope disk identity to its device
lancamat1 Aug 31, 2026
c40a172
fix(metadata): declare exactly the dependencies each extension uses
lancamat1 Aug 31, 2026
606714f
feat(metadata): declare mutual exclusivity between overlapping extens…
lancamat1 Aug 31, 2026
487b876
fix(tasks): derive demo schema load order from .metadata.yml
lancamat1 Aug 31, 2026
351f655
fix: correct stale and copy-pasted descriptions and comments
lancamat1 Aug 31, 2026
8e9f4f9
fix: normalize choice values, labels and status colors
lancamat1 Aug 31, 2026
6d319fc
fix: declare relationship kind explicitly everywhere
lancamat1 Aug 31, 2026
b6eb488
fix: normalize order_weight to the base scheme
lancamat1 Aug 31, 2026
4ca4498
chore: state optional explicitly on every attribute and relationship
lancamat1 Aug 31, 2026
0793d6c
feat: state menu intent explicitly and give routing nodes a menu path
lancamat1 Aug 31, 2026
a1dfcbc
fix(routing_bgp): make RoutingBGPSession.role optional
lancamat1 Aug 31, 2026
3951058
fix(objects): unquote DcimModuleBay positions
lancamat1 Aug 31, 2026
36cd64f
fix(objects): reference cardinality-many peers by HFID list
lancamat1 Aug 31, 2026
d423b85
fix(objects): stop circuit restating the location_minimal region tree
lancamat1 Aug 31, 2026
eb4444b
docs: regenerate schema reference pages
lancamat1 Aug 31, 2026
b0c03b3
fix(objects): correct stale PSU bay comment and align duplicated prov…
lancamat1 Aug 31, 2026
a773b73
fix: keep node and attribute descriptions within the 128 character limit
lancamat1 Aug 31, 2026
0d7f002
fix(physical_disk): make the device name resolvable for the disk HFID
lancamat1 Aug 31, 2026
de993e8
fix(objects): make circuit objects self-sufficient for standalone loads
lancamat1 Aug 31, 2026
5c3d044
fix(objects): stop later files clearing the MLAG domain membership
lancamat1 Aug 31, 2026
5a1fa55
fix(objects): keep the VRRP fixture on interfaces it owns
lancamat1 Aug 31, 2026
af2ced0
fix(docs): keep the trailing newline when generating the home page
lancamat1 Aug 31, 2026
745bcc0
chore: convert remaining TODO markers to issues
lancamat1 Sep 1, 2026
9d18a53
fix: drop the default_value optionality note from the base schemas (r…
lancamat1 Sep 2, 2026
d15aaf8
fix: order uniqueness_constraints most selective first (review sugges…
lancamat1 Sep 2, 2026
0e164cc
fix: apply selective-first uniqueness ordering across the schema file…
lancamat1 Sep 2, 2026
70f177c
fix: use >- for every description that does not fit on one line (revi…
lancamat1 Sep 2, 2026
6235820
fix(cable): keep DcimCable.label optional while it backs the HFID (re…
lancamat1 Sep 2, 2026
168c168
fix(ipam): drop the supernet prefix role now that aggregates have the…
lancamat1 Sep 2, 2026
8a7730c
docs: regenerate schema reference pages
lancamat1 Sep 2, 2026
0b690f7
feat(device_module): restore a status on modules
lancamat1 Sep 2, 2026
edbcebd
refactor(users): remove the account model pending a field-driven design
lancamat1 Sep 2, 2026
5140d24
docs: regenerate schema reference pages
lancamat1 Sep 2, 2026
233a727
fix(objects): move the Acme Networks organization into the base mock …
lancamat1 Sep 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 39 additions & 32 deletions .metadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,12 @@ experimental/optical_transport:
experimental/location_extended:
dependencies:
- base
description:
This schema extension is the most detailed when it comes to location,
you'll find all the layers you can think of.
exclusive_with:
- extensions/rack
description: >-
This schema extension is the most detailed when it comes to location, you'll find all the
layers you can think of. It defines its own hierarchical Location.Rack, incompatible with
the flat one extensions/rack defines, so load one or the other, not both.
name: Location Extended
experimental/modules_linecards:
dependencies:
Expand Down Expand Up @@ -90,6 +93,7 @@ experimental/security:
experimental/topology:
dependencies:
- base
- extensions/vlan
description:
A schema for defining and managing network topology, strategies, and
services.
Expand Down Expand Up @@ -119,7 +123,6 @@ extensions/cable:
extensions/circuit:
dependencies:
- base
- extensions/location_minimal
description:
This schema extension contains Circuits and ways to connect them with
your infrastructure! The circuit could be a fiber connecting two sites, you would
Expand Down Expand Up @@ -167,8 +170,9 @@ experimental/firewall_policer:
dependencies:
- base
description:
This schema extension contains models for VMs. You might consider Cluster
or/and Hypervisor extension to go with!
This schema extension contains models for traffic policers and the classes
and rules that reference them, so you can describe rate limiting alongside
the interfaces it is applied to.
name: Firewall Policer
extensions/hosting_cluster:
dependencies:
Expand Down Expand Up @@ -199,13 +203,22 @@ extensions/lag:
extensions/location_minimal:
dependencies:
- base
description:
This schema extension is minimal but will provide you with basic items
to store location related data.
exclusive_with:
- extensions/location_site
description: >-
This schema extension is minimal but will provide you with basic items to store location
related data, as a Region -> Country -> Site hierarchy. It defines the same Location.Site
node as extensions/location_site, so load one or the other, not both. Note that
LocationGeneric.name is unique across every location kind, so a name used at one tier
cannot be reused at another; a single-country deployment therefore enters the hierarchy at
Country (with Region as the national node) rather than duplicating a country under several
regions.
name: Location Minimal
extensions/location_site:
dependencies:
- base
exclusive_with:
- extensions/location_minimal
description: >-
This schema extension introduces a standalone Location.Site node (with facility,
physical address, timezone, and status). It defines the same Site node as
Expand Down Expand Up @@ -245,18 +258,17 @@ extensions/device_psu_module:
extensions/patch_panel:
dependencies:
- base
- extensions/device_module
description: |
This schema extension allows you to capture patch panel related information like rear/front interfaces and mapping between them. You can insert the patch panel into a rack and leverage the device type model. Finally you can also capture information about potential modules you would insert into your patch panel.
This schema extension allows you to capture patch panel related information like rear/front interfaces and mapping between them. You can insert the patch panel into a rack and leverage the device type model. Cassettes and other inserts are tracked as regular device modules in module bays, through extensions/device_module.

NOTE: This extension is compatible with all sort of connectors, meaning you can plug cable, circuits, cross-connect to front & rear interfaces!
name: Patch Panel
extensions/peering_ixp:
dependencies:
- base
- extensions/routing
- extensions/routing_bgp
- extensions/routing_bgp_community
- extensions/routing_policies
- extensions/routing_policies_bgp
description:
This schema extension contains all you need to model anything revolving
Expand All @@ -273,24 +285,30 @@ extensions/physical_disk:
extensions/rack:
dependencies:
- base
- extensions/location_minimal
description:
- extensions/location_site
exclusive_with:
- experimental/location_extended
description: >-
This schema extension introduces a Rack model representing a physical equipment
rack installed at a site. Racks can be placed at a LocationSite and can host devices
and other equipment.
and other equipment. LocationRack needs a Location.Site: extensions/location_site is
declared above as the smallest provider, but extensions/location_minimal provides the
same node as part of its hierarchy and satisfies the rack equally, load whichever
suits, never both. LocationRack is also defined, hierarchically and incompatibly, by
experimental/location_extended, so load one or the other, not both.
name: Rack
extensions/qinq:
dependencies:
- base
- extensions/vlan
description:
This schema extension brings extensions to VLAN model in order to support
QinQ.
This schema extension adds the Service VLAN and Customer VLAN nodes needed
to model QinQ on top of the VLAN extension.
name: QinQ
extensions/routing:
dependencies:
- base
- extensions/vlan
- extensions/vrf
description:
This schema extension contains generics to create Routing Protocol
"Instance". The idea is to create one Routing Protocol instance per IpamVRF +
Expand All @@ -313,13 +331,12 @@ extensions/routing_bgp:
extensions/routing_bgp_community:
dependencies:
- base
- extensions/routing
- extensions/routing_policies
description: This schema extension adds the BGP Communities models.
name: Routing BGP Community
extensions/routing_bgp_rr:
dependencies:
- base
- extensions/routing
- extensions/routing_bgp
description:
This schema extension extend the BGP extension to add BGP Route Reflector
Expand Down Expand Up @@ -349,17 +366,14 @@ extensions/routing_policies:
extensions/routing_policies_aggregate:
dependencies:
- base
- extensions/routing
- extensions/routing_policies
- extensions/routing_aggregate
description:
This extension is using the Routing Policies extensions and the Routing
Aggregate one together.
name: Routing Policies Aggregate
extensions/routing_policies_bgp:
dependencies:
- base
- extensions/routing
- extensions/routing_policies
- extensions/routing_bgp
description:
Expand All @@ -369,7 +383,6 @@ extensions/routing_policies_bgp:
extensions/routing_policies_ospf:
dependencies:
- base
- extensions/routing
- extensions/routing_policies
- extensions/routing_ospf
description:
Expand All @@ -379,7 +392,6 @@ extensions/routing_policies_ospf:
extensions/routing_policies_pim:
dependencies:
- base
- extensions/routing
- extensions/routing_policies
- extensions/routing_pim
description:
Expand All @@ -406,8 +418,8 @@ extensions/snmp:
- base
description:
This schema extension contains models for SNMP Communities and SNMP
Clients. As you can see this extension is not linked to Tenancy or Device, as
you could decide to link the Community to different models based on your use case.
Clients. A community links to the devices it is configured on; any further
wiring, to a tenant for instance, is left to you.
name: SNMP
extensions/tenancy:
dependencies:
Expand All @@ -418,11 +430,6 @@ extensions/tenancy:
`tenancy.yml` for an example of how to extend tenancy onto optional extension
nodes such as `DcimCircuit`.
name: Tenancy
extensions/users:
dependencies:
- base
description: This schema extension contains models for account management.
name: Users
extensions/vlan:
dependencies:
- base
Expand Down
Loading
Loading