{"id":21,"date":"2026-11-02T11:40:36","date_gmt":"2026-11-02T11:40:36","guid":{"rendered":"https:\/\/observatory.global\/software\/explainer\/"},"modified":"2026-11-02T11:43:22","modified_gmt":"2026-11-02T11:43:22","slug":"explainer","status":"publish","type":"page","link":"https:\/\/observatory.global\/software\/explainer\/","title":{"rendered":"Software: explainer"},"content":{"rendered":"<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/kit-fonts.css?ver=99e42e7aa6ec\">\n<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/kit.css?ver=99e42e7aa6ec\">\n<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/i18n.css?ver=99e42e7aa6ec\">\n<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/chrome.css?ver=99e42e7aa6ec\">\n<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/x.css?ver=99e42e7aa6ec\">\n<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/3d.css?ver=99e42e7aa6ec\">\n<link rel=\"stylesheet\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/view-x-software.css?ver=99e42e7aa6ec\">\n<div class=\"nxo-view\" data-nxo-view=\"x-software\" data-nxo-bundle=\"99e42e7aa6ec\"><div class=\"nxo-ssr\" data-nxo-snap> <main><section><p><b>UNENROLLED<\/b><\/p><p><b>DISCOVERED<\/b><\/p><p><b>ATTESTING<\/b><\/p><p><b>IDENTITY_ISSUED<\/b><\/p><p><b>POLICY_BOUND<\/b><\/p><p><b>PLAN_STAGED<\/b><\/p><p><b>LOCAL_READY<\/b><\/p><p><b>DEGRADED<\/b><\/p><p><b>QUARANTINED<\/b><\/p><p><b>REVOKED<\/b><\/p> <p><b>Plan v2<\/b> <em>\u00b7 signed, immutable<\/em><\/p><p><b>Instrument<\/b> <em>\u00b7 observing<\/em><\/p><p><b>Site<\/b> <em>\u00b7 journal, lease<\/em><\/p><p><b>Fleet controller<\/b><\/p> <p><em>10 km<\/em><\/p><p><em>20 km<\/em><\/p><p><em>30 km<\/em><\/p><p><em>40 km<\/em><\/p> <p><b>Mast<\/b><\/p> <p>Building the scene\u2026<\/p> <nav aria-label=\"Chapters\"><span>01<\/span><span>02<\/span><span>03<\/span><span>04<\/span><span>05<\/span><span>06<\/span><\/nav> <article><p>Software \u00b7 Explainer<\/p> <div role=\"heading\" aria-level=\"1\" class=\"nxo-ssr-h1\">The node agent, at work.<\/div> <p>A node agent that enrols, attests and updates every node. A fleet view that shows each node with its state, its plan and its evidence. Signed plans that roll out in waves and roll back on their own. A journal that keeps observing when the link drops.<\/p> <dl><dt>Enrolment states<\/dt><dd>10<\/dd> <dt>Transitions<\/dt><dd>42<\/dd> <dt>Protocol flows<\/dt><dd>12<\/dd> <dt>Standards drawn on<\/dt><dd>48<\/dd> <\/dl> <nav aria-label=\"Chapters\"><span><b>01<\/b>Enrolment<\/span><span><b>02<\/b>Fleet<\/span><span><b>03<\/b>Signed plans<\/span><span><b>04<\/b>Store and forward<\/span><span><b>05<\/b>the NXS Observatory app<\/span><span><b>06<\/b>Integrations<\/span><\/nav> <\/article> <article><p><b>01<\/b> \u00b7 Enrolment<\/p> <h2>No implicit trust. Ten states.<\/h2> <p>A node boots with nothing but its hardware. It is discovered, attests with measured boot evidence, receives an identity, binds a signed policy and stages a plan before it may run anything. Pick an outcome and run it; each move shows the guard that allowed it.<\/p> <p>Outcome<\/p> <p>Run<\/p> <dl><dt>State<\/dt><dd>UNENROLLED<\/dd> <dt>Last guard<\/dt><dd>\u2013<\/dd> <dt>Transitions in the machine<\/dt><dd>\u2013<\/dd> <\/dl> <\/article> <article><p><b>02<\/b> \u00b7 Fleet<\/p> <h2>Every node, its state, its evidence.<\/h2> <p>The fleet view is a projection built from evidence, not from labels nodes report about themselves. Filter by state and watch nodes move as plans land and links come and go.<\/p> <p>Show<\/p> <\/article> <article><p><b>03<\/b> \u00b7 Signed plans<\/p> <h2>Waves, health gates, a way back.<\/h2> <p>A release is built from controlled source with an SBOM and provenance, signed, compiled into an immutable plan and rolled out in waves inside a blast-radius limit. Every node verifies the plan, applies it, checks health and keeps its last known-good state.<\/p> <dl><dt>Nodes on the new plan<\/dt><dd>\u2013<\/dd> <dt>Rolled back<\/dt><dd>\u2013<\/dd> <dt>Nodes exposed to the fault<\/dt><dd>\u2013<\/dd> <\/dl> <\/article> <article><p><b>04<\/b> \u00b7 Store and forward<\/p> <h2>The link drops. The site keeps observing.<\/h2> <p>When the central path is lost, the site keeps operating inside its authority lease, journaling events with their identities unchanged. On reconnect it sends a replay batch; dispositions come back per event and conflicts stay explicit.<\/p> <dl><dt>Connectivity state<\/dt><dd>CONNECTED<\/dd> <dt>Events journaled<\/dt><dd>\u2013<\/dd> <dt>State at reconnect<\/dt><dd>\u2013<\/dd> <\/dl> <\/article> <article><p><b>05<\/b> \u00b7 the NXS Observatory app<\/p> <h2>Plan the site before a bolt is turned.<\/h2> <p>the NXS Observatory app models a site as a team: where the mast goes, what it can reach, which instruments fall inside the radio horizon. Over a smooth Earth with standard refraction the horizon is d = 3.57 (\u221a(k\u00b7h\u2081) + \u221a(k\u00b7h\u2082)) km, k = 4\/3; over real terrain, line of sight decides.<\/p> <dl><dt>Radio horizon<\/dt><dd>\u2013<\/dd> <dt>Instruments inside it<\/dt><dd>\u2013<\/dd> <\/dl> <\/article> <article><p><b>06<\/b> \u00b7 Integrations<\/p> <h2>Typed contracts to the systems you run.<\/h2> <p>The runtime speaks the standards the observing world already uses, so SCADA, GIS and data platforms connect by contract, not by custom glue. Pick a standard to see the role the protocol gives it.<\/p> <dl><dt>Standard<\/dt><dd>\u2013<\/dd> <dt>Standards the protocol draws on<\/dt><dd>\u2013<\/dd> <\/dl> <\/article> <\/section> <\/main> <footer><p><a href=\"\/\">Nexus Observatory<\/a><b>Software<\/b>. One runtime. Every node. Every state.<a href=\"\/contact\/\">Talk to us<\/a><\/p><p>Software<\/p><ul><li><a href=\"\/software\/edge-runtime\/\">Edge runtime<\/a><\/li><li><a href=\"\/software\/node-agent\/\">Node agent<\/a><\/li><li><a href=\"\/software\/fleet\/\">Fleet<\/a><\/li><li><a href=\"\/software\/field-apps\/\">Field apps<\/a><\/li><li><a href=\"\/software\/studio-workspace\/\">app workspace<\/a><\/li><li><a href=\"\/software\/integrations\/\">Integrations<\/a><\/li><\/ul><p>Technologies<\/p><ul><li><a href=\"\/technologies\/edge\/edge-tiers-and-multi-access-edge-computing\/\">Edge tiers and multi-access edge computing<\/a><\/li><li><a href=\"\/technologies\/edge\/modular-edge-data-centres-and-the-ai-tower-in-a-box\/\">Modular edge data centres and the AI tower in a box<\/a><\/li><li><a href=\"\/technologies\/data\/ingest-and-streaming\/\">Ingest and streaming<\/a><\/li><li><a href=\"\/technologies\/data\/storage-and-data-lakes\/\">Storage and data lakes<\/a><\/li><\/ul><p>Industries<\/p><ul><li><a href=\"\/industries\/government\/\">Government<\/a><\/li><li><a href=\"\/industries\/resilience\/\">Civil resilience<\/a><\/li><li><a href=\"\/industries\/industry\/\">Industry<\/a><\/li><\/ul><p>Service platforms<\/p><ul><li><a href=\"\/protocol\/\">Observatory Protocol<\/a><\/li><li><a href=\"\/grid-services\/\">Protocol &amp; Grid<\/a><\/li><li><a href=\"\/hardware\/\">Hardware &amp; power<\/a><\/li><li><a href=\"\/sensors\/\">Sensors &amp; instruments<\/a><\/li><li><a href=\"\/connectivity\/\">Connectivity<\/a><\/li><li><a href=\"\/edge-ai\/\">Edge compute &amp; AI<\/a><\/li><li><a href=\"\/earth-observation\/\">Earth observation &amp; GeoAI<\/a><\/li><\/ul> <p>\u00a9 2026 Nexus Observatory Inc.<\/p><nav aria-label=\"Legal\"><a href=\"\/legal\/privacy\/\">Privacy<\/a><a href=\"\/legal\/terms\/\">Terms<\/a><a href=\"\/legal\/accessibility\/\">Accessibility<\/a><a href=\"\/privacy-choices\/\">Cookie settings<\/a><a href=\"\/credits\/\">Data credits<\/a><\/nav> <\/footer>\n<\/div><!--\/nxo-ssr--><main>\n<section class=\"xs\" id=\"story\" aria-label=\"Interactive software explainer\">\n  <div class=\"stage\" id=\"stage\">\n    <canvas id=\"c\" tabindex=\"0\" aria-label=\"3D view of the software explainer. Drag or use the arrow keys to turn the scene.\"><\/canvas>\n    <div class=\"hud\" id=\"hud\"><\/div>\n    <div class=\"loading\" id=\"loading\">Building the scene\u2026<\/div>\n    <nav class=\"rail\" id=\"rail\" aria-label=\"Chapters\"><\/nav>\n    <div class=\"attr\" id=\"attr\" hidden><\/div>\n  <\/div>\n  <div class=\"chapters\" id=\"chapters\">\n    <article class=\"ch intro\" id=\"top\"><div class=\"in\">\n      <div class=\"hrow\"><span class=\"eyebrow\">Software \u00b7 Explainer<\/span><\/div>\n      <h1>The node agent, at work.<\/h1>\n      <p class=\"lede\">A node agent that enrols, attests and updates every node. A fleet view that shows each node with its state, its plan and its evidence. Signed plans that roll out in waves and roll back on their own. A journal that keeps observing when the link drops.<\/p>\n      <dl class=\"facts\" id=\"facts\"><\/dl>\n      <nav class=\"toc\" id=\"toc\" aria-label=\"Chapters\"><\/nav>\n    <\/div><\/article>\n\n    <article class=\"ch\" id=\"enrol\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>01<\/b> \u00b7 Enrolment<\/span><\/div>\n      <h2>No implicit trust. Ten states.<\/h2>\n      <p>A node boots with nothing but its hardware. It is discovered, attests with measured boot evidence, receives an identity, binds a signed policy and stages a plan before it may run anything. Pick an outcome and run it; each move shows the guard that allowed it.<\/p>\n      <div class=\"ctl\"><span class=\"lab\" id=\"oL\">Outcome<\/span><span><\/span><div class=\"seg full\" role=\"group\" aria-labelledby=\"oL\" id=\"outc\"><\/div><\/div>\n      <div class=\"ctl\"><span class=\"lab\">Run<\/span><button type=\"button\" class=\"tbtn\" id=\"run1\">Run enrolment<\/button><\/div>\n      <ol class=\"steps\" id=\"estp\"><\/ol>\n      <dl class=\"ro\">\n        <div><dt>State<\/dt><dd id=\"eS\" class=\"r\">UNENROLLED<\/dd><\/div>\n        <div><dt>Last guard<\/dt><dd id=\"eG\">\u2013<\/dd><\/div>\n        <div><dt>Transitions in the machine<\/dt><dd id=\"eT\">\u2013<\/dd><\/div>\n      <\/dl>\n    <\/div><\/article>\n\n    <article class=\"ch\" id=\"fleet\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>02<\/b> \u00b7 Fleet<\/span><\/div>\n      <h2>Every node, its state, its evidence.<\/h2>\n      <p>The fleet view is a projection built from evidence, not from labels nodes report about themselves. Filter by state and watch nodes move as plans land and links come and go.<\/p>\n      <div class=\"ctl\"><span class=\"lab\" id=\"fL\">Show<\/span><span><\/span><div class=\"seg sm full\" role=\"group\" aria-labelledby=\"fL\" id=\"ffil\"><\/div><\/div>\n      <div class=\"ctl\"><label for=\"fN\">Fleet size<\/label><output id=\"fNO\" for=\"fN\"><\/output><input class=\"full\" type=\"range\" id=\"fN\" min=\"60\" max=\"1200\" step=\"20\" value=\"480\"><\/div>\n      <dl class=\"ro\" id=\"fro\"><\/dl>\n    <\/div><\/article>\n\n    <article class=\"ch\" id=\"rollout\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>03<\/b> \u00b7 Signed plans<\/span><\/div>\n      <h2>Waves, health gates, a way back.<\/h2>\n      <p>A release is built from controlled source with an SBOM and provenance, signed, compiled into an immutable plan and rolled out in waves inside a blast-radius limit. Every node verifies the plan, applies it, checks health and keeps its last known-good state.<\/p>\n      <div class=\"ctl\"><label for=\"cy\">Canary<\/label><output id=\"cyO\" for=\"cy\"><\/output><input class=\"full\" type=\"range\" id=\"cy\" min=\"1\" max=\"20\" step=\"1\" value=\"5\"><\/div>\n      <div class=\"ctl\"><label for=\"wv\">Waves after the canary<\/label><output id=\"wvO\" for=\"wv\"><\/output><input class=\"full\" type=\"range\" id=\"wv\" min=\"2\" max=\"6\" step=\"1\" value=\"4\"><\/div>\n      <div class=\"ctl\"><label class=\"chk\"><input type=\"checkbox\" id=\"flt\"> A fault surfaces in wave 2<\/label><button type=\"button\" class=\"tbtn\" id=\"run3\">Roll out<\/button><\/div>\n      <ol class=\"steps\" id=\"rstp\"><\/ol>\n      <dl class=\"ro\">\n        <div><dt>Nodes on the new plan<\/dt><dd id=\"rN\">\u2013<\/dd><\/div>\n        <div><dt>Rolled back<\/dt><dd id=\"rB\">\u2013<\/dd><\/div>\n        <div><dt>Nodes exposed to the fault<\/dt><dd id=\"rX\" class=\"r\">\u2013<\/dd><\/div>\n      <\/dl>\n    <\/div><\/article>\n\n    <article class=\"ch\" id=\"offline\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>04<\/b> \u00b7 Store and forward<\/span><\/div>\n      <h2>The link drops. The site keeps observing.<\/h2>\n      <p>When the central path is lost, the site keeps operating inside its authority lease, journaling events with their identities unchanged. On reconnect it sends a replay batch; dispositions come back per event and conflicts stay explicit.<\/p>\n      <div class=\"ctl\"><label for=\"od\">Outage<\/label><output id=\"odO\" for=\"od\"><\/output><input class=\"full\" type=\"range\" id=\"od\" min=\"0\" max=\"100\" step=\"1\" value=\"45\"><\/div>\n      <div class=\"ctl\"><label for=\"ol\">Authority lease<\/label><output id=\"olO\" for=\"ol\"><\/output><input class=\"full\" type=\"range\" id=\"ol\" min=\"1\" max=\"72\" step=\"1\" value=\"12\"><\/div>\n      <div class=\"ctl\"><label for=\"orate\">Events per minute<\/label><output id=\"orO\" for=\"orate\"><\/output><input class=\"full\" type=\"range\" id=\"orate\" min=\"1\" max=\"600\" step=\"1\" value=\"120\"><\/div>\n      <div class=\"ctl\"><label class=\"chk\"><input type=\"checkbox\" id=\"ocf\"> The same plan was edited centrally<\/label><button type=\"button\" class=\"tbtn\" id=\"run4\">Cut the link<\/button><\/div>\n      <ol class=\"steps\" id=\"ostp\"><\/ol>\n      <dl class=\"ro\">\n        <div><dt>Connectivity state<\/dt><dd id=\"oS\" class=\"r\">CONNECTED<\/dd><\/div>\n        <div><dt>Events journaled<\/dt><dd id=\"oE\">\u2013<\/dd><\/div>\n        <div><dt>State at reconnect<\/dt><dd id=\"oR\">\u2013<\/dd><\/div>\n      <\/dl>\n    <\/div><\/article>\n\n    <article class=\"ch\" id=\"studio\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>05<\/b> \u00b7 the NXS Observatory app<\/span><\/div>\n      <h2>Plan the site before a bolt is turned.<\/h2>\n      <p>the NXS Observatory app models a site as a team: where the mast goes, what it can reach, which instruments fall inside the radio horizon. Over a smooth Earth with standard refraction the horizon is d = 3.57 (\u221a(k\u00b7h\u2081) + \u221a(k\u00b7h\u2082)) km, k = 4\/3; over real terrain, line of sight decides.<\/p>\n      <div class=\"ctl\"><label for=\"mh\">Mast height<\/label><output id=\"mhO\" for=\"mh\"><\/output><input class=\"full\" type=\"range\" id=\"mh\" min=\"5\" max=\"120\" step=\"1\" value=\"40\"><\/div>\n      <div class=\"ctl\"><label for=\"rh\">Instrument antenna height<\/label><output id=\"rhO\" for=\"rh\"><\/output><input class=\"full\" type=\"range\" id=\"rh\" min=\"1\" max=\"30\" step=\"1\" value=\"3\"><\/div>\n      <dl class=\"ro\">\n        <div><dt>Radio horizon<\/dt><dd id=\"sH\" class=\"r\">\u2013<\/dd><\/div>\n        <div><dt>Instruments inside it<\/dt><dd id=\"sI\">\u2013<\/dd><\/div>\n      <\/dl>\n    <\/div><\/article>\n\n    <article class=\"ch\" id=\"integ\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>06<\/b> \u00b7 Integrations<\/span><\/div>\n      <h2>Typed contracts to the systems you run.<\/h2>\n      <p>The runtime speaks the standards the observing world already uses, so SCADA, GIS and data platforms connect by contract, not by custom glue. Pick a standard to see the role the protocol gives it.<\/p>\n      <div class=\"chips\" id=\"ichips\" role=\"group\" aria-label=\"Standards\"><\/div>\n      <dl class=\"ro\">\n        <div><dt>Standard<\/dt><dd id=\"iN\" class=\"r\">\u2013<\/dd><\/div>\n        <div><dt>Standards the protocol draws on<\/dt><dd id=\"iC\">\u2013<\/dd><\/div>\n      <\/dl>\n      <p id=\"iR\" style=\"margin-top:12px\"><\/p>\n    <\/div><\/article>\n    <article class=\"ch\" id=\"scale\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>07<\/b> \u00b7 Scale<\/span><\/div>\n      <h2>One block, repeated from a node to the globe.<\/h2>\n      <p>The smallest unit is one node running one agent. A site is a few nodes sharing a journal and a clock; a cluster is several sites behind one controller; a region is clusters on a shared backbone; the global network is regions federated by contract. Each level reuses the same enrolment, plans and evidence, so growth adds copies of a known block rather than new kinds of system.<\/p>\n      <p class=\"cite\"><span>Sources<\/span> <span data-no-i18n><a href=\"https:\/\/doi.org\/10.1145\/2741948.2741964\" rel=\"noopener\">Verma et al., \u201cLarge-scale cluster management at Google with Borg\u201d, EuroSys 2015<\/a><\/span><\/p>\n    <\/div><\/article>\n    <article class=\"ch\" id=\"telemetry\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>08<\/b> \u00b7 Telemetry<\/span><\/div>\n      <h2>Signals the fleet can reason about.<\/h2>\n      <p>Each agent emits metrics, logs and traces in the vendor-neutral OpenTelemetry format, tagged with the node\u2019s identity and the plan it runs. A collector at the site batches and filters them before they cross the link, and the fleet keeps what operators actually query. Because the format is open, the same signals feed the console and any monitoring system a customer already runs.<\/p>\n      <p class=\"cite\"><span>Sources<\/span> <span data-no-i18n><a href=\"https:\/\/opentelemetry.io\/docs\/specs\/otel\/\" rel=\"noopener\">OpenTelemetry specification<\/a>; <a href=\"https:\/\/opentelemetry.io\/docs\/collector\/\" rel=\"noopener\">OpenTelemetry Collector<\/a><\/span><\/p>\n    <\/div><\/article>\n    <article class=\"ch\" id=\"supply\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>09<\/b> \u00b7 Supply chain<\/span><\/div>\n      <h2>Every artefact traces back to its source.<\/h2>\n      <p>A release comes from a scripted, hosted build that records what went in and how. Its provenance and a software bill of materials travel with the artefact, bound to it by the signature, and a node refuses anything that does not verify. The practice follows the secure software development framework and the SLSA levels for build integrity.<\/p>\n      <p class=\"cite\"><span>Sources<\/span> <span data-no-i18n><a href=\"https:\/\/csrc.nist.gov\/pubs\/sp\/800\/218\/final\" rel=\"noopener\">NIST SP 800-218, Secure Software Development Framework, version 1.1<\/a>; <a href=\"https:\/\/slsa.dev\/spec\/v1.0\/\" rel=\"noopener\">SLSA specification, version 1.0<\/a><\/span><\/p>\n    <\/div><\/article>\n    <article class=\"ch\" id=\"operations\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>10<\/b> \u00b7 Operations<\/span><\/div>\n      <h2>A large fleet, run by exception.<\/h2>\n      <p>At fleet scale the console works by exception. Service level objectives define what healthy means; an error budget decides whether a rollout may continue or must pause; routine work that grows with the fleet is automated rather than staffed. A fault opens one work order with its evidence attached, so the technician arrives knowing which part and which plan were involved.<\/p>\n      <p class=\"cite\"><span>Sources<\/span> <span data-no-i18n><a href=\"https:\/\/sre.google\/sre-book\/service-level-objectives\/\" rel=\"noopener\">Beyer, Jones, Petoff and Murphy (eds.), Site Reliability Engineering, O\u2019Reilly, 2016, \u201cService Level Objectives\u201d<\/a>; <a href=\"https:\/\/sre.google\/sre-book\/eliminating-toil\/\" rel=\"noopener\">Beyer, Jones, Petoff and Murphy (eds.), Site Reliability Engineering, O\u2019Reilly, 2016, \u201cEliminating Toil\u201d<\/a><\/span><\/p>\n    <\/div><\/article>\n    <article class=\"ch\" id=\"lifecycle\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>11<\/b> \u00b7 Lifecycle<\/span><\/div>\n      <h2>From first boot to retirement.<\/h2>\n      <p>A node\u2019s software life has five moves: it enrols, runs its plan, takes signed updates, recovers to its last known-good state after a fault and is finally retired, its identity revoked and its keys destroyed. Platform firmware resiliency guidance describes the same arc underneath: protect the image, detect corruption and recover, so a bad update never becomes a permanent outage.<\/p>\n      <p class=\"cite\"><span>Sources<\/span> <span data-no-i18n><a href=\"https:\/\/csrc.nist.gov\/pubs\/sp\/800\/193\/final\" rel=\"noopener\">NIST SP 800-193, Platform Firmware Resiliency Guidelines<\/a><\/span><\/p>\n    <\/div><\/article>\n    <article class=\"ch\" id=\"asks\"><div class=\"card\">\n      <div class=\"hd\"><span class=\"eyebrow\"><b>12<\/b> \u00b7 Buyers\u2019 questions<\/span><\/div>\n      <h2>What buyers ask before they commit.<\/h2>\n      <p>Can we leave and take our data? Records stay in open formats behind typed contracts, so they export without translation. What happens offline? The site keeps observing inside its lease. Who can change a node? Only a signed plan within policy. What will an auditor see? Signed receipts per node and per release. Supply chain risk guidance frames these as questions every acquirer should ask.<\/p>\n      <p class=\"cite\"><span>Sources<\/span> <span data-no-i18n><a href=\"https:\/\/csrc.nist.gov\/pubs\/sp\/800\/161\/r1\/final\" rel=\"noopener\">NIST SP 800-161 Rev. 1, Cybersecurity Supply Chain Risk Management Practices for Systems and Organizations<\/a><\/span><\/p>\n    <\/div><\/article>\n  <\/div>\n<\/section>\n\n<\/main><noscript><nav class=\"nxo-related\" aria-labelledby=\"nxo-related-h\"><div class=\"w\"><p class=\"eyebrow\">Across the network<\/p><h2 id=\"nxo-related-h\">Related on Nexus Observatory<\/h2><div class=\"nxo-related-g\"><section><h3>Software<\/h3><ul><li><a href=\"\/software\/\">Software overview<\/a><\/li><li><a href=\"\/software\/edge-runtime\/\">Edge runtime<\/a><\/li><li><a href=\"\/software\/node-agent\/\">Node agent<\/a><\/li><li><a href=\"\/software\/fleet\/\">Fleet<\/a><\/li><li><a href=\"\/software\/field-apps\/\">Field apps<\/a><\/li><li><a href=\"\/software\/studio-workspace\/\">app workspace<\/a><\/li><li><a href=\"\/software\/integrations\/\">Integrations<\/a><\/li><li><a href=\"\/software\/areas\/\">Software: areas<\/a><\/li><li><a href=\"\/software\/technologies\/\">Software: technologies<\/a><\/li><li><a href=\"\/software\/architecture\/\">Software: architecture<\/a><\/li><li><a href=\"\/software\/industries\/\">Software: industries served<\/a><\/li><li><a href=\"\/software\/resources\/\">Software: resources<\/a><\/li><\/ul><\/section><section><h3>Industries served<\/h3><ul><li><a href=\"\/industries\/government\/\">Government and national programmes<\/a><\/li><li><a href=\"\/industries\/resilience\/\">Critical infrastructure and civil resilience<\/a><\/li><li><a href=\"\/industries\/industry\/\">Manufacturing and industrial sites<\/a><\/li><\/ul><\/section><section><h3>Technology domains<\/h3><ul><li><a href=\"\/technologies\/edge\/\">Compute and edge<\/a><\/li><li><a href=\"\/technologies\/data\/\">Data, software and interoperability<\/a><\/li><\/ul><\/section><section><h3>Related platforms<\/h3><ul><li><a href=\"\/protocol\/\">Observatory Protocol<\/a><\/li><li><a href=\"\/data-products\/\">Data &amp; licensing<\/a><\/li><li><a href=\"\/edge-ai\/\">Edge compute &amp; AI<\/a><\/li><li><a href=\"\/#lines\">Operations centre<\/a><\/li><li><a href=\"\/grid-services\/\">Protocol &amp; Grid<\/a><\/li><li><a href=\"\/sensors\/\">Sensors &amp; instruments<\/a><\/li><li><a href=\"\/connectivity\/\">Connectivity<\/a><\/li><li><a href=\"\/field-services\/\">Field services<\/a><\/li><li><a href=\"\/hardware\/\">Hardware &amp; power<\/a><\/li><\/ul><\/section><\/div><\/div><\/nav><footer class=\"legal\"><div class=\"w\"><div>\u00a9 2026 Nexus Observatory Inc.<\/div><div><b>Legal<\/b><br><a href=\"https:\/\/observatory.global\/legal\/privacy\/\">Privacy notice<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/legal\/terms\/\">Terms of use<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/legal\/cookies\/\">Cookie policy<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/legal\/accessibility\/\">Accessibility<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/official-languages\/\">Official languages<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/notices\/\">Notices<\/a><\/div><div><b>Company<\/b><br><a href=\"https:\/\/observatory.global\/about\/\">About<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/consortium\/\">Open governance<\/a> \u00b7 <a href=\"https:\/\/observatory.global\/contact\/\">Contact<\/a><\/div><\/div><\/footer><\/noscript><\/div>\n<script type=\"application\/json\" id=\"nxo-config\">{\"base\":\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/\",\"search\":\"\",\"view\":\"x-software\",\"links\":{\"$comment\":\"Network link map with the industry sites as main-site hubs (docs\/28 option): industry pages under \/industries\/{id}\/, platforms on their subsites. Build with --links \\u0022master=links.main.json,*=links.hubs.json\\u0022.\",\"pages\":{\"master.html\":\"\/\",\"index.html\":\"\/\",\"protocol.html\":\"https:\/\/nexusobservatory.com\/\",\"spectrum.html\":\"\/spectrum\/\",\"geo.html\":\"\/earth\/\",\"atlas.html\":\"\/observatories\/\",\"learn.html\":\"\/learn\/\",\"open.html\":\"\/open\/\",\"consortium.html\":\"\/consortium\/\",\"about.html\":\"\/about\/\",\"contact.html\":\"\/contact\/\",\"sitemap.html\":\"\/about\/\",\"legal.html?doc=privacy\":\"\/legal\/privacy\/\",\"legal.html?doc=cookies\":\"\/legal\/cookies\/\",\"legal.html?doc=terms\":\"\/legal\/terms\/\",\"legal.html?doc=accessibility\":\"\/legal\/accessibility\/\",\"legal.html?doc=languages\":\"\/official-languages\/\",\"legal.html?doc=trademarks\":\"\/trademarks\/\",\"legal.html?doc=notices\":\"\/notices\/\",\"legal.html\":\"\/legal\/\",\"privacy-choices.html\":\"\/privacy-choices\/\",\"request.html\":\"\/privacy-request\/\",\"builder.html\":\"\/studio\/builder\/\",\"shop.html\":\"\/studio\/shop\/\",\"stations.html\":\"\/studio\/stations\/\",\"builder.html?preset=weather-station\":\"\/studio\/builder\/?preset=weather-station\",\"security.html\":\"\/security\/\",\"golive.html\":\"\/\",\"forms-demo.html\":\"\/contact\/\",\"line.html\":\"\/earth-observation\/\",\"spec.html\":\"https:\/\/nexusobservatory.com\/spec\/\",\"spec.html?p=specification\":\"https:\/\/nexusobservatory.com\/spec\/\",\"spec.html?p=functions\":\"https:\/\/nexusobservatory.com\/spec\/functions\/\",\"spec.html?p=states\":\"https:\/\/nexusobservatory.com\/spec\/states\/\",\"spec.html?p=flows\":\"https:\/\/nexusobservatory.com\/spec\/flows\/\",\"spec.html?p=objects\":\"https:\/\/nexusobservatory.com\/spec\/objects\/\",\"spec.html?p=actors\":\"https:\/\/nexusobservatory.com\/spec\/participants\/\",\"spec.html?p=standards\":\"https:\/\/nexusobservatory.com\/spec\/standards\/\",\"spec.html?p=sdks\":\"https:\/\/nexusobservatory.com\/spec\/wire-bindings\/\",\"spec.html?p=conformance\":\"https:\/\/nexusobservatory.com\/conformance\/\",\"spec.html?p=developers\":\"https:\/\/nexusobservatory.com\/sdk\/implementers\/\",\"spec.html?p=reference-designs\":\"https:\/\/nexusobservatory.com\/sdk\/reference-designs\/\",\"spec.html?p=governance\":\"https:\/\/nexusobservatory.com\/governance\/\",\"spec.html?p=changes\":\"https:\/\/nexusobservatory.com\/governance\/changes\/\",\"area.html\":\"\/\",\"site.html\":\"\/\",\"area.html?l=edge\\u0026r=edge-ai\":\"\/edge-ai\/overview\/\",\"#signin\":\"\/login\/\",\"#create-account\":\"\/register\/\",\"sector.html\":\"\/sectors\/\",\"credits.html\":\"\/credits\/\",\"countries.html\":\"\/countries\/\",\"country.html\":\"\/countries\/\",\"observatory.html\":\"\/observatories\/\",\"industries.html\":\"\/industries\/\",\"industry.html\":\"\/industries\/\",\"technologies.html\":\"\/technologies\/\",\"tech.html\":\"\/technologies\/\",\"usecase.html\":\"\/industries\/\",\"ind.html?i=public-safety\":\"\/industries\/public-safety\/\",\"ind.html?i=government\":\"\/industries\/government\/\",\"ind.html?i=cities\":\"\/industries\/cities\/\",\"ind.html?i=resilience\":\"\/industries\/resilience\/\",\"ind.html?i=communities\":\"\/industries\/communities\/\",\"ind.html?i=humanitarian\":\"\/industries\/humanitarian\/\",\"ind.html?i=climate\":\"\/industries\/climate\/\",\"ind.html?i=water\":\"\/industries\/water\/\",\"ind.html?i=nature\":\"\/industries\/nature\/\",\"ind.html?i=oceans\":\"\/industries\/oceans\/\",\"ind.html?i=agriculture\":\"\/industries\/agriculture\/\",\"ind.html?i=energy\":\"\/industries\/energy\/\",\"ind.html?i=telecom\":\"\/industries\/telecom\/\",\"ind.html?i=transport\":\"\/industries\/transport\/\",\"ind.html?i=infrastructure\":\"\/industries\/infrastructure\/\",\"ind.html?i=mining\":\"\/industries\/mining\/\",\"ind.html?i=industry\":\"\/industries\/industry\/\",\"ind.html?i=research\":\"\/industries\/research\/\",\"ind.html?i=education\":\"\/industries\/education\/\",\"ind.html?i=health\":\"\/industries\/health\/\",\"ind.html?i=insurance\":\"\/industries\/insurance\/\",\"ind.html?i=events\":\"\/industries\/events\/\",\"ind.html\":\"\/industries\/\",\"x-grid.html\":\"\/grid-services\/explainer\/\",\"x-software.html\":\"\/software\/explainer\/\",\"x-hardware.html\":\"\/hardware\/explainer\/\",\"x-sensors.html\":\"\/sensors\/explainer\/\",\"x-connectivity.html\":\"\/connectivity\/explainer\/\",\"x-edge.html\":\"\/edge-ai\/explainer\/\",\"x-eo.html\":\"\/earth-observation\/explainer\/\",\"x-field.html\":\"\/field-services\/explainer\/\",\"x-data.html\":\"\/data-products\/explainer\/\",\"xs-agriculture.html\":\"\/industries\/agriculture\/explainer\/\",\"xs-cities.html\":\"\/industries\/cities\/explainer\/\",\"xs-communities.html\":\"\/industries\/communities\/explainer\/\",\"xs-defence-adjacent.html\":\"\/industries\/resilience\/explainer\/\",\"xs-education.html\":\"\/industries\/education\/explainer\/\",\"xs-energy.html\":\"\/industries\/energy\/explainer\/\",\"xs-environment.html\":\"\/industries\/climate\/explainer\/\",\"xs-humanitarian.html\":\"\/industries\/humanitarian\/explainer\/\",\"xs-industrial.html\":\"\/industries\/infrastructure\/explainer\/\",\"xs-public-safety.html\":\"\/industries\/public-safety\/explainer\/\",\"xs-scientific.html\":\"\/industries\/research\/explainer\/\",\"xs-sports-events.html\":\"\/industries\/events\/explainer\/\",\"xs-transport.html\":\"\/industries\/transport\/explainer\/\",\"tour.html\":\"\/environments\/\",\"scenes.html\":\"\/environments\/networks\/\",\"stories.html\":\"\/stories\/\",\"presentations.html\":\"\/presentations\/\",\"studio.html\":\"\/studio\/\",\"studio-builder.html\":\"\/studio\/builder\/\",\"careers.html\":\"\/careers\/\",\"press.html\":\"\/press\/\",\"status.html\":\"\/status\/\",\"form.html?f=message\":\"\/contact\/message\/\",\"form.html?f=sales-enquiry\":\"\/contact\/sales-enquiry\/\",\"form.html?f=partner\":\"\/contact\/partner\/\",\"form.html?f=deployment\":\"\/contact\/deployment\/\",\"form.html?f=hardware-quote\":\"\/contact\/hardware-quote\/\",\"form.html?f=field-service\":\"\/contact\/field-service\/\",\"form.html?f=support\":\"\/contact\/support\/\",\"form.html?f=licence-request\":\"\/contact\/licence-request\/\",\"form.html?f=protocol-liaison\":\"\/contact\/protocol-liaison\/\",\"form.html?f=press\":\"\/contact\/press\/\",\"form.html?f=careers\":\"\/contact\/careers\/\",\"form.html?f=security-report\":\"\/contact\/security-report\/\",\"form.html?f=privacy-request\":\"\/contact\/privacy-request\/\",\"form.html?f=legal-notice\":\"\/contact\/legal-notice\/\",\"form.html?f=account-help\":\"\/contact\/account-help\/\",\"form.html?f=status\":\"\/contact\/status\/\",\"form.html\":\"\/contact\/\"},\"lines\":{\"grid\":\"\/grid-services\/\",\"software\":\"\/software\/\",\"hardware\":\"\/hardware\/\",\"sensors\":\"\/sensors\/\",\"connectivity\":\"\/connectivity\/\",\"edge\":\"\/edge-ai\/\",\"eo\":\"\/earth-observation\/\",\"field\":\"\/field-services\/\",\"data\":\"\/data-products\/\",\"space\":\"\/space\/\",\"pnt\":\"\/#lines\",\"security-trust\":\"\/#lines\",\"digital-twins\":\"\/digital-twins\/\",\"integration\":\"\/#lines\",\"qualification\":\"\/#lines\",\"operations\":\"\/#lines\",\"training\":\"\/#lines\",\"labs\":\"\/labs\/\"},\"templates\":{\"area.html\":\"{line}{r}\/\",\"sector.html\":\"\/sectors\/{s}\/\",\"country.html\":\"\/countries\/{iso}\/\",\"observatory.html\":\"\/observatories\/{id}\/\",\"industry.html\":\"\/industries\/{path}\/\",\"tech.html\":\"\/technologies\/{path}\/\",\"usecase.html\":\"\/use-cases\/{id}\/\",\"ind.html\":\"\/industries\/{i}\/{p}\/\",\"field.html\":\"\/industries\/{i}\/{f}\/\",\"xs-agriculture.html\":\"\/industries\/{i}\/explainer\/\",\"xs-cities.html\":\"\/industries\/{i}\/explainer\/\",\"xs-communities.html\":\"\/industries\/{i}\/explainer\/\",\"xs-defence-adjacent.html\":\"\/industries\/{i}\/explainer\/\",\"xs-education.html\":\"\/industries\/{i}\/explainer\/\",\"xs-energy.html\":\"\/industries\/{i}\/explainer\/\",\"xs-environment.html\":\"\/industries\/{i}\/explainer\/\",\"xs-humanitarian.html\":\"\/industries\/{i}\/explainer\/\",\"xs-industrial.html\":\"\/industries\/{i}\/explainer\/\",\"xs-public-safety.html\":\"\/industries\/{i}\/explainer\/\",\"xs-scientific.html\":\"\/industries\/{i}\/explainer\/\",\"xs-sports-events.html\":\"\/industries\/{i}\/explainer\/\",\"xs-transport.html\":\"\/industries\/{i}\/explainer\/\",\"tour.html\":\"\/environments\/{env}\/\",\"scenes.html\":\"\/environments\/networks\/{s}\/\",\"story.html\":\"\/stories\/{s}\/\",\"form.html\":\"\/{s}\/contact\/{f}\/\",\"contact.html\":\"\/{s}\/contact\/\",\"site.html\":\"{line}{p}\/\"},\"nav\":{\"Architecture\":{\"label\":\"Contact\",\"href\":\"\/contact\/\"}}},\"live\":{\"pnt\":\"\/technologies\/\",\"security-trust\":\"\/technologies\/\",\"integration\":\"\/technologies\/\",\"qualification\":\"\/technologies\/\",\"operations\":\"\/technologies\/\",\"training\":\"\/technologies\/\",\"public-safety\":\"\/sectors\/public-safety\/\",\"government\":\"\/industries\/\",\"cities\":\"\/sectors\/cities\/\",\"resilience\":\"\/industries\/\",\"communities\":\"\/sectors\/communities\/\",\"humanitarian\":\"\/sectors\/humanitarian\/\",\"climate\":\"\/industries\/\",\"water\":\"\/industries\/\",\"nature\":\"\/industries\/\",\"oceans\":\"\/industries\/\",\"agriculture\":\"\/sectors\/agriculture\/\",\"energy\":\"\/sectors\/energy\/\",\"telecom\":\"\/industries\/\",\"transport\":\"\/sectors\/transport\/\",\"infrastructure\":\"\/industries\/\",\"mining\":\"\/industries\/\",\"industry\":\"\/industries\/\",\"research\":\"\/industries\/\",\"education\":\"\/sectors\/education\/\",\"health\":\"\/industries\/\",\"insurance\":\"\/industries\/\",\"events\":\"\/industries\/\"},\"protocolLocal\":{\"https:\/\/nexusobservatory.com\/\":\"\/protocol\/\",\"https:\/\/nexusobservatory.com\/spec\/\":\"\/protocol\/specification\/\",\"https:\/\/nexusobservatory.com\/spec\/functions\/\":\"\/protocol\/functions\/\",\"https:\/\/nexusobservatory.com\/spec\/states\/\":\"\/protocol\/states\/\",\"https:\/\/nexusobservatory.com\/spec\/flows\/\":\"\/protocol\/flows\/\",\"https:\/\/nexusobservatory.com\/spec\/objects\/\":\"\/protocol\/objects\/\",\"https:\/\/nexusobservatory.com\/spec\/participants\/\":\"\/protocol\/actors\/\",\"https:\/\/nexusobservatory.com\/spec\/standards\/\":\"\/protocol\/standards\/\",\"https:\/\/nexusobservatory.com\/spec\/wire-bindings\/\":\"\/protocol\/sdks\/\",\"https:\/\/nexusobservatory.com\/conformance\/\":\"\/protocol\/conformance\/\",\"https:\/\/nexusobservatory.com\/sdk\/implementers\/\":\"\/protocol\/developers\/\",\"https:\/\/nexusobservatory.com\/sdk\/reference-designs\/\":\"\/protocol\/reference-designs\/\",\"https:\/\/nexusobservatory.com\/governance\/\":\"\/protocol\/governance\/\",\"https:\/\/nexusobservatory.com\/governance\/changes\/\":\"\/protocol\/changes\/\",\"https:\/\/status.nexusobservatory.com\/\":\"\/protocol\/status\/\"},\"offload\":[{\"p\":\"data\/thumbs\/\",\"e\":\"\\\\.(png|webp)$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-1\/assets\/78248cfb1d7f\/\",\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-2\/assets\/78248cfb1d7f\/\",\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-4\/assets\/78248cfb1d7f\/\",\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-5\/assets\/78248cfb1d7f\/\"]},{\"p\":\"data\/seo\/og\/\",\"e\":\"\\\\.jpg$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-3\/assets\/3eaa1a99c95c\/\"]},{\"p\":\"data\/environments\/\",\"e\":\"\\\\.(png|webp)$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-6\/assets\/bbdce8403d35\/\"]},{\"p\":\"data\/studio\/terrain\/\",\"e\":\"\\\\.(png|json)$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-7\/assets\/7fc1a125486d\/\"]},{\"p\":\"data\/stories\/\",\"e\":\"\\\\.(webp|png)$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-14\/assets\/f6f46dbdc650\/\"]},{\"p\":\"data\/stage\/\",\"e\":\"\\\\.json$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-9\/assets\/b9c4e980711d\/\"]},{\"p\":\"data\/\",\"e\":\"^data\/(world-dem\\\\.png|bow-valley\\\\.png|bow-valley\\\\.webp|bow-valley-img-1024\\\\.jpg)$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-8\/assets\/7257e0afcb32\/\"]},{\"p\":\"data\/stage\/posters\/\",\"e\":\"\\\\.webp$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-10\/assets\/69d3d6ec5d5c\/\",\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-11\/assets\/69d3d6ec5d5c\/\",\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-12\/assets\/69d3d6ec5d5c\/\",\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-13\/assets\/69d3d6ec5d5c\/\"]},{\"p\":\"data\/seo\/snap-l10n\/\",\"e\":\"\\\\.html$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-media-15\/assets\/ddd9c360af3a\/\"]},{\"p\":\"i18n\/fonts\",\"e\":null,\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-fonts\/assets\/5b308c6a383a\/\"]},{\"p\":\"i18n\/\",\"e\":\"^i18n\/[a-z]{2}(-[A-Za-z]+)?\\\\.json$\",\"s\":[\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages-i18n\/assets\/36fba411f179\/\"]}]}<\/script>\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/nxo-runtime.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/x-software.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/i18n.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/theme.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/compat\/x-stage.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/compat\/x-scale.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/i18n\/match.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/themeswap.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/nav.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/three.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/style.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/stage.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/labels.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/rig.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/globe.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/util.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/chrome.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/themewatch.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/vendor\/three\/three.module.min.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/tokens.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/renderer.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/loop.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/text.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/declutter.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/network.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/icons\/icon.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/palette.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/inkmap.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/3d\/probe.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/icons\/sprite.js\">\n<link rel=\"modulepreload\" href=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/system\/tokens\/build\/tokens.js\">\n<script type=\"module\" src=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/nxo-runtime.js\"><\/script>\n<script type=\"module\" src=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/i18n.js\"><\/script>\n<script type=\"module\" src=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/theme.js\"><\/script>\n<script type=\"module\" src=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/nav.js\"><\/script>\n<script defer src=\"https:\/\/observatory.global\/software\/wp-content\/plugins\/nexus-translate\/assets\/switcher.js?ver=1767225600\" id=\"nexus-translate-switcher-js\"><\/script>\n<script type=\"module\" src=\"https:\/\/observatory.global\/wp-content\/plugins\/nexus-observatory-pages\/assets\/bundle\/99e42e7aa6ec\/view-x-software.js?ver=99e42e7aa6ec\"><\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"nxo-canvas.php","meta":{"_nxo_site_core_noindex":false,"footnotes":""},"class_list":["post-21","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/pages\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":1,"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/pages\/21\/revisions"}],"predecessor-version":[{"id":42,"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/pages\/21\/revisions\/42"}],"wp:attachment":[{"href":"https:\/\/observatory.global\/software\/wp-json\/wp\/v2\/media?parent=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}