mirror of
https://github.com/azaion/missions.git
synced 2026-06-21 08:01:07 +00:00
a26d7b163b
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>
13 KiB
13 KiB
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 B5–B12 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.mdis 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 byannotations; cascade-deleted bymissions. source:modules/entities.md - annotations (suite service) — edge-tier .NET sibling that owns the
media+annotationstable schemas. source:data_model.md - AppDataConnection —
linq2dbDataConnectionexposingITable<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+waypointsto drive the vehicle and writesmap_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_SHAat build time; surfaces the source commit at runtime viadocker inspect. source:deployment/containerization.md
B
- B-tickets (B1–B12) — 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.DeleteWaypointthat deletes rows in FK order across other services' tables (media,annotations,detection) plus this service's ownmap_objects,waypoints,missions. NOT transaction-wrapped today (ADR-006). source:architecture.mdADR-003 + ADR-006 - CMMC L2 row 3 — scorecard finding: JWT
iss/audvalidation 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 - Copter —
VehicleType = 1; multirotor UAV. source:00_discovery.md
D
- DatabaseMigrator — startup-time idempotent schema bootstrap; runs
CREATE TABLE IF NOT EXISTSfor 4 owned tables + 3 indexes (post-B9). B9 also adds a one-shotDROP TABLE IF EXISTSfor legacy GPS-Denied tables. source:modules/database.md - Default vehicle (
is_default) — boolean onVehicle. 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 bymissions. source:modules/entities.md - detection pipeline — edge AI service that owns the
detectiontable 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'serrorsfield. source:modules/middleware.md,components/06_http_conventions/description.md - ErrorResponse DTO — defined in
DTOs/ErrorResponse.csbut unused on the wire; declares PascalCase properties + wrong shape (List<string>? Errorsinstead of spec'sobject?). Dead code candidate. source:modules/dtos.md
F
- FL policy / "FL" permission — the only authorization policy this service consumes; satisfied by a JWT
permissionsclaim with value"FL". The permission code retains the legacy "Flight" wording even after the service rename tomissions(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 fitGuidedMissile(Phase C decision; carry-forward). source:modules/enums.md
G
- GeoPoint — shared DTO
{ Lat?, Lon?, Mgrs? }. Spec wants a single auto-convertingstring 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-deniedservice, 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_correctionstables and referencesmission_id/waypoint_idas plain GUIDs. No runtime coupling tomissionseither direction. source:architecture.mdADR-007 - GuidedMissile —
VehicleType = 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_indexfor fast spatial bucketing of detections. source:modules/entities.md,data_model.md /health— anonymousGET /healthreturning{ status: "healthy" }. Process-liveness only; does NOT ping the DB. source:system-flows.mdF7
J
- JWT bearer (HS256) — minted by central
adminservice, validated locally with the sharedJWT_SECRET; no callback to issuer per request.ClockSkew = 1 minute(tighter than .NET's 5-minute default). source:system-flows.mdF5,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.csMUST 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 onFirstOrDefaultAsync(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 byautopilot, cascade-deleted bymissions. source:components/04_persistence/description.md - Media — borrowed read-only entity (text PK, nullable
waypoint_id); schema owned byannotations. Cascade-deleted bymissions. source:modules/entities.md - MGRS — Military Grid Reference System; alternate location encoding stored alongside
lat/lononwaypoints,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) — ownsMission+WaypointCRUD 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
FLpermission. source:../../suite/_docs/00_roles_permissions.md - Orthophoto (deprecated →
gps-deniedservice, 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 byGET /missions. source:components/06_http_conventions/description.md,modules/dtos.md - Plane —
VehicleType = 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-suiteaggregating 11 component submodules orchestrated by the parent at../../. Authoritative human-confirmed docs live at../../suite/_docs/. source:00_discovery.md - Swagger —
Swashbuckle.AspNetCore(10.1.5); UI mounted unconditionally (noIsDevelopment()gate) — ADR-005 carry-forward. source:components/07_host/description.md
U
- UGV —
VehicleType = 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) — ownsVehicleCRUD + 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-gateto avoid restart mid-mission. source:architecture.md§ Deployment Model - Waypoint — ordered geo-point inside a
Mission; FK toMission. 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, B5–B10 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 |