Rivetira
Book a line assessment

The as-built record is an API, not a report

Every hole, fastener, shim, gap field and disposition is queryable the moment it is written. Read it from your MES, stream conditions into your quality system, or drive an agent from your own planner.

query_asbuilt.py
from rivetira import Client

rv = Client(edge="https://edge.plant-01.internal")

# Every hole drilled into airframe 4471, with measured geometry
holes = rv.asbuilt.holes(
    serial="MSN-4471",
    station="WG-11",
    since="2026-06-01",
)

out_of_tol = [h for h in holes if not h.conforming]

print(f"{len(holes):,} holes, {len(out_of_tol)} out of tolerance")
for h in out_of_tol[:3]:
    print(h.id, h.diameter_mm, h.countersink_mm, h.perpendicularity_deg)

Four ways in

Read-heavy integrations use REST. Event-driven quality systems use webhooks. Machines talk OPC UA. Data science talks Parquet.

REST API

Resource-oriented, cursor-paginated, versioned by header. Every as-built entity — hole, fastener, shim, seal, join, disposition — is a first-class resource.

JSON over TLS 1.3

Webhooks

Signed, retried, ordered per airframe. Subscribe to condition detected, disposition raised, autonomy promoted, twin drift and station acceptance events.

HMAC-SHA256 signed

OPC UA & MTConnect

The edge runtime speaks the protocols your machines already speak. No gateway to buy, no custom PLC work for standard equipment.

Read and write

Bulk export

Parquet and CSV exports of the full as-built record for a serial, a program or a date range, written to storage you control.

Open formats

Fast enough to sit inside a station cycle

Edge API reads resolve against local storage, so a quality check does not wait on a cloud round trip. These are measured p50/p95/p99 figures from production plants.

  • Reads served from edge storage inside the plant network
  • Webhook delivery attempted within 200 ms of the event
  • Exponential backoff over 24 hours, then dead-letter
  • Idempotency keys on every write endpoint
0 ms250 ms500 ms750 ms1,000 ms1,250 msResponse timeHole lookupSerial traceGap fieldCondition streamBulk export (1k)
Edge API response time by endpoint, trailing 30 daysMeasured at the edge runtime across four production plants. Bars are drawn from zero.
Edge API response time by endpoint, trailing 30 days
Endpointp50p95p99
Hole lookup8 ms19 ms34 ms
Serial trace41 ms96 ms178 ms
Gap field62 ms148 ms265 ms
Condition stream12 ms28 ms51 ms
Bulk export (1k)340 ms720 ms1,180 ms

From install to first query

bash — plant-01 jump host
$ pip install rivetira
Successfully installed rivetira-2.7.1

$ rivetira auth login --edge edge.plant-01.internal
✓ Device code flow complete — signed in as p.raghunathan
✓ Scopes: asbuilt:read quality:read agents:observe

$ rivetira stations list --site everett
FA-01  Fuselage section join     closed-loop   RFT 99.2%
FA-02  Wing-body join            supervised    RFT 98.6%
WG-11  Wing skin-to-spar         closed-loop   RFT 99.1%

$ rivetira asbuilt trace MSN-4471 --out trace.parquet
✓ 38,412 operations · 11,904 holes · 11,904 fasteners
✓ Hash chain verified · written to trace.parquet (14.2 MB)
subscribe_conditions.py
from rivetira import Client, Condition

rv = Client(edge="https://edge.plant-01.internal")

@rv.on("condition.detected")
def handle(event: Condition):
    if event.severity < 3:
        return  # advisory only, station handles it

    # Escalate anything that would be an escape
    quality_system.raise_ncr(
        serial=event.serial,
        station=event.station,
        characteristic=event.characteristic,
        measured=event.measured,
        nominal=event.nominal,
        evidence_uri=event.evidence_uri,
    )

rv.listen()  # long-lived, resumes from last acked offset

Core endpoints

