~/bend-docscommunity

domain/architecture/system/deployment/nix_darwin/ops.bend checks

raw source on the hub · import 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/ops.bend as Ops

5 imports
import Base
import ./type.bend as ND
import ./service/type.bend as Sv
import ./service/ops.bend as SvO
import ../../container/type.bend as Ct

Definitions

def user source · line 7 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> String

def tailscale source · line 12 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> Bool

def services source · line 17 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/service/type.Service>

def serves source · line 22 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve>

def listeners source · line 27 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Listening>

def kept source · line 32 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> List<&2, String>

def serve_container source · line 37 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve -> String

def serve_https source · line 42 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve -> U32

def serve_port source · line 47 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve -> U32

def serve_target source · line 53 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve -> String

What Tailscale proxies a serve to.

def listening_process source · line 58 · raw

@l:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Listening -> String

def listening_processes source · line 63 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Listening> -> List<&2, String>

def tailscale_line source · line 71 · raw

@on:Bool -> String

---- the nix-darwin flake: pinned inputs, the Mac's module, and one launchd job per service ----

def flake source · line 79 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> String

lets are Nix bindings the jobs may use (e.g. a derivation); config is extra nix-darwin config lines.

def tailscale_command source · line 94 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> String

The Tailscale CLI: Nix's when Nix runs Tailscale, else the app's.

def fresh source · line 99 · raw

@+p:U32 -> @ps:List<&2, U32> -> Bool

---- laws of a system with this node ---- 0 is not a port.

def distinct source · line 102 · raw

@ps:List<&2, U32> -> Bool

def https_ports source · line 109 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve> -> List<&2, U32>

def serve_ports_distinct source · line 117 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> Bool

No two serves share a tailnet HTTPS port.

def belongs source · line 120 · raw

@l:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Listening -> @+keys:List<&2, String> -> Bool

def all_belong source · line 125 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Listening> -> @+keys:List<&2, String> -> Bool

def listeners_belong source · line 133 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> @+keys:List<&2, String> -> Bool

Every allowed listener belongs to macOS or to one of keys (the system's containers and nodes).

def services_among source · line 136 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/service/type.Service> -> @+instances:List<&2, String> -> Bool

def serves_among source · line 143 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve> -> @+instances:List<&2, String> -> Bool

def services_on source · line 151 · raw

@+nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> @+instances:List<&2, String> -> Bool

Services and serves run only containers this node runs.

def served source · line 154 · raw

@+k:String -> @xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve> -> Bool

def is_tailnet source · line 161 · raw

@e:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/container/type.Exposure -> Bool

def honest source · line 168 · raw

@c:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/container/type.Container -> @+ss:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve> -> @+instances:List<&2, String> -> Bool

def all_honest source · line 173 · raw

@cs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/container/type.Container> -> @+ss:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.Serve> -> @+instances:List<&2, String> -> Bool

def exposure_honest source · line 181 · raw

@nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> @+cs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/container/type.Container> -> @+instances:List<&2, String> -> Bool

A container on this node is on the tailnet exactly when a serve names it.

def survives_reboot source · line 185 · raw

@+nd:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/type.NixDarwin -> @auto_login_user:String -> Bool

Services that start at login need the Mac to log its user in by itself.