1#[cfg(feature = "dashboard-host")]
4mod build;
5#[cfg(feature = "dashboard-host")]
6mod live;
7mod model;
8mod node_status;
9#[cfg(feature = "dashboard-host")]
10mod source;
11mod text;
12
13#[cfg(feature = "dashboard-host")]
14pub use build::{
15 build_ic_boundary_node_data_centers_report,
16 build_ic_boundary_node_data_centers_report_with_source, build_ic_canister_count_report,
17 build_ic_canister_count_report_with_source, build_ic_canister_page_report,
18 build_ic_canister_page_report_with_source, build_ic_daily_stats_report,
19 build_ic_daily_stats_report_with_source, build_ic_metric_report,
20 build_ic_metric_report_with_source, build_ic_node_status_snapshot,
21 build_ic_node_status_snapshot_with_source, build_ic_replica_version_info_report,
22 build_ic_replica_version_info_report_with_source, build_ic_replica_version_list_report,
23 build_ic_replica_version_list_report_with_source, build_icrc_indexed_count_report,
24 build_icrc_indexed_count_report_with_source, build_icrc_token_value_report,
25 build_icrc_token_value_report_with_source, build_icrc_total_supply_report,
26 build_icrc_total_supply_report_with_source,
27};
28#[cfg(feature = "dashboard-host")]
29pub use build::{build_ic_canister_report, build_ic_canister_report_with_source};
30#[cfg(feature = "dashboard-host")]
31pub use live::LiveIcSource;
32pub use model::{
33 IcBoundaryNodeDataCenterRow, IcBoundaryNodeDataCentersReport, IcBoundaryNodeDataCentersRequest,
34 IcCanisterCountReport, IcCanisterCountRequest, IcCanisterFilters, IcCanisterPageController,
35 IcCanisterPageReport, IcCanisterPageRequest, IcCanisterPageRow, IcCanisterReport,
36 IcCanisterRequest, IcCanisterUpgrade, IcDailyStatsQuery, IcDailyStatsReport,
37 IcDailyStatsRequest, IcDailyStatsRow, IcDashboardReportProvenance, IcIcrcAnalyticsRequest,
38 IcIcrcIndexedCountKind, IcIcrcIndexedCountReport, IcIcrcIndexedCountRequest,
39 IcIcrcTokenValueQuery, IcIcrcTokenValueReport, IcIcrcTokenValueRequest, IcIcrcTokenValueRow,
40 IcIcrcTotalSupplyObservation, IcIcrcTotalSupplyQuery, IcIcrcTotalSupplyReport,
41 IcIcrcTotalSupplyRequest, IcMetricKind, IcMetricObservation, IcMetricQuery, IcMetricReport,
42 IcMetricRequest, IcMetricSeries, IcReplicaVersionInfoReport, IcReplicaVersionInfoRequest,
43 IcReplicaVersionListQuery, IcReplicaVersionListReport, IcReplicaVersionListRequest,
44 IcReplicaVersionListRow, IcReplicaVersionStatus, IcReplicaVersionSubnetRollout,
45};
46#[cfg(feature = "dashboard-host")]
47pub use model::{
48 IcBoundaryNodeDataCentersSourceData, IcCanisterCountSourceData, IcCanisterPageSourceData,
49 IcCanisterSourceData, IcDailyStatsSourceData, IcHostError, IcIcrcIndexedCountSourceData,
50 IcIcrcTokenValueSourceData, IcIcrcTokenValueSourceRow, IcIcrcTotalSupplySourceData,
51 IcMetricSourceData, IcReplicaVersionInfoSourceData, IcReplicaVersionListSourceData,
52 IcSourceRequest,
53};
54pub use node_status::{
55 DEFAULT_IC_NODE_STATUS_REFRESH_LOCK_STALE_SECONDS, DEFAULT_IC_NODE_STATUS_STALE_AFTER_SECONDS,
56 IC_NODE_STATUS_SCHEMA_VERSION, IcNodeAssignmentStatusCounts, IcNodeCountComparison,
57 IcNodeCountComparisonCounts, IcNodeOperationalStatus, IcNodeProviderStatusReport,
58 IcNodeProviderStatusRow, IcNodeStatusCacheEvidence, IcNodeStatusCounts,
59 IcNodeStatusGroupCounts, IcNodeStatusObservation, IcNodeStatusProjectionError,
60 IcNodeStatusReport, IcNodeStatusRow, IcNodeStatusScope, IcNodeStatusSnapshot,
61 IcNodeStatusSnapshotRequest, IcNodeStatusView, IcSubnetStatusReport, IcSubnetStatusRow,
62 MAX_IC_NODE_STATUS_ROWS, ic_node_provider_status_report_from_snapshot,
63 ic_node_provider_status_report_text, ic_node_status_report_from_snapshot,
64 ic_node_status_report_text, ic_subnet_status_report_from_snapshot,
65 ic_subnet_status_report_text,
66};
67#[cfg(feature = "dashboard-host")]
68pub use node_status::{
69 IcNodeStatusCacheRequest, IcNodeStatusHostError, IcNodeStatusReadRequest,
70 IcNodeStatusRefreshReport, IcNodeStatusRefreshRequest, IcNodeStatusSourceData,
71 build_ic_node_provider_status_report, build_ic_node_provider_status_report_with_source,
72 build_ic_node_status_report, build_ic_node_status_report_with_source,
73 build_ic_subnet_status_report, build_ic_subnet_status_report_with_source,
74 ic_node_status_cache_path, ic_node_status_refresh_lock_path,
75 ic_node_status_refresh_report_text, load_cached_ic_node_status_snapshot,
76 load_or_refresh_missing_ic_node_status_snapshot,
77 load_or_refresh_missing_ic_node_status_snapshot_with_source,
78 load_or_refresh_stale_ic_node_status_snapshot,
79 load_or_refresh_stale_ic_node_status_snapshot_with_source, refresh_ic_node_status_snapshot,
80 refresh_ic_node_status_snapshot_with_source,
81};
82#[cfg(feature = "dashboard-host")]
83pub use source::{
84 IcCanisterCollectionSource, IcCanisterSource, IcIcrcAnalyticsSource, IcMetricSource,
85 IcNetworkSource, IcNodeStatusSource, IcReplicaVersionSource,
86};
87pub use text::{
88 ic_boundary_node_data_centers_report_text, ic_canister_count_report_text,
89 ic_canister_page_report_text, ic_canister_report_text, ic_daily_stats_report_text,
90 ic_metric_report_text, ic_replica_version_info_report_text,
91 ic_replica_version_list_report_text, icrc_indexed_count_report_text,
92 icrc_token_value_report_text, icrc_total_supply_report_text,
93};
94
95pub const DEFAULT_IC_DASHBOARD_SOURCE_ENDPOINT: &str = "https://ic-api.internetcomputer.org/api/v3";
97
98pub const DEFAULT_IC_DASHBOARD_CANISTER_COLLECTION_SOURCE_ENDPOINT: &str =
100 "https://ic-api.internetcomputer.org/api/v4";
101
102pub const DEFAULT_IC_DASHBOARD_METRICS_SOURCE_ENDPOINT: &str =
104 "https://metrics-api.internetcomputer.org/api/v1";
105
106pub const DEFAULT_ICRC_ANALYTICS_SOURCE_ENDPOINT: &str =
108 "https://icrc-api.internetcomputer.org/api/v2";
109
110pub const DEFAULT_IC_BOUNDARY_NODE_DATA_CENTERS_SOURCE_ENDPOINT: &str =
112 "https://ic-api.internetcomputer.org/api/v4";
113
114pub const MAX_IC_DASHBOARD_RESPONSE_BYTES: u64 = 8 * 1024 * 1024;
116
117pub const DEFAULT_IC_CANISTER_PAGE_LIMIT: u16 = 50;
119
120pub const MAX_IC_CANISTER_PAGE_LIMIT: u16 = 100;
122
123pub const DEFAULT_IC_METRIC_WINDOW_SECS: u64 = 3_600;
125
126pub const DEFAULT_IC_METRIC_STEP_SECS: u32 = 300;
128
129pub const MIN_IC_METRIC_TIMESTAMP: u64 = 1_620_432_000;
131
132pub const MAX_IC_METRIC_STEP_SECS: u32 = 259_200;
134
135pub const MAX_IC_METRIC_OBSERVATIONS_PER_SERIES: u64 = 1_000;
137
138pub const DEFAULT_ICRC_TOTAL_SUPPLY_WINDOW_SECS: u64 = 30 * 24 * 60 * 60;
140
141pub const DEFAULT_ICRC_TOTAL_SUPPLY_STEP_SECS: u32 = 86_400;
143
144pub const MIN_ICRC_ANALYTICS_TIMESTAMP: u64 = 1_620_328_530;
146
147pub const MAX_ICRC_ANALYTICS_OBSERVATIONS: u64 = 1_000;
149
150pub const DEFAULT_ICRC_TOKEN_VALUE_WINDOW_SECS: u64 = 24 * 60 * 60;
152
153pub const DEFAULT_ICRC_TOKEN_VALUE_LIMIT: u16 = 1_000;
155
156pub const MAX_ICRC_TOKEN_VALUE_WINDOW_SECS: u64 = 90 * 24 * 60 * 60;
158
159pub const MAX_ICRC_TOKEN_VALUE_ROWS: u16 = 1_000;
161
162pub const DEFAULT_IC_DAILY_STATS_WINDOW_SECS: u64 = 7 * 24 * 60 * 60;
164
165pub const MIN_IC_DAILY_STATS_TIMESTAMP: u64 = 1_620_406_800;
167
168pub const MAX_IC_DAILY_STATS_WINDOW_SECS: u64 = 366 * 24 * 60 * 60;
170
171pub const MAX_IC_DAILY_STATS_ROWS: usize = 366;
173
174pub const MAX_IC_BOUNDARY_NODE_DATA_CENTERS: usize = 1_000;
176
177pub const DEFAULT_IC_REPLICA_VERSION_PAGE_LIMIT: u16 = 50;
179
180pub const MAX_IC_REPLICA_VERSION_PAGE_LIMIT: u16 = 100;
182
183#[cfg(feature = "dashboard-host")]
184const IC_DASHBOARD_REPORT_SCHEMA_VERSION: u32 = 1;
185#[cfg(feature = "dashboard-host")]
186const IC_DASHBOARD_AUTHORITY: &str = "official_ic_dashboard_api";
187#[cfg(feature = "dashboard-host")]
188const IC_DASHBOARD_NETWORK: &str = "ic";
189
190#[cfg(all(test, feature = "dashboard-host"))]
191mod tests;