Core REST endpoints
EndpointMethodReturnsScope
/v2/asbuilt/holesGETMeasured hole geometry with conformance verdictasbuilt:read
/v2/asbuilt/fastenersGETFastener seating, flushness and grip lengthasbuilt:read
/v2/asbuilt/gapfieldsGETPredicted and measured gap fields per joinasbuilt:read
/v2/asbuilt/trace/{serial}GETComplete hash-chained trace for an airframeasbuilt:read
/v2/quality/conditionsGETDetected conditions and their dispositionsquality:read
/v2/quality/dispositionsPOSTRecord a disposition against a conditionquality:write
/v2/stationsGETStation state, autonomy level and current taktagents:observe
/v2/agents/{id}/plansGETPlanned operations awaiting executionagents:observe
/v2/agents/{id}/autonomyPOSTSet or revoke autonomy level for a stationagents:control
/v2/twin/{serial}/predictPOSTSimulate a join against the as-built twintwin:simulate

What you can subscribe to

condition.detected
A characteristic fell outside its window
condition.dispositioned
A human recorded a disposition
fod.detected
Foreign object debris identified in structure
join.completed
A structural join closed and was accepted
shim.machined
A predictive shim was cut and applied
autonomy.promoted
A station advanced an autonomy level
autonomy.rolled_back
A station was returned to a lower level
twin.drift_detected
As-built twin diverged from prediction
takt.rebalanced
Line work content was re-sequenced
station.accepted
Station acceptance signed for a serial
0200400600800Events deliveredMonTueWedThuFriSat
Webhook events delivered per day, one representative plantSaturday is a single-shift day at this plant. Delivery success rate over the period was 99.98%.
Webhook events delivered per day, one representative plant
Day of weekcondition.detectedjoin.completedshim.machinedtakt.rebalancedTotal
Mon412886424588
Tue468947126659
Wed441916822622
Thu5021027929712
Fri478977427676
Sat186413011268

Reads and writes back to the machines you already own

Rivetira is not a rip-and-replace. It connects to the drilling machines, crawlers, trackers, shim cells, sealant robots and MES already on your floor over APIs and OT protocols.

Drilling & fastening

  • Flex-track crawlers
  • Gantry drilling machines
  • C-frame riveters
  • Automated fastening cells
  • Hand-fed ADUs

Metrology

  • Laser trackers
  • Photogrammetry rigs
  • Structured-light scanners
  • iGPS / indoor GPS
  • Articulated arm CMMs

Shimming & sealing

  • 5-axis shim machining
  • Liquid shim dispense
  • Sealant robots
  • Cure monitoring
  • Bead inspection

Factory systems

  • Assembly MES
  • PLM / as-designed models
  • ERP work orders
  • Quality / NCR systems
  • Historians & OPC UA

OPC UA, MTConnect, MQTT, ROS 2, REST and file-drop connectors. Read-only shadow mode first; write-back enabled only after twin validation.

Rate limits, versioning and deprecation

Read rate limit
600 req / min / token
Write rate limit
120 req / min / token
Bulk export
4 concurrent jobs
Page size
1,000 max
Burst allowance
2× for 30 s
Versioning
Header: Rivetira-Version
Current version
2026-04-01
Breaking change policy
New dated version only
Deprecation notice
12 months minimum
Sunset header
RFC 8594
Auth
OAuth 2.0 device + client creds
Token lifetime
1 hour, refreshable
Scopes
Least-privilege, per station
Idempotency
Required on all writes
SDKs
Python, TypeScript, C#

Built for programs that cannot leak and cannot fail

Airframe geometry is among the most protected IP in manufacturing, and much of it is export-controlled. Rivetira is architected for that reality from the edge up.

Certified

SOC 2 Type II

Annual audit covering security, availability and confidentiality of the control plane.

Supported

ITAR / EAR aware

US-person access controls, on-prem and air-gapped deployment for controlled programs.

Mapped

AS9100 alignment

Quality records, NCR flow and traceability mapped to aerospace quality requirements.

In progress

ISO 27001

Information security management system certification underway. [PLACEHOLDER: target date]

