domain/architecture/ops.bend checks
raw source on the hub · import 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/ops.bend as Ops
25 imports
import Base import ../../general/rose/type.bend as R import ../../general/rose/ops.bend as RO import ../../general/compound/type.bend as C import ../../general/compound/ops.bend as CO import ../../general/compound/edge/type.bend as E import ./relationship/type.bend as Rel import ./system/type.bend as S import ./system/container/type.bend as Ct import ./system/container/component/type.bend as Co import ./system/deployment/type.bend as D import ./environment/type.bend as En import ./environment/party/type.bend as P import ./environment/external/type.bend as X import ./environment/constraint/type.bend as K import ./system/release/ops.bend as RlO import ./category/type.bend as K2 import ./environment/inventory/type.bend as I import ./environment/inventory/ops.bend as InvO import ./environment/agreement/type.bend as G import ./system/deployment/host/type.bend as H import ./system/deployment/nix_darwin/ops.bend as NDO import ./system/deployment/nix_darwin/type.bend as ND import ./system/deployment/nix_darwin/setting/ops.bend as StO import ./type.bend as A
Definitions
def uses_edges source · line 29 · raw
@+src:String -> @us:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/relationship/type.Relationship> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
---- the architecture as a compound graph: the system's tree, the environment's leaves, and every element's relationships as edges from it ----
def language_name source · line 38 · raw
@l:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/component/type.Language -> String
def technology source · line 58 · raw
@+vs:List<&2, String> -> @+fs:List<&2, String> -> @+ls:List<&2, String> -> String
A container's technology, as drawn: its frameworks and languages, else its vendors.
def component_roses source · line 61 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/component/type.Component> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/rose/type.Rose<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>>
def component_edges source · line 70 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/component/type.Component> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
def container_roses source · line 79 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/rose/type.Rose<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>>
def container_edges source · line 88 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
def party_rose source · line 97 · raw
@p:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/party/type.Party -> 0xc4f31b1cf377fad1ed5191443ddd1c20/general/rose/type.Rose<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>
def party_edges source · line 106 · raw
@p:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/party/type.Party -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
def parties_roses source · line 115 · raw
@ps:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/party/type.Party> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/rose/type.Rose<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>>
def parties_edges source · line 122 · raw
@ps:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/party/type.Party> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
def external_roses source · line 129 · raw
@xs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/external/type.External> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/rose/type.Rose<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>>
def external_edges source · line 138 · raw
@xs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/external/type.External> -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
def with_env source · line 147 · raw
@sys:0xc4f31b1cf377fad1ed5191443ddd1c20/general/rose/type.Rose<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element> -> @+cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> @env:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/type.Environment -> 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/type.Compound<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>
def to_compound source · line 153 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/type.Compound<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element>
def system source · line 161 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/type.System
---- looking things up ----
def system_key source · line 166 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> String
def containers source · line 173 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container>
def deployment source · line 180 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Deployment
def deployment_nodes source · line 187 · raw
@d:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Deployment -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node>
def nodes source · line 193 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node>
The machines, nested.
def keys source · line 196 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, String>
def container_keys source · line 199 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> List<&2, String>
def component_keys source · line 208 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/component/type.Component> -> List<&2, String>
def all_component_keys source · line 218 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> List<&2, String>
Every component key in the system.
def components_of source · line 228 · raw
@+k:String -> @cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> List<&2, String>
The components inside one container.
def environment_keys source · line 237 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, String>
def instances source · line 245 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> List<&2, String>
---- well formed: keys are unique, every relationship and every instance names something that exists ----
def all_listed source · line 254 · raw
@xs:List<&2, String> -> @+ks:List<&2, String> -> Bool
def compound_ok source · line 261 · raw
@+c:0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/type.Compound<0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Element> -> Bool
def well_formed source · line 264 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def ours source · line 268 · raw
@o:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Ownership -> Bool
---- only our own containers are opened up into components ----
def components_ours source · line 275 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> Bool
def private source · line 285 · raw
@e:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Exposure -> Bool
---- on a server, everything is reachable only from the machine itself or over the tailnet ----
def exposure_private source · line 294 · raw
@+k:String -> @cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> Bool
def all_private source · line 303 · raw
@ins:List<&2, String> -> @+cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> Bool
def is_server source · line 310 · raw
@r:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Role -> Bool
def nodes_private source · line 317 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> @+cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> Bool
def servers_private source · line 326 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def open_source_required source · line 330 · raw
@ks:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/constraint/type.Constraint> -> Bool
---- open source: a system its environment requires to be open source publishes from a public repository ----
def open_source source · line 341 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def is_device source · line 349 · raw
@r:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Role -> Bool
---- where each key runs: the containers on server nodes and on device nodes ----
def keep_all source · line 356 · raw
@c:Bool -> @xs:List<&2, String> -> @rest:List<&2, String> -> List<&2, String>
def on_servers source · line 363 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> List<&2, String>
def on_devices source · line 372 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> List<&2, String>
def home source · line 382 · raw
@+k:String -> @cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> String
The container a key belongs to: itself, or the one its component sits in, else the key itself.
def exposure_of source · line 391 · raw
@+k:String -> @cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Exposure
def is_tailnet source · line 400 · raw
@e:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Exposure -> Bool
def is_local source · line 407 · raw
@e:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Exposure -> Bool
def edges source · line 414 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge>
def via_tailnet source · line 418 · raw
@es:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge> -> @+cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> @+servers:List<&2, String> -> @+devices:List<&2, String> -> Bool
---- a device reaches a server only over the tailnet ----
def devices_via_tailnet source · line 428 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def reached source · line 432 · raw
@+k:String -> @es:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge> -> @+cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> @+devices:List<&2, String> -> Bool
---- on a server, a container is on the tailnet exactly when a device reaches it, else local ----
def follows_reach source · line 441 · raw
@r:Bool -> @e:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Exposure -> Bool
def reach_ok source · line 448 · raw
@ks:List<&2, String> -> @+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def exposure_follows_reach source · line 455 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def cap_eq source · line 459 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> @b:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> Bool
---- capabilities: who provides each, and how many do ----
def has_cap source · line 472 · raw
@+want:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> @cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability> -> Bool
def one_if source · line 479 · raw
@b:Bool -> Nat
def container_providers source · line 486 · raw
@+want:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> @cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> List<&2, String>
def external_providers source · line 495 · raw
@+want:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> @xs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/external/type.External> -> List<&2, String>
def externals source · line 504 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/external/type.External>
def providers source · line 512 · raw
@+want:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> @+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> List<&2, String>
The containers and outside systems that provide a capability.
def provided source · line 515 · raw
@+want:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Capability -> @+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Nat
def private_hosts source · line 519 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> Nat
How many containers host the app privately: Hosting, on the tailnet.
def private_hosting source · line 528 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Nat
def is_data_api source · line 531 · raw
@c:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/category/type.Category -> Bool
def data_apis source · line 539 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> Nat
The system's own data APIs. "Exactly one" means one store.
def own_data_apis source · line 548 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Nat
def reports source · line 568 · raw
@+k:String -> @es:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/general/compound/edge/type.Edge> -> @+cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> @+obs:List<&2, String> -> Bool
---- observed: everything we build reports to an observability provider ----
def built_observed source · line 577 · raw
@cs:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/container/type.Container> -> @+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def observed source · line 587 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def inventory source · line 591 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/inventory/type.Inventory
---- the environment's inventory and agreement ----
def agreement source · line 598 · raw
@a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/agreement/type.Agreement
def host_ok source · line 606 · raw
@h:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/host/type.Host -> @+name:String -> @+inv:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/inventory/type.Inventory -> Bool
---- every server and device is the owner's, or on its vendor's cloud ----
def nodes_owned source · line 615 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> @+inv:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/environment/inventory/type.Inventory -> Bool
def owned_nodes source · line 624 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def firewall_typed source · line 629 · raw
@nd:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> Bool
---- every nix-darwin node: its serve ports are distinct, its services and serves run what it hosts, a container on it is on the tailnet exactly when it is served, and its listeners belong to something ----
def node_keys source · line 634 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> List<&2, String>
def darwin_ok source · line 643 · raw
@p:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Platform -> @+ins:List<&2, String> -> @+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def darwin_nodes_ok source · line 651 · raw
@ns:List<&2, 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/deployment/type.Node> -> @+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool
def nix_darwin_ok source · line 660 · raw
@+a:0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/type.Architecture -> Bool