Files
missions/_docs/02_document/glossary.md
T
Oleksandr Bezdieniezhnykh 7025f4d075 refactor: enhance JWT authentication and CORS configuration
Updated JWT authentication to use configuration values instead of hardcoded secrets, improving security and flexibility. Enhanced CORS policy to conditionally allow origins based on configuration settings, with logging for permissive defaults. Updated README to reflect project renaming and clarify service context.
2026-05-14 19:48:25 +03:00

13 KiB
Raw 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 (today's code ↔ post-rename target)

Today (Azaion.Flights.*) Post-rename (Azaion.Missions.*) Touched by
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