Data stays where the airframe is

  • Factory edge runtime holds all program geometry, imagery and metrology locally
  • Air-gapped mode: model updates arrive by signed media, telemetry never leaves
  • Per-tenant isolation and per-program cryptographic separation
  • Encryption in transit and at rest; customer-managed keys available

Assurance-grade by default

  • Immutable audit trail for every agent action, sensor reading and human override
  • SSO/SAML, SCIM provisioning and role-based access down to station level
  • Fail-safe stop for drills, fasteners, crawlers and cranes at < 40 ms
  • Human-in-the-loop mandatory for airworthiness-critical dispositions

Shadow first. Autonomy is earned, not switched on.

Every agent starts by watching. It is promoted only when its measured accuracy clears the mechanic-plus-metrology baseline and the twin agrees.

  1. Weeks 1–4

    Shadow

    Agent observes the station, predicts every outcome, actuates nothing. Accuracy measured against what the mechanics actually do.

  2. Weeks 4–10

    Advisory

    Agent recommends feed, shim geometry and sequence. A human accepts or rejects; every rejection becomes training data.

  3. Weeks 10–20

    Supervised

    Agent actuates with a human in the loop and a live fail-safe stop. Airworthiness-critical dispositions still require sign-off.

  4. Week 20+

    Closed loop

    Agent runs the step. Humans handle exceptions and the twin gates any change to the control policy.

87.5%90.0%92.5%95.0%97.5%100.0%Prediction accuracyWk 2Wk 4Wk 6Wk 8Wk 10Wk 12Wk 16Wk 20Wk 24promotion gateAgent accuracyMechanic + metrology baseline
Agent accuracy against the human baseline during shadow and advisory phasesPromotion to supervised autonomy requires four consecutive weeks above baseline plus twin agreement. The value axis is truncated to resolve the crossover.
Agent accuracy against the human baseline during shadow and advisory phases
WeekAgent accuracyMechanic + metrology baseline
Wk 288.2%94.1%
Wk 491.4%94.0%
Wk 693.6%94.2%
Wk 895.2%94.1%
Wk 1096.4%94.3%
Wk 1297.1%94.2%
Wk 1697.8%94.1%
Wk 2098.3%94.2%
Wk 2498.6%94.3%

Every station, every structure, one record

Sort any column. The same table backs the audit export an airworthiness engineer hands to a regulator.

Assembly station performance, trailing 30 days
FA-01 · Fuselage section joinSection 41/4399.2%0.041 mm18 h96.4%
FA-02 · Wing-body joinWing box98.6%0.062 mm31 h94.1%
FA-03 · Empennage attachVertical/horizontal99.5%0.028 mm9 h98.2%
FA-04 · Systems installationHydraulics/electrical97.8%0.055 mm12 h95.8%
FA-05 · Final assemblyInteriors/doors98.9%0.037 mm6 h96.9%
WG-11 · Wing skin-to-sparLower skin99.1%0.033 mm22 h97.4%
WG-12 · Wing skin-to-sparUpper skin98.4%0.048 mm26 h95.2%
FS-21 · Fuselage panelBarrel section99.3%0.030 mm11 h97.9%

Questions engineers actually ask

Anything else goes to the people who build it. Ask an assembly engineer or read the full FAQ.

Yes. The API you integrate against is the edge runtime inside your plant network. It has no dependency on the Rivetira control plane for reads, writes or webhook delivery to systems inside your network.

You can submit planned operations and read agent state with the agents scopes. What you cannot do is bypass the envelope check — an instruction outside the qualified process window is rejected at the edge regardless of who submitted it.

Yes. Every deployment includes a replay sandbox seeded with de-identified as-built data from your own program, so integration testing runs against realistic geometry without touching production.

Parquet by default, CSV on request, with a JSON manifest describing schema and hash chain roots. Exports write to object storage you control; Rivetira never becomes the custodian of your archive.

Get API access

A line assessment maps one station, quantifies the rework, shim and rate opportunity, and returns a modelled ROI in three weeks. No production disruption.