Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
daemon
command
|
|
|
loadtest-users
command
Command loadtest-users creates and removes the accounts of a load-test run.
|
Command loadtest-users creates and removes the accounts of a load-test run. |
|
seed
command
Command seed fills a development database with test data for live end-to-end checks, or removes it again (--delete).
|
Command seed fills a development database with test data for live end-to-end checks, or removes it again (--delete). |
|
internal
|
|
|
advisory
Package advisory holds Postgres session-level advisory locks on a connection of their own.
|
Package advisory holds Postgres session-level advisory locks on a connection of their own. |
|
delivery/controller/http
Package http is the HTTP controller: the router, its global middleware chain and the listeners.
|
Package http is the HTTP controller: the router, its global middleware chain and the listeners. |
|
delivery/controller/http/audit
Package audit lets a handler attach the concrete object an administrative action addressed to the audit entry the protection middleware records.
|
Package audit lets a handler attach the concrete object an administrative action addressed to the audit entry the protection middleware records. |
|
delivery/controller/http/download
Package download prepares responses that stream large bodies.
|
Package download prepares responses that stream large bodies. |
|
delivery/controller/http/errjournal
Package errjournal is the HTTP capture point of the platform error journal: one middleware that sees every request end.
|
Package errjournal is the HTTP capture point of the platform error journal: one middleware that sees every request end. |
|
delivery/controller/http/handler
Package handler aggregates the HTTP API handlers.
|
Package handler aggregates the HTTP API handlers. |
|
delivery/controller/http/handler/apidocs
Package apidocs Code generated by swaggo/swag.
|
Package apidocs Code generated by swaggo/swag. |
|
delivery/controller/http/handler/errorJournal
Package errorJournal is the HTTP delivery of the platform error journal: the grouped errors with their samples, the live stream, the 404 statistics and the notification settings.
|
Package errorJournal is the HTTP delivery of the platform error journal: the grouped errors with their samples, the live stream, the 404 statistics and the notification settings. |
|
delivery/controller/http/handler/event
Package event is the HTTP delivery layer of the platform event tenancy: admin-only routes gated per-permission (events.*), plus the public event images.
|
Package event is the HTTP delivery layer of the platform event tenancy: admin-only routes gated per-permission (events.*), plus the public event images. |
|
delivery/controller/http/handler/eventAnalytics
Package eventAnalytics is the HTTP delivery of event analytics (docs/EVENT-ANALYTICS.md): GET /events/{id}/manage/analytics/*.
|
Package eventAnalytics is the HTTP delivery of event analytics (docs/EVENT-ANALYTICS.md): GET /events/{id}/manage/analytics/*. |
|
delivery/controller/http/handler/eventself
Package eventself is the HTTP delivery layer for participant self-service event routes.
|
Package eventself is the HTTP delivery layer for participant self-service event routes. |
|
delivery/controller/http/handler/exercise
Package exercise is the HTTP delivery layer of the exercise catalog: admin-only routes gated per-permission (exercises.*), plus the attachment upload/download routes (files.go).
|
Package exercise is the HTTP delivery layer of the exercise catalog: admin-only routes gated per-permission (exercises.*), plus the attachment upload/download routes (files.go). |
|
delivery/controller/http/handler/imageRegistry
Package imageRegistry serves the platform image registry settings of «Панель платформи».
|
Package imageRegistry serves the platform image registry settings of «Панель платформи». |
|
delivery/controller/http/handler/labview
Package labview holds the response shapes of a lab's live state that several handlers share: the launch queue, the devices with their snapshot state and the image warnings.
|
Package labview holds the response shapes of a lab's live state that several handlers share: the launch queue, the devices with their snapshot state and the image warnings. |
|
delivery/controller/http/handler/mail
Package mail is the HTTP layer of the W7 mail settings: the platform SMTP providers (admin «Налаштування → Пошта») and the Event mail section (sender, Reply-To, optional Event SMTP, delivery journal).
|
Package mail is the HTTP layer of the W7 mail settings: the platform SMTP providers (admin «Налаштування → Пошта») and the Event mail section (sender, Reply-To, optional Event SMTP, delivery journal). |
|
delivery/controller/http/handler/messaging
Package messaging is the HTTP delivery layer of custom broadcasts and site banners: the platform routes (admin), the Event routes (/manage) and the public banner read every app polls.
|
Package messaging is the HTTP delivery layer of custom broadcasts and site banners: the platform routes (admin), the Event routes (/manage) and the public banner read every app polls. |
|
delivery/controller/http/handler/notification/pulse
Package pulse is the HTTP delivery of the cheap per-tab call every site makes (the pulse) and of the banner list it points at.
|
Package pulse is the HTTP delivery of the cheap per-tab call every site makes (the pulse) and of the banner list it points at. |
|
delivery/controller/http/handler/platformAnalytics
Package platformAnalytics is the HTTP delivery of platform-level analytics (docs/EVENT-ANALYTICS.md §8): GET /api/analytics/<section>.
|
Package platformAnalytics is the HTTP delivery of platform-level analytics (docs/EVENT-ANALYTICS.md §8): GET /api/analytics/<section>. |
|
delivery/controller/http/handler/resourceCalendar
Package resourceCalendar is the HTTP delivery of the resource calendar: the platform admin's timeline, capacity, event reservations, change requests, readiness alarms and the test pool; the organizer's allocated vs used and change requests; the catalog author's test laboratory room and bookings.
|
Package resourceCalendar is the HTTP delivery of the resource calendar: the platform admin's timeline, capacity, event reservations, change requests, readiness alarms and the test pool; the organizer's allocated vs used and change requests; the catalog author's test laboratory room and bookings. |
|
delivery/controller/http/middleware
Package cors implements the cross-origin policy for api.<domain>: every platform frontend (main/id/admin/event) lives on its own subdomain and calls this API cross-origin with credentials, so browsers require an explicit, non-wildcard CORS response before they will expose it — or send the session cookie on the request in the first place.
|
Package cors implements the cross-origin policy for api.<domain>: every platform frontend (main/id/admin/event) lives on its own subdomain and calls this API cross-origin with credentials, so browsers require an explicit, non-wildcard CORS response before they will expose it — or send the session cookie on the request in the first place. |
|
delivery/controller/http/sse
Package sse prepares long-lived Server-Sent Events responses.
|
Package sse prepares long-lived Server-Sent Events responses. |
|
delivery/infrastructure/agentfleet
Package agentfleet keeps the fleet of infrastructure agents in step with the registry.
|
Package agentfleet keeps the fleet of infrastructure agents in step with the registry. |
|
delivery/infrastructure/labagent
Package labagent adapts the laboratory LabManager gRPC client to the daemon.
|
Package labagent adapts the laboratory LabManager gRPC client to the daemon. |
|
delivery/repository/broadcastRepo
Package broadcastRepo is the repository for custom broadcasts and their audiences: domain shapes in and out, sqlc rows only inside.
|
Package broadcastRepo is the repository for custom broadcasts and their audiences: domain shapes in and out, sqlc rows only inside. |
|
delivery/repository/clusterReservationRepo
Package clusterReservationRepo persists the cluster reservation parts (one row per part: the desired state written whole by SavePart, plus two deliberate narrow writes, MarkSynced for the agent's answer and Observe for the status the agent reports, so neither can undo a newer desired change) and the agent of each unit of a calendar reservation.
|
Package clusterReservationRepo persists the cluster reservation parts (one row per part: the desired state written whole by SavePart, plus two deliberate narrow writes, MarkSynced for the agent's answer and Observe for the status the agent reports, so neither can undo a newer desired change) and the agent of each unit of a calendar reservation. |
|
delivery/repository/dispatchRepo
Package dispatchRepo is the repository for notification dispatches and their per-channel targets: domain shapes in and out, sqlc rows only inside.
|
Package dispatchRepo is the repository for notification dispatches and their per-channel targets: domain shapes in and out, sqlc rows only inside. |
|
delivery/repository/emailTemplateRepo
Package emailTemplateRepo is the repository for the email template version family and its block presets: domain shapes in and out, sqlc rows and pgtype only inside.
|
Package emailTemplateRepo is the repository for the email template version family and its block presets: domain shapes in and out, sqlc rows and pgtype only inside. |
|
delivery/repository/errorJournalRepo
Package errorJournalRepo is the storage of the platform error journal: groups by fingerprint, a few samples per group, daily 404 counters and the notification settings.
|
Package errorJournalRepo is the storage of the platform error journal: groups by fingerprint, a few samples per group, daily 404 counters and the notification settings. |
|
delivery/repository/eventActivityRepo
Package eventActivityRepo appends rows to the event activity log.
|
Package eventActivityRepo appends rows to the event activity log. |
|
delivery/repository/eventAnalyticsRepo
Package eventAnalyticsRepo holds the query-side statements of event analytics: the rollup job's set operations (5-minute buckets, VPN sessions, progress state) and the report reads.
|
Package eventAnalyticsRepo holds the query-side statements of event analytics: the rollup job's set operations (5-minute buckets, VPN sessions, progress state) and the report reads. |
|
delivery/repository/eventAnswerFileRepo
Package eventAnswerFileRepo stores the files attached to participant and team answers.
|
Package eventAnswerFileRepo stores the files attached to participant and team answers. |
|
delivery/repository/eventChallengeGroupRepo
Package eventChallengeGroupRepo maps event-local board sections to storage.
|
Package eventChallengeGroupRepo maps event-local board sections to storage. |
|
delivery/repository/eventChallengeRepo
Package eventChallengeRepo maps event board task snapshots to PostgreSQL.
|
Package eventChallengeRepo maps event board task snapshots to PostgreSQL. |
|
delivery/repository/eventConfigRepo
Package eventConfigRepo is the repository for the 1:1 EventConfig aggregate: it accepts/returns whole domain entities and keeps all pgtype/sqlc mapping (nullable participation, timestamptz) out of the business layer.
|
Package eventConfigRepo is the repository for the 1:1 EventConfig aggregate: it accepts/returns whole domain entities and keeps all pgtype/sqlc mapping (nullable participation, timestamptz) out of the business layer. |
|
delivery/repository/eventContentRepo
Package eventContentRepo maps event page JSON documents to PostgreSQL while keeping sqlc row types out of event use cases.
|
Package eventContentRepo maps event page JSON documents to PostgreSQL while keeping sqlc row types out of event use cases. |
|
delivery/repository/eventExerciseRepo
Package eventExerciseRepo maps immutable event exercise links to PostgreSQL.
|
Package eventExerciseRepo maps immutable event exercise links to PostgreSQL. |
|
delivery/repository/eventLabAllocationRepo
Package eventLabAllocationRepo exposes narrow held-ledger read models and insert-only group admission envelopes.
|
Package eventLabAllocationRepo exposes narrow held-ledger read models and insert-only group admission envelopes. |
|
delivery/repository/eventLabRepo
Package eventLabRepo persists whole lifecycle aggregates and immutable objective pins.
|
Package eventLabRepo persists whole lifecycle aggregates and immutable objective pins. |
|
delivery/repository/eventManagerRepo
Package eventManagerRepo maps event-local management membership between the domain and generated PostgreSQL rows.
|
Package eventManagerRepo maps event-local management membership between the domain and generated PostgreSQL rows. |
|
delivery/repository/eventNotificationRepo
Package eventNotificationRepo owns the Event-level notification subscription overrides.
|
Package eventNotificationRepo owns the Event-level notification subscription overrides. |
|
delivery/repository/eventRepo
Package eventRepo is the repository for the platform Event aggregate: it accepts/returns whole domain entities and keeps all pgtype/sqlc mapping out of the business layer.
|
Package eventRepo is the repository for the platform Event aggregate: it accepts/returns whole domain entities and keeps all pgtype/sqlc mapping out of the business layer. |
|
delivery/repository/eventStageRepo
Package eventStageRepo maps event stages to PostgreSQL.
|
Package eventStageRepo maps event stages to PostgreSQL. |
|
delivery/repository/eventStandRepo
Package eventStandRepo persists team stands and the event stand rollout.
|
Package eventStandRepo persists team stands and the event stand rollout. |
|
delivery/repository/eventTeamRepo
Package eventTeamRepo maps the EventTeam aggregate to generated PostgreSQL queries and keeps pg/sqlc details out of use cases.
|
Package eventTeamRepo maps the EventTeam aggregate to generated PostgreSQL queries and keeps pg/sqlc details out of use cases. |
|
delivery/repository/exerciseRepo
Package exerciseRepo is the repository for the Exercise catalog aggregates: it accepts and returns whole domain entities and keeps all pgtype/sqlc/JSON mapping out of the business layer.
|
Package exerciseRepo is the repository for the Exercise catalog aggregates: it accepts and returns whole domain entities and keeps all pgtype/sqlc/JSON mapping out of the business layer. |
|
delivery/repository/flagFilterRepo
Package flagFilterRepo stores the issued-flag filters of event task variants (one row per event exercise, variant and subtask, rewritten in place) and the reads a rebuild needs: the stored expected flags and the pinned candidates.
|
Package flagFilterRepo stores the issued-flag filters of event task variants (one row per event exercise, variant and subtask, rewritten in place) and the reads a rebuild needs: the stored expected flags and the pinned candidates. |
|
delivery/repository/imageRegistryRepo
Package imageRegistryRepo is the repository of the platform image registry settings (platform_images.go: the record of each image pushed to the platform registry; blob_pushes.go: the state of the background image blob pushes (credential check results: the narrow SaveChecks / SaveCheck writes, apart from the whole-row writes, so a periodic check never rewrites tokens); event_secrets.go: the organizer secrets of events; event_images.go: the read-side list of the images an event's exercises use): one row (id is always true) written whole in one statement.
|
Package imageRegistryRepo is the repository of the platform image registry settings (platform_images.go: the record of each image pushed to the platform registry; blob_pushes.go: the state of the background image blob pushes (credential check results: the narrow SaveChecks / SaveCheck writes, apart from the whole-row writes, so a periodic check never rewrites tokens); event_secrets.go: the organizer secrets of events; event_images.go: the read-side list of the images an event's exercises use): one row (id is always true) written whole in one statement. |
|
delivery/repository/inAppTemplateRepo
Package inAppTemplateRepo is the repository for the in-app template version family: domain shapes in and out, sqlc rows and pgtype only inside.
|
Package inAppTemplateRepo is the repository for the in-app template version family: domain shapes in and out, sqlc rows and pgtype only inside. |
|
delivery/repository/inboxRepo
Package inboxRepo is the repository for a user's in-app notification inbox: domain shapes in and out, sqlc rows and metadata mapping only inside.
|
Package inboxRepo is the repository for a user's in-app notification inbox: domain shapes in and out, sqlc rows and metadata mapping only inside. |
|
delivery/repository/infrastructureAgentRepo
Package infrastructureAgentRepo persists the agent registry: every agent is enrolled (added in the admin, or bootstrapped from the deployment config with an enrollment token) and keeps its connection material in the database: the certificate in plain, the private keys as ciphertext.
|
Package infrastructureAgentRepo persists the agent registry: every agent is enrolled (added in the admin, or bootstrapped from the deployment config with an enrollment token) and keeps its connection material in the database: the certificate in plain, the private keys as ciphertext. |
|
delivery/repository/jobQueueRepo
Package jobQueueRepo reaches the River job queue for the few cases where a use case must cancel queued work.
|
Package jobQueueRepo reaches the River job queue for the few cases where a use case must cancel queued work. |
|
delivery/repository/labAccessSyncRepo
Package labAccessSyncRepo persists desired versus applied Laboratory ACL state.
|
Package labAccessSyncRepo persists desired versus applied Laboratory ACL state. |
|
delivery/repository/labBindingRepo
Package labBindingRepo maps durable Laboratory handles to the event domain.
|
Package labBindingRepo maps durable Laboratory handles to the event domain. |
|
delivery/repository/labPlacementRepo
Package labPlacementRepo remembers which infrastructure agent holds a lab group.
|
Package labPlacementRepo remembers which infrastructure agent holds a lab group. |
|
delivery/repository/labTrafficRepo
Package labTrafficRepo stores per-user lab access aggregates and the collector coverage (docs/LAB-TRAFFIC-ACCOUNTING.md).
|
Package labTrafficRepo stores per-user lab access aggregates and the collector coverage (docs/LAB-TRAFFIC-ACCOUNTING.md). |
|
delivery/repository/liveScreenRepo
Package liveScreenRepo stores the live screens of an event (their layouts and drafts, see displays.go) and their screen links (hashed tokens).
|
Package liveScreenRepo stores the live screens of an event (their layouts and drafts, see displays.go) and their screen links (hashed tokens). |
|
delivery/repository/mailRepo
Package mailRepo stores SMTP transports and Event mail settings, and the narrow job-state queries of the Event mail emitters (reminder, finished, expired invitations): domain shapes in and out, sqlc rows only inside.
|
Package mailRepo stores SMTP transports and Event mail settings, and the narrow job-state queries of the Event mail emitters (reminder, finished, expired invitations): domain shapes in and out, sqlc rows only inside. |
|
delivery/repository/mediaRepo
Package mediaRepo is the repository for the media subsystem: logical files, content-addressed blobs and ownership references.
|
Package mediaRepo is the repository for the media subsystem: logical files, content-addressed blobs and ownership references. |
|
delivery/repository/notificationSettingsRepo
Package notificationSettingsRepo is the repository for global and per-user notification settings and the platform signal notification defaults that Events inherit: whole domain shapes in and out, sqlc rows only here.
|
Package notificationSettingsRepo is the repository for global and per-user notification settings and the platform signal notification defaults that Events inherit: whole domain shapes in and out, sqlc rows only here. |
|
delivery/repository/participantPreviewRepo
Package participantPreviewRepo persists isolated settings and whole owned runs.
|
Package participantPreviewRepo persists isolated settings and whole owned runs. |
|
delivery/repository/participantRepo
Package participantRepo is the repository for the per-(event,user) Participant aggregate: it accepts/returns whole domain entities and keeps all pgtype/sqlc mapping (nullable decided_at, status filter sentinel) out of the business layer.
|
Package participantRepo is the repository for the per-(event,user) Participant aggregate: it accepts/returns whole domain entities and keeps all pgtype/sqlc mapping (nullable decided_at, status filter sentinel) out of the business layer. |
|
delivery/repository/platformAnalyticsRepo
Package platformAnalyticsRepo holds the query-side statements of platform-level analytics: read-only aggregates across the whole platform, returned as plain Go shapes (no pgtype outside the repo).
|
Package platformAnalyticsRepo holds the query-side statements of platform-level analytics: read-only aggregates across the whole platform, returned as plain Go shapes (no pgtype outside the repo). |
|
delivery/repository/platformSettingsRepo
Package platformSettingsRepo is the repository for the PlatformSetting aggregate: it accepts and returns whole domain entities and keeps all sqlc row mapping out of the business layer.
|
Package platformSettingsRepo is the repository for the PlatformSetting aggregate: it accepts and returns whole domain entities and keeps all sqlc row mapping out of the business layer. |
|
delivery/repository/platformStandRepo
Package platformStandRepo is the platform-wide, read-only view of team stands across events (query-side shapes, like the other list/stat reads).
|
Package platformStandRepo is the platform-wide, read-only view of team stands across events (query-side shapes, like the other list/stat reads). |
|
delivery/repository/postgres
Package postgres is the PostgreSQL repository: the connection pools, the sqlc queries and the unit of work.
|
Package postgres is the PostgreSQL repository: the connection pools, the sqlc queries and the unit of work. |
|
delivery/repository/postgres/mocks
Package postgresMocks is a generated GoMock package.
|
Package postgresMocks is a generated GoMock package. |
|
delivery/repository/requestIdempotencyRepo
Package requestIdempotencyRepo persists short-lived, cross-instance request replay records.
|
Package requestIdempotencyRepo persists short-lived, cross-instance request replay records. |
|
delivery/repository/resourceCalendarRepo
Package resourceCalendarRepo persists the resource calendar: reservations (one whole-row aggregate with the placement as JSON), change requests, readiness alarms, the settings and the test laboratory holds.
|
Package resourceCalendarRepo persists the resource calendar: reservations (one whole-row aggregate with the placement as JSON), change requests, readiness alarms, the settings and the test laboratory holds. |
|
delivery/repository/retentionRepo
Package retentionRepo runs the data retention statements (Privacy Policy, "Retention").
|
Package retentionRepo runs the data retention statements (Privacy Policy, "Retention"). |
|
delivery/repository/secretEnvelopeRepo
Package secretEnvelopeRepo maps persistent secret envelopes at the storage boundary.
|
Package secretEnvelopeRepo maps persistent secret envelopes at the storage boundary. |
|
delivery/repository/sessionRepo
Package sessionRepo is the repository for the Session aggregate: it accepts and returns whole domain entities (authModel.Session) and keeps all row-mapping concerns — including SessionMetadata JSON (de)serialization — out of the business layer.
|
Package sessionRepo is the repository for the Session aggregate: it accepts and returns whole domain entities (authModel.Session) and keeps all row-mapping concerns — including SessionMetadata JSON (de)serialization — out of the business layer. |
|
delivery/repository/signalOutboxRepo
Package signalOutboxRepo persists durable system signals through sqlc.
|
Package signalOutboxRepo persists durable system signals through sqlc. |
|
delivery/repository/siteBannerRepo
Package siteBannerRepo is the repository for site banners.
|
Package siteBannerRepo is the repository for site banners. |
|
delivery/repository/temporalCodeRepo
Package temporalCodeRepo is the repository for single-use temporal codes (password reset / email change): it accepts and returns the domain Code entity and keeps sqlc row/param types inside.
|
Package temporalCodeRepo is the repository for single-use temporal codes (password reset / email change): it accepts and returns the domain Code entity and keeps sqlc row/param types inside. |
|
delivery/repository/userRepo
Package userRepo is the repository for the User aggregate: it accepts and returns whole domain entities (userModel.User) and keeps all pgtype/sqlc mapping out of the business layer.
|
Package userRepo is the repository for the User aggregate: it accepts and returns whole domain entities (userModel.User) and keeps all pgtype/sqlc mapping out of the business layer. |
|
delivery/repository/vpnRepo
Package vpnRepo is the repository for the per-user VPN Config aggregate: it accepts/returns whole domain entities and keeps all sqlc/pgtype mapping (the nullable scope_ref) out of the application layer.
|
Package vpnRepo is the repository for the per-user VPN Config aggregate: it accepts/returns whole domain entities and keeps all sqlc/pgtype mapping (the nullable scope_ref) out of the application layer. |
|
eventrender
Package eventrender signs only short-lived, event-host-bound common-page reads.
|
Package eventrender signs only short-lived, event-host-bound common-page reads. |
|
jobs/accountinactivity
Package accountinactivityJob wires the inactive-account warning and deletion into River.
|
Package accountinactivityJob wires the inactive-account warning and deletion into River. |
|
jobs/agentmaintenance
Package agentmaintenanceJob wires the infrastructure agent upkeep into River.
|
Package agentmaintenanceJob wires the infrastructure agent upkeep into River. |
|
jobs/broadcastsend
Package broadcastsendJob wires the custom broadcast sender into River.
|
Package broadcastsendJob wires the custom broadcast sender into River. |
|
jobs/clusterreservations
Package clusterreservationsJob wires the periodic reconcile of the cluster reservations into River.
|
Package clusterreservationsJob wires the periodic reconcile of the cluster reservations into River. |
|
jobs/dataretention
Package dataretentionJob wires the data retention purge into River.
|
Package dataretentionJob wires the data retention purge into River. |
|
jobs/errorjournal
Package errorjournalJob connects the job queue to the platform error journal: every failed attempt, discarded job and panic of a River job is recorded, and the purge of old journal rows runs as a periodic job.
|
Package errorjournalJob connects the job queue to the platform error journal: every failed attempt, discarded job and panic of a River job is recorded, and the purge of old journal rows runs as a periodic job. |
|
jobs/eventanalytics
Package eventanalyticsJob wires the event analytics rollup pass into River.
|
Package eventanalyticsJob wires the event analytics rollup pass into River. |
|
jobs/eventformdelivery
Package eventformdeliveryJob materializes due timed Event-form assignments.
|
Package eventformdeliveryJob materializes due timed Event-form assignments. |
|
jobs/eventmail
Package eventmailJob wires the Event mail notices (start reminder, event finished, expired invitations) into River.
|
Package eventmailJob wires the Event mail notices (start reminder, event finished, expired invitations) into River. |
|
jobs/eventscoringpopulation
Package eventscoringpopulationJob captures stable scoring populations once events reach their configured start time.
|
Package eventscoringpopulationJob captures stable scoring populations once events reach their configured start time. |
|
jobs/eventstands
Package eventstandsJob wires the team stand engine into River.
|
Package eventstandsJob wires the team stand engine into River. |
|
jobs/exerciseexport
Package exerciseexportJob exports tasks with device images outside any HTTP request.
|
Package exerciseexportJob exports tasks with device images outside any HTTP request. |
|
jobs/exerciseimport
Package exerciseimportJob imports a task archive with device images outside any HTTP request.
|
Package exerciseimportJob imports a task archive with device images outside any HTTP request. |
|
jobs/idempotencygc
Package idempotencygcJob wires short-lived request replay cleanup into River.
|
Package idempotencygcJob wires short-lived request replay cleanup into River. |
|
jobs/imageblobpush
Package imageblobpushJob streams one chunked image-blob upload into the platform registry, outside any HTTP request.
|
Package imageblobpushJob streams one chunked image-blob upload into the platform registry, outside any HTTP request. |
|
jobs/imageregistrygc
Package imageregistrygcJob wires the periodic removal of unused platform registry tags into River.
|
Package imageregistrygcJob wires the periodic removal of unused platform registry tags into River. |
|
jobs/labaccesssync
Package labaccesssyncJob wires durable Laboratory ACL reconciliation into River.
|
Package labaccesssyncJob wires durable Laboratory ACL reconciliation into River. |
|
jobs/labcleanup
Package labcleanupJob wires withdrawn Laboratory teardown into River.
|
Package labcleanupJob wires withdrawn Laboratory teardown into River. |
|
jobs/labgroupsweep
Package labgroupsweepJob wires the orphan lab group sweep into River.
|
Package labgroupsweepJob wires the orphan lab group sweep into River. |
|
jobs/mediagc
Package mediagcJob wires the periodic media GC into River.
|
Package mediagcJob wires the periodic media GC into River. |
|
jobs/registrycheck
Package registrycheckJob wires the periodic check of the image registry credentials (platform push and pull tokens, organizer secrets of live events) into River.
|
Package registrycheckJob wires the periodic check of the image registry credentials (platform push and pull tokens, organizer secrets of live events) into River. |
|
jobs/resourcecalendar
Package resourcecalendarJob wires the resource calendar's readiness check into River.
|
Package resourcecalendarJob wires the resource calendar's readiness check into River. |
|
jobs/resultchangegc
Package resultchangegcJob wires short-lived live-result cleanup into River.
|
Package resultchangegcJob wires short-lived live-result cleanup into River. |
|
jobs/signalprocessing
Package signalprocessingJob wires the durable signal processor into River.
|
Package signalprocessingJob wires the durable signal processor into River. |
|
jobs/testdeployexpiry
Package testdeployexpiryJob wires the end of an exercise test lab's lease into River.
|
Package testdeployexpiryJob wires the end of an exercise test lab's lease into River. |
|
jobs/testdeployremovalcheck
Package testdeployremovalcheckJob wires the short follow-up check of a test lab that is being removed into River.
|
Package testdeployremovalcheckJob wires the short follow-up check of a test lab that is being removed into River. |
|
leader
Package leader makes exactly one replica run the background loops that talk to the laboratory agents or write shared state on a timer (agent monitoring, maintenance polling, the journal's periodic checks).
|
Package leader makes exactly one replica run the background loops that talk to the laboratory agents or write shared state on a timer (agent monitoring, maintenance polling, the journal's periodic checks). |
|
limits
Package limits holds the process-wide abuse limits (config.LimitsConfig), set once at start.
|
Package limits holds the process-wide abuse limits (config.LimitsConfig), set once at start. |
|
loadtest
Package loadtest creates and removes the accounts of a load-test run.
|
Package loadtest creates and removes the accounts of a load-test run. |
|
model/challengeAttempt
Package challengeAttempt owns an immutable submitted answer.
|
Package challengeAttempt owns an immutable submitted answer. |
|
model/errorJournal
Package errorJournal is the platform error journal: what broke, grouped by fingerprint.
|
Package errorJournal is the platform error journal: what broke, grouped by fingerprint. |
|
model/event
Package eventModel is the DOMAIN layer of the platform event: the thin Event tenancy aggregate (subdomain tag + a two-date availability window) and the invariants it holds.
|
Package eventModel is the DOMAIN layer of the platform event: the thin Event tenancy aggregate (subdomain tag + a two-date availability window) and the invariants it holds. |
|
model/eventActivity
Package eventActivityModel is the vocabulary of the event activity log (docs/EVENT-ANALYTICS.md §3, D1/D2): what participants did on the event site.
|
Package eventActivityModel is the vocabulary of the event activity log (docs/EVENT-ANALYTICS.md §3, D1/D2): what participants did on the event site. |
|
model/eventAnalytics
Package eventAnalyticsModel owns the event analytics rules (docs/EVENT-ANALYTICS.md): who may see which report (§7), how VPN sessions are derived from handshakes (D5) and when the rollups of an event are final (§5).
|
Package eventAnalyticsModel owns the event analytics rules (docs/EVENT-ANALYTICS.md): who may see which report (§7), how VPN sessions are derived from handshakes (D5) and when the rollups of an event are final (§5). |
|
model/eventChallenge
Package eventChallengeModel owns a task as it appears on an event board.
|
Package eventChallengeModel owns a task as it appears on an event board. |
|
model/eventChallengeGroup
Package eventChallengeGroup owns named, event-local board sections.
|
Package eventChallengeGroup owns named, event-local board sections. |
|
model/eventConfig
Package eventConfigModel is the DOMAIN layer of a platform event's configuration: the participant-visible settings that hang off the tenancy Event (1:1).
|
Package eventConfigModel is the DOMAIN layer of a platform event's configuration: the participant-visible settings that hang off the tenancy Event (1:1). |
|
model/eventExercise
Package eventExerciseModel owns the immutable link from an event to one published catalog version.
|
Package eventExerciseModel owns the immutable link from an event to one published catalog version. |
|
model/eventLab
Package eventLabModel owns the desired lifecycle of one team's shared lab generation.
|
Package eventLabModel owns the desired lifecycle of one team's shared lab generation. |
|
model/eventManager
Package eventManagerModel owns event-local management membership.
|
Package eventManagerModel owns event-local management membership. |
|
model/eventStand
Package eventStandModel owns the rules of a team stand: everything one team gets from Laboratory for an event (its LabGroup and one Lab per infrastructure challenge).
|
Package eventStandModel owns the rules of a team stand: everything one team gets from Laboratory for an event (its LabGroup and one Lab per infrastructure challenge). |
|
model/eventTeam
Package eventTeamModel owns the universal competing unit of an event.
|
Package eventTeamModel owns the universal competing unit of an event. |
|
model/exercise
Package exerciseModel is the DOMAIN layer of the exercise catalog: the Exercise identity aggregate, the versioned content snapshot (ExerciseVersion → Variant → Task/Topology) and every invariant they hold.
|
Package exerciseModel is the DOMAIN layer of the exercise catalog: the Exercise identity aggregate, the versioned content snapshot (ExerciseVersion → Variant → Task/Topology) and every invariant they hold. |
|
model/flagfilter
Package flagfilter keeps the flags already issued for one task variant of an event exercise, so a new team gets a value no other team has.
|
Package flagfilter keeps the flags already issued for one task variant of an event exercise, so a new team gets a value no other team has. |
|
model/flagpattern
Package flagpattern parses catalog flag candidates and resolves one at materialization time.
|
Package flagpattern parses catalog flag candidates and resolves one at materialization time. |
|
model/labAccess
Package labAccessModel defines the transport-neutral desired Laboratory ACL.
|
Package labAccessModel defines the transport-neutral desired Laboratory ACL. |
|
model/labMonitoring
Package labMonitoring owns durable, secret-free Laboratory observations.
|
Package labMonitoring owns durable, secret-free Laboratory observations. |
|
model/labTraffic
Package labTraffic owns per-user lab access accounting: one aggregate per event, team, user and lab target, plus the collector coverage that tells «did not touch» from «we could not see».
|
Package labTraffic owns per-user lab access accounting: one aggregate per event, team, user and lab target, plus the collector coverage that tells «did not touch» from «we could not see». |
|
model/mail
Package mailModel is the W7 mail domain: SMTP transports (platform and per-Event), the sender identity rules and the Event mail settings.
|
Package mailModel is the W7 mail domain: SMTP transports (platform and per-Event), the sender identity rules and the Event mail settings. |
|
model/media
Package mediaModel is the DOMAIN layer of the media subsystem: content-addressed files (dedup by sha256) with refcounted ownership links.
|
Package mediaModel is the DOMAIN layer of the media subsystem: content-addressed files (dedup by sha256) with refcounted ownership links. |
|
model/notification/branding
Package branding holds the brand context email rendering resolves colour tokens and the logo against.
|
Package branding holds the brand context email rendering resolves colour tokens and the logo against. |
|
model/notification/broadcast
Package broadcastModel is the domain of custom broadcasts: one message an admin or an Event manager authors and sends to a chosen audience.
|
Package broadcastModel is the domain of custom broadcasts: one message an admin or an Event manager authors and sends to a chosen audience. |
|
model/notification/emaildefaults
Package emaildefaults is the code-owned source of the default email templates: subject, preheader and blocks of every notification type, in Ukrainian (the seeded rows) and English (for the day mail has a language).
|
Package emaildefaults is the code-owned source of the default email templates: subject, preheader and blocks of every notification type, in Ukrainian (the seeded rows) and English (for the day mail has a language). |
|
model/notification/inappdefaults
Package inappdefaults is the code-owned source of the default in-app (inbox) notification copy: title, body and the one action link of every participant/manager notification type, in Ukrainian (the seeded rows) and English.
|
Package inappdefaults is the code-owned source of the default in-app (inbox) notification copy: title, body and the one action link of every participant/manager notification type, in Ukrainian (the seeded rows) and English. |
|
model/participant
Package participantModel is the DOMAIN layer of event participation: a per-(event,user) record with an approval status.
|
Package participantModel is the DOMAIN layer of event participation: a per-(event,user) record with an approval status. |
|
model/participantPreview
Package participantPreviewModel owns progress separate from competition attempts.
|
Package participantPreviewModel owns progress separate from competition attempts. |
|
model/platformAnalytics
Package platformAnalyticsModel holds the value objects of platform-level analytics (docs/EVENT-ANALYTICS.md §8): the report period.
|
Package platformAnalyticsModel holds the value objects of platform-level analytics (docs/EVENT-ANALYTICS.md §8): the report period. |
|
model/resourceCalendar
Package resourceCalendar is the platform's resource calendar: reservations of lab resources over 15-minute slots, the packing that decides whether they fit the agents, and the placement of a reservation over agents.
|
Package resourceCalendar is the platform's resource calendar: reservations of lab resources over 15-minute slots, the packing that decides whether they fit the agents, and the placement of a reservation over agents. |
|
model/resources
Package resourcesModel is the platform's device resources model: the presets an author picks from, the frame every device must sit in, the ceiling an elevation may reach, and the sums the planning uses.
|
Package resourcesModel is the platform's device resources model: the presets an author picks from, the frame every device must sit in, the ceiling an elevation may reach, and the sums the planning uses. |
|
model/retention
Package retentionModel holds the data retention periods of the Privacy Policy ("Retention") and the cutoffs they give at a moment in time.
|
Package retentionModel holds the data retention periods of the Privacy Policy ("Retention") and the cutoffs they give at a moment in time. |
|
model/secret
Package secretModel defines opaque references and immutable envelope metadata for values that must never enter a signal or notification payload.
|
Package secretModel defines opaque references and immutable envelope metadata for values that must never enter a signal or notification payload. |
|
model/signal
Package signalModel defines durable system facts emitted by domain use cases.
|
Package signalModel defines durable system facts emitted by domain use cases. |
|
model/site
Package siteModel names the frontend a request comes from: one of the platform sites or an event site.
|
Package siteModel names the frontend a request comes from: one of the platform sites or an event site. |
|
model/siteBanner
Package siteBannerModel is the domain of site banners: one short authored line shown above the navbar of every app of its scope.
|
Package siteBannerModel is the domain of site banners: one short authored line shown above the navbar of every app of its scope. |
|
model/teamChallenge
Package teamChallengeModel owns a challenge materialized for one team.
|
Package teamChallengeModel owns a challenge materialized for one team. |
|
model/vpn
Package vpnModel is the domain for per-user VPN access records: a WireGuard config issued to a user within a scope (an event, or a standalone test), stored encrypted.
|
Package vpnModel is the domain for per-user VPN access records: a WireGuard config issued to a user within a scope (an event, or a standalone test), stored encrypted. |
|
monitoring/lab
Package lab runs the optional, singleton Laboratory monitoring subscription.
|
Package lab runs the optional, singleton Laboratory monitoring subscription. |
|
seed
Package seed fills a development database with test data for live end-to-end checks: verified accounts, a catalog of published exercises with lab topologies, and one event with registration open, teams, and every exercise attached.
|
Package seed fills a development database with test data for live end-to-end checks: verified accounts, a catalog of published exercises with lab topologies, and one event with registration open, teams, and every exercise attached. |
|
session
Package session holds the machinery of the session cookie: the encrypted ticket the cookie carries, the in-memory set of revoked sessions every replica keeps, and the batching of last_seen writes.
|
Package session holds the machinery of the session cookie: the encrypted ticket the cookie carries, the in-memory set of revoked sessions every replica keeps, and the batching of last_seen writes. |
|
testhelpers
Package testhelpers provides shared fixtures for integration tests.
|
Package testhelpers provides shared fixtures for integration tests. |
|
useCase/analyticsCache
Package analyticsCache is the shared report cache of the analytics use cases (event and platform): a report is computed once per key for concurrent viewers (singleflight) and kept for a short time (the results cache pattern, see useCase/event/results_cache.go).
|
Package analyticsCache is the shared report cache of the analytics use cases (event and platform): a report is computed once per key for concurrent viewers (singleflight) and kept for a short time (the results cache pattern, see useCase/event/results_cache.go). |
|
useCase/auth
Application-layer read models for the admin user area and self-profile: shapes this use case produces for delivery.
|
Application-layer read models for the admin user area and self-profile: shapes this use case produces for delivery. |
|
useCase/errorJournal
Package errorJournalUseCase records what broke on the platform, groups it by fingerprint, tells the operators and serves the admin page.
|
Package errorJournalUseCase records what broke on the platform, groups it by fingerprint, tells the operators and serves the admin page. |
|
useCase/event
Package event implements the platform Event tenancy application layer: identity CRUD, the event config (participant-visible settings, 1:1 with an Event), and their mutateEvent/mutateEventConfig optimistic-lock write paths.
|
Package event implements the platform Event tenancy application layer: identity CRUD, the event config (participant-visible settings, 1:1 with an Event), and their mutateEvent/mutateEventConfig optimistic-lock write paths. |
|
useCase/eventAnalytics
Package eventAnalytics is the event analytics application layer (docs/EVENT-ANALYTICS.md): the access rules of §7 for the analytics API, the report reads behind a short shared cache, and the rollup job that keeps the 5-minute buckets, VPN sessions and lab usage up to date.
|
Package eventAnalytics is the event analytics application layer (docs/EVENT-ANALYTICS.md): the access rules of §7 for the analytics API, the report reads behind a short shared cache, and the rollup job that keeps the 5-minute buckets, VPN sessions and lab usage up to date. |
|
useCase/eventManager
Package eventManager implements event-local authorization.
|
Package eventManager implements event-local authorization. |
|
useCase/exercise
Package exercise implements the versioned exercise catalog application layer: identity CRUD, draft/publish lifecycle and secret handling.
|
Package exercise implements the versioned exercise catalog application layer: identity CRUD, draft/publish lifecycle and secret handling. |
|
useCase/imageRegistry
Package imageRegistryUseCase owns the platform image registry settings («Панель платформи»): the provider, account and repository, and the push and pull tokens, stored sealed with the platform cipher and never shown back.
|
Package imageRegistryUseCase owns the platform image registry settings («Панель платформи»): the provider, account and repository, and the push and pull tokens, stored sealed with the platform cipher and never shown back. |
|
useCase/infrastructure
Package infrastructure is the application-side seam to the cyber-range infrastructure agent (the laboratory LabManager).
|
Package infrastructure is the application-side seam to the cyber-range infrastructure agent (the laboratory LabManager). |
|
useCase/mail
Package mailUseCase owns the W7 mail transports: SMTP settings stored in the database (platform and per Event, passwords sealed with pkg/secret), the per-message transport and sender resolution used by the email channel, connection tests and the Event delivery journal.
|
Package mailUseCase owns the W7 mail transports: SMTP settings stored in the database (platform and per Event, passwords sealed with pkg/secret), the per-message transport and sender resolution used by the email channel, connection tests and the Event delivery journal. |
|
useCase/media
Package media implements the media subsystem application layer: streamed uploads with sha256 dedup, downloads, ownership references and orphan GC.
|
Package media implements the media subsystem application layer: streamed uploads with sha256 dedup, downloads, ownership references and orphan GC. |
|
useCase/notification/banner
Package bannerUseCase manages site banners and answers which of them a viewer sees.
|
Package bannerUseCase manages site banners and answers which of them a viewer sees. |
|
useCase/notification/broadcast
Package broadcastUseCase composes, sends and lists custom broadcasts.
|
Package broadcastUseCase composes, sends and lists custom broadcasts. |
|
useCase/notification/dispatcher/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
|
useCase/notification/pulse
Package pulseUseCase answers what a client of a site has to know cheaply and often: the version of the banners it should show and the state of the signed-in user's inbox.
|
Package pulseUseCase answers what a client of a site has to know cheaply and often: the version of the banners it should show and the state of the signed-in user's inbox. |
|
useCase/notification/startupdefaults
Package startupdefaults creates the settings and default templates of the notification types that have no migration (emaildefaults.StartupSeeded for email, inappdefaults.StartupSeeded for in-app).
|
Package startupdefaults creates the settings and default templates of the notification types that have no migration (emaildefaults.StartupSeeded for email, inappdefaults.StartupSeeded for in-app). |
|
useCase/platformAnalytics
Package platformAnalytics is the application layer of platform-level analytics (docs/EVENT-ANALYTICS.md §8, docs/PLATFORM-ANALYTICS.md): one read model per admin «Аналітика» section, aggregates only.
|
Package platformAnalytics is the application layer of platform-level analytics (docs/EVENT-ANALYTICS.md §8, docs/PLATFORM-ANALYTICS.md): one read model per admin «Аналітика» section, aggregates only. |
|
useCase/resourceCalendar
Package resourceCalendarUseCase is the resource calendar: it decides how much of the agents' capacity each event (and each test laboratory booking) holds over time, places the reservations over the agents by packing, lets organizers ask for changes, raises readiness alarms and admits test laboratories.
|
Package resourceCalendarUseCase is the resource calendar: it decides how much of the agents' capacity each event (and each test laboratory booking) holds over time, places the reservations over the agents by packing, lets organizers ask for changes, raises readiness alarms and admits test laboratories. |
|
useCase/retention
Package retention enforces the data retention periods of the Privacy Policy ("Retention"): it purges data past its period and removes inactive accounts after an email warning.
|
Package retention enforces the data retention periods of the Privacy Policy ("Retention"): it purges data past its period and removes inactive accounts after an email warning. |
|
useCase/secret
Package secretUseCase owns envelope persistence and the narrow decrypt-and-use boundary.
|
Package secretUseCase owns envelope persistence and the narrow decrypt-and-use boundary. |
|
useCase/vpn
Package vpn is the application layer for per-user VPN access records: it encrypts a WireGuard config before storage and decrypts it on read, keyed by (user, scope).
|
Package vpn is the application layer for per-user VPN access records: it encrypts a WireGuard config before storage and decrypts it on read, keyed by (user, scope). |
|
pkg
|
|
|
agentcrypto
Package agentcrypto holds the key material an infrastructure agent is enrolled with: the client key and certificate request for mutual TLS, the signing key pair of the lab access tokens, and the reading of an issued certificate.
|
Package agentcrypto holds the key material an infrastructure agent is enrolled with: the client key and certificate request for mutual TLS, the signing key pair of the lab access tokens, and the reading of an issued certificate. |
|
labaccess
Package labaccess signs the lab access tokens of the laboratory L7 proxy: the handoff links.
|
Package labaccess signs the lab access tokens of the laboratory L7 proxy: the handoff links. |
|
ociregistry
Package ociregistry is a small OCI distribution client: blob HEAD/push, manifest PUT/HEAD and an auth check, with the token/basic challenge handled by go-containerregistry's transport.
|
Package ociregistry is a small OCI distribution client: blob HEAD/push, manifest PUT/HEAD and an auth check, with the token/basic challenge handled by go-containerregistry's transport. |
|
ociregistry/archivetest
Package archivetest builds small image archives for tests: the layouts `docker save` writes (legacy manifest.json, Docker ≥25 OCI layout, a multi-platform index).
|
Package archivetest builds small image archives for tests: the layouts `docker save` writes (legacy manifest.json, Docker ≥25 OCI layout, a multi-platform index). |
|
ociregistry/provider
Package provider holds the provider-specific parts of the platform image registry: listing the repositories a token can see and deleting tags.
|
Package provider holds the provider-specific parts of the platform image registry: listing the repositories a token can see and deleting tags. |
|
overload
Package overload holds the sentinels that tell the HTTP layer a request was refused because the server is saturated, however many layers wrapped the cause on the way up.
|
Package overload holds the sentinels that tell the HTTP layer a request was refused because the server is saturated, however many layers wrapped the cause on the way up. |
|
ratelimit
Package ratelimit holds the in-memory limiters of the authentication flows: a sliding-window counter (mail per recipient, request bursts) and a failure lockout with growing delay (password guessing).
|
Package ratelimit holds the in-memory limiters of the authentication flows: a sliding-window counter (mail per recipient, request bursts) and a failure lockout with growing delay (password guessing). |
|
secret
Package secret provides AES-256-GCM encryption of short string values (e.g.
|
Package secret provides AES-256-GCM encryption of short string values (e.g. |
|
storage
Package storage is a thin S3/MinIO object-store client.
|
Package storage is a thin S3/MinIO object-store client. |
|
telegram
Package telegram is the smallest Telegram Bot API client: sendMessage to a chat id.
|
Package telegram is the smallest Telegram Bot API client: sendMessage to a chat id. |
|
tools
|
|
|
checkerrorcodes
command
Command checkerrorcodes enforces the error-code convention: within one object code, every error variable must hold a unique DetailCode — the lib's err.As compares only DetailCode when the target has one, so a duplicate makes errors.Is conflate two unrelated errors (e.g.
|
Command checkerrorcodes enforces the error-code convention: within one object code, every error variable must hold a unique DetailCode — the lib's err.As compares only DetailCode when the target has one, so a duplicate makes errors.Is conflate two unrelated errors (e.g. |
|
checklayers
command
Command checklayers enforces the layering rule from CLAUDE.md: the domain (internal/model/...) must not import the application or delivery layers.
|
Command checklayers enforces the layering rule from CLAUDE.md: the domain (internal/model/...) must not import the application or delivery layers. |
|
checkroutes
command
Command checkroutes enforces the route-gating rule from CLAUDE.md: since use cases no longer duplicate permission checks, EVERY HTTP route registration in the handler packages must be gated by RequirePermission (inline, via a local middleware variable, or on its group).
|
Command checkroutes enforces the route-gating rule from CLAUDE.md: since use cases no longer duplicate permission checks, EVERY HTTP route registration in the handler packages must be gated by RequirePermission (inline, via a local middleware variable, or on its group). |
|
errorcatalog
command
Command errorcatalog emits the API error catalog as JSON: { "<FullCode>": "<English message>" }.
|
Command errorcatalog emits the API error catalog as JSON: { "<FullCode>": "<English message>" }. |
|
lifecyclefixture
command
lifecyclefixture exports actual immutable Lab/objective pins for END browser work without exporting credentials, expected flags, topology or variable data.
|
lifecyclefixture exports actual immutable Lab/objective pins for END browser work without exporting credentials, expected flags, topology or variable data. |
|
lifecycleworker
command
lifecycleworker drives the actual PostgreSQL/River/native agent seam for END evidence.
|
lifecycleworker drives the actual PostgreSQL/River/native agent seam for END evidence. |
|
loadtest
command
Command loadtest drives a load test of an event on the Cyber ICE Box platform: teams of participants sign in, join the event and a team, open the tasks, wait for the labs, fetch the VPN config, submit flags and poll the scoreboard, then it reports latency per endpoint, error rates and lab start times.
|
Command loadtest drives a load test of an event on the Cyber ICE Box platform: teams of participants sign in, join the event and a team, open the tasks, wait for the labs, fetch the VPN config, submit flags and poll the scoreboard, then it reports latency per endpoint, error rates and lab start times. |
Click to show internal directories.
Click to hide internal directories.