Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: track user usage per collection in satellite #1167

Merged
merged 39 commits into from
Feb 2, 2025
Merged
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
b4fd950
feat: track user usage in satellite
peterpeterparker Feb 1, 2025
f1613bc
Merge branch 'main' into feat/user-usage
peterpeterparker Feb 1, 2025
3ef141a
feat: get user usage
peterpeterparker Feb 1, 2025
f531bd9
Merge branch 'main' into feat/user-usage
peterpeterparker Feb 1, 2025
a0ac248
chore: remove unused
peterpeterparker Feb 1, 2025
09f4d3c
feat: use util
peterpeterparker Feb 1, 2025
c60426a
refactor: move entry points
peterpeterparker Feb 1, 2025
ee26b33
feat: clippy
peterpeterparker Feb 1, 2025
95cc7a9
Merge branch 'main' into feat/user-usage
peterpeterparker Feb 1, 2025
17b7ce0
feat: expose get usage
peterpeterparker Feb 1, 2025
9e4638a
chore: usage did
peterpeterparker Feb 1, 2025
f48ba47
test: more stable memory is used
peterpeterparker Feb 1, 2025
16ce44a
chore: fmt
peterpeterparker Feb 1, 2025
92040ad
test: assert doc usage
peterpeterparker Feb 1, 2025
eea66a1
feat: impl
peterpeterparker Feb 2, 2025
44fc9f7
feat: collection type in user usage key
peterpeterparker Feb 2, 2025
bd680f2
chore: merge main
peterpeterparker Feb 2, 2025
8142dff
feat: move collectiontype to state
peterpeterparker Feb 2, 2025
8d38a2e
feat: did
peterpeterparker Feb 2, 2025
a739522
test: type
peterpeterparker Feb 2, 2025
f954fb5
feat: storage usage
peterpeterparker Feb 2, 2025
7af0bf8
test: wip
peterpeterparker Feb 2, 2025
afe5dd9
Merge branch 'main' into feat/user-usage
peterpeterparker Feb 2, 2025
5863bfc
test: wip
peterpeterparker Feb 2, 2025
6672964
test: usage storage
peterpeterparker Feb 2, 2025
1a0a060
test: usage storage
peterpeterparker Feb 2, 2025
2ecaae2
feat: signature consistence
peterpeterparker Feb 2, 2025
66079da
feat: no usage for #dapp and #log
peterpeterparker Feb 2, 2025
5f52436
feat: consistency
peterpeterparker Feb 2, 2025
8c4e429
chore: lint
peterpeterparker Feb 2, 2025
1a79f49
fix: signature
peterpeterparker Feb 2, 2025
0cdc9a2
test: no tracking on default collections
peterpeterparker Feb 2, 2025
b58293c
feat: set user usage
peterpeterparker Feb 2, 2025
e80491c
refactor: rename
peterpeterparker Feb 2, 2025
3129625
feat: expose for serverless
peterpeterparker Feb 2, 2025
f31da4d
feat: did set user usage
peterpeterparker Feb 2, 2025
4ba4b4e
feat: admin controller only
peterpeterparker Feb 2, 2025
79f7737
test: set user usage
peterpeterparker Feb 2, 2025
996b088
Merge branch 'main' into feat/user-usage
peterpeterparker Feb 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: move collectiontype to state
peterpeterparker committed Feb 2, 2025
commit 8142dff38325707600db5efe6a98f17cb88e3d65
5 changes: 3 additions & 2 deletions src/libs/satellite/src/lib.rs
Original file line number Diff line number Diff line change
@@ -19,7 +19,9 @@ mod version;
use crate::auth::types::config::AuthenticationConfig;
use crate::db::types::config::DbConfig;
use crate::guards::{caller_is_admin_controller, caller_is_controller};
use crate::types::interface::{CollectionType, Config};
use crate::types::interface::Config;
use crate::types::state::CollectionType;
use crate::usage::types::state::UserUsage;
use crate::version::SATELLITE_VERSION;
use ic_cdk::api::trap;
use ic_cdk_macros::{init, post_upgrade, pre_upgrade, query, update};
@@ -43,7 +45,6 @@ use junobuild_storage::types::interface::{
AssetNoContent, CommitBatch, InitAssetKey, InitUploadResult, UploadChunk, UploadChunkResult,
};
use junobuild_storage::types::state::FullPath;
use crate::usage::types::state::UserUsage;

// ============================================================================================
// START: Re-exported Types
4 changes: 2 additions & 2 deletions src/libs/satellite/src/satellite.rs
Original file line number Diff line number Diff line change
@@ -36,8 +36,8 @@ use crate::storage::store::{
set_domain_store,
};
use crate::storage::strategy_impls::StorageState;
use crate::types::interface::{CollectionType, Config};
use crate::types::state::{HeapState, RuntimeState, State};
use crate::types::interface::Config;
use crate::types::state::{CollectionType, HeapState, RuntimeState, State};
use crate::usage::types::state::UserUsage;
use crate::usage::user_usage::{
decrease_db_usage, decrease_db_usage_by, get_db_usage_by_id, get_storage_usage_by_id,
12 changes: 6 additions & 6 deletions src/libs/satellite/src/types.rs
Original file line number Diff line number Diff line change
@@ -44,6 +44,12 @@ pub mod state {
pub rng: Option<StdRng>, // rng = Random Number Generator
pub db: DbRuntimeState,
}

#[derive(CandidType, Deserialize, Serialize, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum CollectionType {
Db,
Storage,
}
}

pub mod interface {
@@ -53,12 +59,6 @@ pub mod interface {
use junobuild_storage::types::config::StorageConfig;
use serde::Deserialize;

#[derive(CandidType, Deserialize, Serialize, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum CollectionType {
Db,
Storage,
}

#[derive(CandidType, Deserialize)]
pub struct Config {
pub storage: StorageConfig,
2 changes: 1 addition & 1 deletion src/libs/satellite/src/usage/impls.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::types::interface::CollectionType;
use crate::types::state::CollectionType;
use crate::usage::types::interface::ModificationType;
use crate::usage::types::state::{UserUsage, UserUsageKey};
use ic_cdk::api::time;
2 changes: 1 addition & 1 deletion src/libs/satellite/src/usage/store.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::memory::STATE;
use crate::types::interface::CollectionType;
use crate::types::state::CollectionType;
use crate::usage::types::interface::ModificationType;
use crate::usage::types::state::{UserUsage, UserUsageKey, UserUsageStable};
use junobuild_collections::types::core::CollectionKey;
2 changes: 1 addition & 1 deletion src/libs/satellite/src/usage/types.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pub mod state {
use crate::types::interface::CollectionType;
use crate::types::state::CollectionType;
use candid::{CandidType, Deserialize};
use ic_stable_structures::StableBTreeMap;
use junobuild_collections::types::core::CollectionKey;
2 changes: 1 addition & 1 deletion src/libs/satellite/src/usage/user_usage.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::get_controllers;
use crate::types::interface::CollectionType;
use crate::types::state::CollectionType;
use crate::usage::store;
use crate::usage::store::get_user_usage as get_user_usage_store;
use crate::usage::types::interface::ModificationType;