Files
Oleksandr Bezdieniezhnykh a26d7b163b [AZ-549] B10a: clean up forward-looking notes; mark image rename done
The .woodpecker/build-arm.yml already pushes ${REGISTRY_HOST}/azaion/missions
(landed earlier as part of the B5 csproj/namespace rename). What this commit
fixes is the missions-internal documentation that still described the legacy
azaion/flights image as the *current* state.

Edits:

- _docs/02_document/deployment/environment_strategy.md: drop "today's edge
  compose still references azaion/flights" — B10 is done. Container/service
  name 'flights' still noted as B6/B11 work.
- _docs/02_document/deployment/containerization.md: drop "today's Dockerfile
  ENTRYPOINT is dotnet Azaion.Flights.dll, image tag base is azaion/flights"
  — both AZ-544 (B5) and AZ-549 (B10) done.
- _docs/02_document/deployment/ci_cd_pipeline.md: same fix.
- _docs/02_document/components/07_host/description.md: same fix.
- _docs/02_document/04_verification_log.md row for AZ-549: explicitly
  marked "done"; Code symbol column converged to post-rename value.
- _docs/00_problem/restrictions.md E6: parenthetical reworded so the row
  reads as a present-state assertion (B10 done) instead of a forward-
  looking note.
- _docs/02_document/glossary.md "Synonym pairs" heading flipped from
  "today's code ↔ post-rename target" to "pre-rename ↔ post-rename"
  (adjacent hygiene — B5-B9+B10 are done across the missions rename
  Epic; the table's "today" framing no longer matches reality).

Spec _docs/tasks/todo/AZ-549a_missions_rename_b10_pipeline.md moved to
_docs/tasks/done/.

rg -F 'azaion/flights' missions/ | grep -v done/ now returns only
intentional pre-rename historical references in glossary.md /
architecture.md / restrictions.md / verification_log.md — the "current
state" wording is gone.

Suite-side slice (AZ-549b — _infra/deploy/*/docker-compose.yml image
ref + ci/README.md example) shipped separately in the suite repo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 11:57:09 +03:00

13 KiB
Raw Permalink Blame History

Glossary — missions (Azaion edge-tier .NET service)

Status: confirmed-by-user Date: 2026-05-14 Scope: terms used inside this submodule's _docs/02_document/ set, plus suite-level terms recurring in those docs. Generic CS / industry terms intentionally omitted.

Note

: this glossary reflects the post-rename, post-GPS-Denied-removal target. The pre-rename names (Aircraft, Flight, Orthophoto, GpsCorrection, the "GPS" policy) are kept as deprecated entries to make code-vs-doc reconciliation possible during the B5B12 ticket window. The B-tickets are tracked under Jira AZ-EPIC (AZ-539); the leftover at _docs/_process_leftovers/2026-05-14_rename-flights-to-missions.md is the source of truth for the rename plan.

A

  • admin — remote .NET service that mints HS256 JWTs against the central user PostgreSQL; this service only validates. source: components/05_identity/description.md
  • Aircraft (deprecated → Vehicle, B6) — pre-rename name for the operator-managed inventory entry. source: 00_discovery.md, modules/entities.md
  • Annotation — borrowed read-only entity (text PK, FK to media); schema owned by annotations; cascade-deleted by missions. source: modules/entities.md
  • annotations (suite service) — edge-tier .NET sibling that owns the media + annotations table schemas. source: data_model.md
  • AppDataConnectionlinq2db DataConnection exposing ITable<T> for every persisted entity (4 owned + 3 borrowed post-B7); per-HTTP-request scoped. source: modules/database.md
  • autopilot (suite service) — edge service that reads missions + waypoints to drive the vehicle and writes map_objects. source: data_model.md, components/04_persistence/description.md
  • AZ-539 (AZ-EPIC) — umbrella Jira epic covering this rename + multi-vehicle support + GPS-Denied removal. source: _docs/_process_leftovers/2026-05-14_rename-flights-to-missions.md
  • AZAION_REVISION — env var baked from CI_COMMIT_SHA at build time; surfaces the source commit at runtime via docker inspect. source: deployment/containerization.md

B

  • B-tickets (B1B12) — child stories under AZ-EPIC. B1 docs, B2 suite-doc cleanup, B3 state bookkeeping, B5 namespace/csproj, B6 domain rename, B7 GPS-Denied removal, B8 HTTP routes, B9 DB migration, B10 Dockerfile/image, B12 default-vehicle decision. source: _docs/tasks/

C

  • Cascade-delete (this service's contract) — manual walk in MissionService.DeleteMission / WaypointService.DeleteWaypoint that deletes rows in FK order across other services' tables (media, annotations, detection) plus this service's own map_objects, waypoints, missions. NOT transaction-wrapped today (ADR-006). source: architecture.md ADR-003 + ADR-006
  • CMMC L2 row 3 — scorecard finding: JWT iss/aud validation is disabled across the .NET suite services. Tracked at suite level under AZ-487 / AZ-494; out of this Epic. source: components/05_identity/description.md
  • CopterVehicleType = 1; multirotor UAV. source: 00_discovery.md

D

  • DatabaseMigrator — startup-time idempotent schema bootstrap; runs CREATE TABLE IF NOT EXISTS for 4 owned tables + 3 indexes (post-B9). B9 also adds a one-shot DROP TABLE IF EXISTS for legacy GPS-Denied tables. source: modules/database.md
  • Default vehicle (is_default) — boolean on Vehicle. Code enforces "exactly one default" by clear-then-set; spec only toggles. Race-prone (no transaction). Resolution tracked under B12. source: components/01_vehicle_catalog/description.md
  • Detection (entity) — borrowed read-only entity (singular table name owned by detection pipeline); FK to annotation. Cascade-deleted by missions. source: modules/entities.md
  • detection pipeline — edge AI service that owns the detection table schema. source: data_model.md

E

  • Edge tier — per-device deployment on Jetson Orin / OrangePI / operator-PC; one container per service per device. source: 00_discovery.md, architecture.md
  • ErrorHandlingMiddleware — global exception → JSON mapper. Maps KeyNotFoundException → 404, ArgumentException → 400, InvalidOperationException → 409; everything else → 500 (with stack trace logged). Emits a camelCase anonymous-object envelope { statusCode, message } — accidental match with the spec's case style; missing the spec's errors field. source: modules/middleware.md, components/06_http_conventions/description.md
  • ErrorResponse DTO — defined in DTOs/ErrorResponse.cs but unused on the wire; declares PascalCase properties + wrong shape (List<string>? Errors instead of spec's object?). Dead code candidate. source: modules/dtos.md

F

  • FL policy / "FL" permission — the only authorization policy this service consumes; satisfied by a JWT permissions claim with value "FL". The permission code retains the legacy "Flight" wording even after the service rename to missions (renaming the code is a fleet-wide auth change — not in this Epic). source: components/05_identity/description.md
  • Flight (deprecated → Mission, B6) — pre-rename name for the planned operation entity. source: 00_discovery.md, modules/entities.md
  • flight-gate — suite-level supervisor that prevents container restart mid-mission. source: ../../suite/_docs/00_top_level_architecture.md
  • FuelType — enum { Electric=0, Gasoline=1, Diesel=2 }. May not fit GuidedMissile (Phase C decision; carry-forward). source: modules/enums.md

G

  • GeoPoint — shared DTO { Lat?, Lon?, Mgrs? }. Spec wants a single auto-converting string GPS (carry-forward divergence — out of this Epic). source: modules/dtos.md, modules/entities.md
  • GPS policy / "GPS" permission (deprecated, removed in B7) — pre-B7 second policy in code that authorized orthophoto / GPS-correction endpoints. Removed in AZ-546 (B7). source: today's Auth/JwtExtensions.cs, components/05_identity/description.md
  • GpsCorrection (deprecated → gps-denied service, B7+B9) — pre-B7 entity for GPS-correction CRUD. source: modules/entities.md (forward-looking)
  • gps-denied (suite service, post-B7) — separate edge service that owns orthophotos + gps_corrections tables and references mission_id / waypoint_id as plain GUIDs. No runtime coupling to missions either direction. source: architecture.md ADR-007
  • GuidedMissileVehicleType = 3; single-use loitering munition (added in B6). source: modules/enums.md

H

  • H3 / H3 hex grid — Uber's hexagonal hierarchical spatial index used on map_objects.h3_index for fast spatial bucketing of detections. source: modules/entities.md, data_model.md
  • /health — anonymous GET /health returning { status: "healthy" }. Process-liveness only; does NOT ping the DB. source: system-flows.md F7

J

  • JWT bearer (HS256) — minted by central admin service, validated locally with the shared JWT_SECRET; no callback to issuer per request. ClockSkew = 1 minute (tighter than .NET's 5-minute default). source: system-flows.md F5, modules/auth.md
  • JWT_SECRET — shared HMAC secret used by every .NET service in the suite. Rotation requires coordinated redeploy. Hardcoded dev fallback in Program.cs MUST be overridden in production. source: components/05_identity/description.md, components/07_host/description.md

L

  • linq2db (6.2.0) — LINQ-to-SQL provider with attribute mapping; this service's only ORM. [Association] navigation does NOT eager-load by default on FirstOrDefaultAsync(predicate). source: architecture.md § Tech Stack

M

  • MapObject — H3-indexed detection projection with class + confidence + spatial position; FK to Mission. Schema owned by this service, written by autopilot, cascade-deleted by missions. source: components/04_persistence/description.md
  • Media — borrowed read-only entity (text PK, nullable waypoint_id); schema owned by annotations. Cascade-deleted by missions. source: modules/entities.md
  • MGRS — Military Grid Reference System; alternate location encoding stored alongside lat/lon on waypoints, map_objects. source: modules/entities.md
  • Mission — planned operation entity; FK to Vehicle. Pre-rename name "Flight". source: components/02_mission_planning/description.md
  • Mission Planning (component 02_mission_planning) — owns Mission + Waypoint CRUD plus the cross-service cascade-delete walk. source: components/02_mission_planning/description.md
  • missions (this service) — edge-tier .NET 10 REST service that owns the mission domain of each Azaion deployment. Pre-rename: flights. source: architecture.md

O

  • Operator personas — Operator, Operator+, Validator, CompanionPC, Admin, ApiAdmin — roles in the suite-level RBAC matrix that resolve to the FL permission. source: ../../suite/_docs/00_roles_permissions.md
  • Orthophoto (deprecated → gps-denied service, B7+B9) — pre-B7 entity for satellite-image orthophoto upload + listing. source: modules/entities.md (forward-looking)

P

  • PaginatedResponse<T> — shared envelope { Items, TotalCount, Page, PageSize } (PascalCase wire shape — divergent from spec's camelCase). Used only by GET /missions. source: components/06_http_conventions/description.md, modules/dtos.md
  • PlaneVehicleType = 0; fixed-wing UAV. source: modules/enums.md
  • postgres-local — ONE PostgreSQL instance per edge device, shared by every backend service on the device. Per-service table ownership enforced by convention (not by per-service DB users). source: data_model.md § 1, ../../suite/_docs/00_top_level_architecture.md

S

  • Suite — the parent meta-repo azaion-suite aggregating 11 component submodules orchestrated by the parent at ../../. Authoritative human-confirmed docs live at ../../suite/_docs/. source: 00_discovery.md
  • SwaggerSwashbuckle.AspNetCore (10.1.5); UI mounted unconditionally (no IsDevelopment() gate) — ADR-005 carry-forward. source: components/07_host/description.md

U

  • UGVVehicleType = 2; Unmanned Ground Vehicle (added in B6). References ../../hardware/_standalone/target_acquisition/target_acquisition.md. source: modules/enums.md
  • ui (suite service) — React frontend on each edge device; the dominant inbound HTTP consumer. source: architecture.md

V

  • Vehicle — operator-managed inventory entry; one of { Plane, Copter, UGV, GuidedMissile }. Pre-rename name "Aircraft". source: components/01_vehicle_catalog/description.md
  • Vehicle Catalog (component 01_vehicle_catalog) — owns Vehicle CRUD + the "is_default" exclusivity rule. source: components/01_vehicle_catalog/description.md
  • VehicleType — enum { Plane=0, Copter=1, UGV=2, GuidedMissile=3 }. Extended from { Plane, Copter } in B6. source: modules/enums.md

W

  • Watchtower — container restart-on-crash + image-update poller running on each edge device; works in conjunction with flight-gate to avoid restart mid-mission. source: architecture.md § Deployment Model
  • Waypoint — ordered geo-point inside a Mission; FK to Mission. source: modules/entities.md, components/02_mission_planning/description.md
  • WaypointObjective — enum { Surveillance=0, Strike=1, Recon=2 }. source: modules/enums.md
  • WaypointSource — enum { Auto=0, Manual=1 }. source: modules/enums.md
  • Woodpecker — CI runner; one ARM-tagged build job per push to dev / stage / main. Single Dockerfile-based build + push step; no test, no security scan today. source: deployment/ci_cd_pipeline.md

Synonym pairs (pre-rename ↔ post-rename, B5B10 landed)

Pre-rename (Azaion.Flights.*) Post-rename (Azaion.Missions.*) Landed under
Aircraft (entity, controller, service, DTOs, enum) Vehicle B6
Flight (entity, controller, service, DTOs, table) Mission B6
aircraft_id (FK on missions) vehicle_id B6 + B9
flight_id (FK on waypoints, map_objects, orthophotos, gps_corrections) mission_id B6 + B9
[Route("aircrafts")], [Route("flights")] [Route("vehicles")], [Route("missions")] B8
Azaion.Flights.csproj, dotnet Azaion.Flights.dll, azaion/flights:*-arm Azaion.Missions.csproj, dotnet Azaion.Missions.dll, azaion/missions:*-arm B5 + B10
"GPS" policy + Orthophoto + GpsCorrection entities + cascade branches (removed) B7 + B9
6 owned tables, 9 entities 4 owned tables, 7 entities B7 + B9
AircraftType { Plane, Copter } VehicleType { Plane, Copter, UGV, GuidedMissile } B6