43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# #region DashboardsApi [C:5] [TYPE Module] [SEMANTICS dashboard, api, package, search, git, task]
|
|
#
|
|
# @BRIEF API endpoints for the Dashboard Hub - listing dashboards with Git and task status
|
|
# @LAYER: API
|
|
# @RELATION DEPENDS_ON -> [AppDependencies]
|
|
# @RELATION DEPENDS_ON -> [ResourceService]
|
|
# @RELATION DEPENDS_ON -> [SupersetClient]
|
|
#
|
|
# @INVARIANT: All dashboard responses include git_status and last_task metadata
|
|
#
|
|
# @PRE: Valid environment configurations exist in ConfigManager.
|
|
# @POST: Dashboard responses are projected into DashboardsResponse DTO.
|
|
# @SIDE_EFFECT: Performs external calls to Superset API and potentially Git providers.
|
|
# @DATA_CONTRACT: Input(env_id, filters) -> Output(DashboardsResponse)
|
|
#
|
|
# @TEST_CONTRACT: DashboardsAPI -> {
|
|
# required_fields: {env_id: string, page: integer, page_size: integer},
|
|
# optional_fields: {search: string},
|
|
# invariants: ["Pagination must be valid", "Environment must exist"]
|
|
# }
|
|
#
|
|
# @TEST_FIXTURE: dashboard_list_happy -> {
|
|
# "env_id": "prod",
|
|
# "expected_count": 1,
|
|
# "dashboards": [{"id": 1, "title": "Main Revenue"}]
|
|
# }
|
|
#
|
|
# @TEST_EDGE: pagination_zero_page -> {"env_id": "prod", "page": 0, "status": 400}
|
|
# @TEST_EDGE: pagination_oversize -> {"env_id": "prod", "page_size": 101, "status": 400}
|
|
# @TEST_EDGE: missing_env -> {"env_id": "ghost", "status": 404}
|
|
# @TEST_EDGE: empty_dashboards -> {"env_id": "empty_env", "expected_total": 0}
|
|
# @TEST_EDGE: external_superset_failure -> {"env_id": "bad_conn", "status": 503}
|
|
#
|
|
# @TEST_INVARIANT: metadata_consistency -> verifies: [dashboard_list_happy, empty_dashboards]
|
|
|
|
from ._router import router
|
|
from ._schemas import *
|
|
from ._listing_routes import *
|
|
from ._detail_routes import *
|
|
from ._action_routes import *
|
|
|
|
# #endregion DashboardsApi
|