1#[cfg(feature = "host")]
4mod build;
5#[cfg(feature = "host")]
6mod live;
7mod model;
8#[cfg(feature = "host")]
9mod source;
10mod text;
11
12#[cfg(feature = "host")]
13pub use build::{
14 build_ic_boundary_node_data_centers_report,
15 build_ic_boundary_node_data_centers_report_with_source, build_ic_canister_count_report,
16 build_ic_canister_count_report_with_source, build_ic_canister_page_report,
17 build_ic_canister_page_report_with_source, build_ic_daily_stats_report,
18 build_ic_daily_stats_report_with_source, build_ic_metric_report,
19 build_ic_metric_report_with_source, build_icrc_indexed_count_report,
20 build_icrc_indexed_count_report_with_source, build_icrc_token_value_report,
21 build_icrc_token_value_report_with_source, build_icrc_total_supply_report,
22 build_icrc_total_supply_report_with_source,
23};
24#[cfg(feature = "host")]
25pub use build::{build_ic_canister_report, build_ic_canister_report_with_source};
26#[cfg(feature = "host")]
27pub use live::LiveIcSource;
28pub use model::{
29 IcBoundaryNodeDataCenterRow, IcBoundaryNodeDataCentersReport, IcBoundaryNodeDataCentersRequest,
30 IcCanisterCountReport, IcCanisterCountRequest, IcCanisterFilters, IcCanisterPageController,
31 IcCanisterPageReport, IcCanisterPageRequest, IcCanisterPageRow, IcCanisterReport,
32 IcCanisterRequest, IcCanisterUpgrade, IcDailyStatsQuery, IcDailyStatsReport,
33 IcDailyStatsRequest, IcDailyStatsRow, IcDashboardReportProvenance, IcIcrcAnalyticsRequest,
34 IcIcrcIndexedCountKind, IcIcrcIndexedCountReport, IcIcrcIndexedCountRequest,
35 IcIcrcTokenValueQuery, IcIcrcTokenValueReport, IcIcrcTokenValueRequest, IcIcrcTokenValueRow,
36 IcIcrcTotalSupplyObservation, IcIcrcTotalSupplyQuery, IcIcrcTotalSupplyReport,
37 IcIcrcTotalSupplyRequest, IcMetricKind, IcMetricObservation, IcMetricQuery, IcMetricReport,
38 IcMetricRequest, IcMetricSeries,
39};
40#[cfg(feature = "host")]
41pub use model::{
42 IcBoundaryNodeDataCentersSourceData, IcCanisterCountSourceData, IcCanisterPageSourceData,
43 IcCanisterSourceData, IcDailyStatsSourceData, IcHostError, IcIcrcIndexedCountSourceData,
44 IcIcrcTokenValueSourceData, IcIcrcTokenValueSourceRow, IcIcrcTotalSupplySourceData,
45 IcMetricSourceData, IcSourceRequest,
46};
47#[cfg(feature = "host")]
48pub use source::{
49 IcCanisterCollectionSource, IcCanisterSource, IcIcrcAnalyticsSource, IcMetricSource,
50 IcNetworkSource,
51};
52pub use text::{
53 ic_boundary_node_data_centers_report_text, ic_canister_count_report_text,
54 ic_canister_page_report_text, ic_canister_report_text, ic_daily_stats_report_text,
55 ic_metric_report_text, icrc_indexed_count_report_text, icrc_token_value_report_text,
56 icrc_total_supply_report_text,
57};
58
59pub const DEFAULT_IC_DASHBOARD_SOURCE_ENDPOINT: &str = "https://ic-api.internetcomputer.org/api/v3";
61
62pub const DEFAULT_IC_DASHBOARD_CANISTER_COLLECTION_SOURCE_ENDPOINT: &str =
64 "https://ic-api.internetcomputer.org/api/v4";
65
66pub const DEFAULT_IC_DASHBOARD_METRICS_SOURCE_ENDPOINT: &str =
68 "https://metrics-api.internetcomputer.org/api/v1";
69
70pub const DEFAULT_ICRC_ANALYTICS_SOURCE_ENDPOINT: &str =
72 "https://icrc-api.internetcomputer.org/api/v2";
73
74pub const DEFAULT_IC_BOUNDARY_NODE_DATA_CENTERS_SOURCE_ENDPOINT: &str =
76 "https://ic-api.internetcomputer.org/api/v4";
77
78pub const DEFAULT_IC_CANISTER_PAGE_LIMIT: u16 = 50;
80
81pub const MAX_IC_CANISTER_PAGE_LIMIT: u16 = 100;
83
84pub const DEFAULT_IC_METRIC_WINDOW_SECS: u64 = 3_600;
86
87pub const DEFAULT_IC_METRIC_STEP_SECS: u32 = 300;
89
90pub const MIN_IC_METRIC_TIMESTAMP: u64 = 1_620_432_000;
92
93pub const MAX_IC_METRIC_STEP_SECS: u32 = 259_200;
95
96pub const MAX_IC_METRIC_OBSERVATIONS_PER_SERIES: u64 = 1_000;
98
99pub const DEFAULT_ICRC_TOTAL_SUPPLY_WINDOW_SECS: u64 = 30 * 24 * 60 * 60;
101
102pub const DEFAULT_ICRC_TOTAL_SUPPLY_STEP_SECS: u32 = 86_400;
104
105pub const MIN_ICRC_ANALYTICS_TIMESTAMP: u64 = 1_620_328_530;
107
108pub const MAX_ICRC_ANALYTICS_OBSERVATIONS: u64 = 1_000;
110
111pub const DEFAULT_ICRC_TOKEN_VALUE_WINDOW_SECS: u64 = 24 * 60 * 60;
113
114pub const DEFAULT_ICRC_TOKEN_VALUE_LIMIT: u16 = 1_000;
116
117pub const MAX_ICRC_TOKEN_VALUE_WINDOW_SECS: u64 = 90 * 24 * 60 * 60;
119
120pub const MAX_ICRC_TOKEN_VALUE_ROWS: u16 = 1_000;
122
123pub const DEFAULT_IC_DAILY_STATS_WINDOW_SECS: u64 = 7 * 24 * 60 * 60;
125
126pub const MIN_IC_DAILY_STATS_TIMESTAMP: u64 = 1_620_406_800;
128
129pub const MAX_IC_DAILY_STATS_WINDOW_SECS: u64 = 366 * 24 * 60 * 60;
131
132pub const MAX_IC_DAILY_STATS_ROWS: usize = 366;
134
135pub const MAX_IC_BOUNDARY_NODE_DATA_CENTERS: usize = 1_000;
137
138#[cfg(feature = "host")]
139const IC_DASHBOARD_REPORT_SCHEMA_VERSION: u32 = 1;
140#[cfg(feature = "host")]
141const IC_DASHBOARD_AUTHORITY: &str = "official_ic_dashboard_api";
142#[cfg(feature = "host")]
143const IC_DASHBOARD_NETWORK: &str = "ic";
144
145#[cfg(all(test, feature = "host"))]
146mod tests;