Server Domain
Language
- Elixir.
Runtime Context
- Server domain/data layer.
- Ash domain with JSON:API and Phoenix integration.
Purpose
- Defines domain resources, resource action functions, and Ash JSON:API routes.
Key Files
packages/server/lib/nixstasis/domain.expackages/server/lib/nixstasis/devices/device.expackages/server/lib/nixstasis/devices/pending_command.expackages/server/lib/nixstasis/monitoring/alert.expackages/server/lib/nixstasis/monitoring/alert_rule.expackages/server/lib/nixstasis/monitoring/telemetry.expackages/server/lib/nixstasis/reporting/custom_report.expackages/server/lib/nixstasis/system_setting.expackages/server/lib/nixstasis_web/ash_json_api_router.expackages/server/priv/static/openapi.yaml
Public Interfaces
- Ash domain APIs defined in
Nixstasis.Domain:list_devicesget_deviceget_device_by_maccreate_deviceregister_deviceupdate_devicedestroy_devicelist_pending_commandscreate_pending_commandupdate_pending_commanddestroy_pending_commandlist_alertscreate_alertupdate_alertdestroy_alertlist_rulesget_rulecreate_ruleupdate_ruledestroy_rulelist_telemetry_eventscreate_telemetry_eventlist_custom_reportsget_custom_reportcreate_custom_reportupdate_custom_reportdestroy_custom_reportget_setting_by_keycreate_settingupdate_setting
Dependencies
Internal
- Ash resources under
Nixstasis.Devices,Nixstasis.Monitoring,Nixstasis.Reporting, andNixstasis.SystemSetting. NixstasisWeb.AshJsonApiRouter.
External
- Ash
- AshJsonApi
- AshPhoenix
- AshPostgres
Client-Server Interaction Details
- Ash JSON:API routes are exposed under
/api/json. - Resource route groups:
/api/json/devices/api/json/pending_commands/api/json/alerts/api/json/alert_rules/api/json/telemetry_events/api/json/custom_reports/api/json/system_settings
- Swagger UI is forwarded at
/api/json/swaggerui.
Traceable references:
packages/server/lib/nixstasis/domain.ex:1-122packages/server/lib/nixstasis_web/router.ex:22-28packages/server/priv/static/openapi.yaml:3190