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