feat(billing): finalize tenant subscription entitlements and platform stabilization fixes
This commit is contained in:
@@ -38,10 +38,9 @@ async fn serve() {
|
|||||||
settings.shard_id.clone(),
|
settings.shard_id.clone(),
|
||||||
));
|
));
|
||||||
|
|
||||||
spawn_health_probe(admin.clone(), settings.clone());
|
|
||||||
spawn_placement_watcher(admin.placement_manager(), settings.clone());
|
|
||||||
|
|
||||||
let storage = StorageClient::open(settings.storage_path.clone()).unwrap();
|
let storage = StorageClient::open(settings.storage_path.clone()).unwrap();
|
||||||
|
spawn_health_probe(admin.clone(), settings.clone(), storage.clone());
|
||||||
|
spawn_placement_watcher(admin.placement_manager(), settings.clone());
|
||||||
let stream = StreamClient::new(settings.nats_url.clone()).await.unwrap();
|
let stream = StreamClient::new(settings.nats_url.clone()).await.unwrap();
|
||||||
let _ = stream.setup_stream().await;
|
let _ = stream.setup_stream().await;
|
||||||
let executor = RuntimeExecutor::new();
|
let executor = RuntimeExecutor::new();
|
||||||
@@ -115,10 +114,10 @@ fn load_settings() -> Settings {
|
|||||||
Settings::from_env().unwrap_or_default()
|
Settings::from_env().unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn spawn_health_probe(admin: Arc<AdminServer>, settings: Settings) {
|
fn spawn_health_probe(admin: Arc<AdminServer>, settings: Settings, storage: StorageClient) {
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
loop {
|
loop {
|
||||||
let storage_ok = StorageClient::open(settings.storage_path.clone()).is_ok();
|
let storage_ok = storage.check_health().is_ok();
|
||||||
admin.health_checker().set_storage_healthy(storage_ok);
|
admin.health_checker().set_storage_healthy(storage_ok);
|
||||||
|
|
||||||
let stream_ok = tokio::time::timeout(Duration::from_secs(1), async {
|
let stream_ok = tokio::time::timeout(Duration::from_secs(1), async {
|
||||||
|
|||||||
1515
control/ui/package-lock.json
generated
1515
control/ui/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -29,7 +29,7 @@
|
|||||||
"eslint-plugin-react-refresh": "^0.5.2",
|
"eslint-plugin-react-refresh": "^0.5.2",
|
||||||
"globals": "^17.4.0",
|
"globals": "^17.4.0",
|
||||||
"jsdom": "^27.0.0",
|
"jsdom": "^27.0.0",
|
||||||
"typescript": "~5.9.3",
|
"typescript": "^5.7.3",
|
||||||
"typescript-eslint": "^8.57.0",
|
"typescript-eslint": "^8.57.0",
|
||||||
"vite": "^8.0.1",
|
"vite": "^8.0.1",
|
||||||
"vitest": "^3.2.4"
|
"vitest": "^3.2.4"
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ services:
|
|||||||
command:
|
command:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
sleep 5
|
||||||
mc alias set local http://minio:9000 minioadmin minioadmin
|
mc alias set local http://minio:9000 minioadmin minioadmin
|
||||||
mc mb -p local/cloudlysis-docs || true
|
mc mb -p local/cloudlysis-docs || true
|
||||||
mc mb -p local/cloudlysis-loki || true
|
mc mb -p local/cloudlysis-loki || true
|
||||||
@@ -53,6 +54,7 @@ services:
|
|||||||
BIN: gateway
|
BIN: gateway
|
||||||
depends_on:
|
depends_on:
|
||||||
- nats
|
- nats
|
||||||
|
user: root
|
||||||
environment:
|
environment:
|
||||||
GATEWAY_ADDR: 0.0.0.0:8080
|
GATEWAY_ADDR: 0.0.0.0:8080
|
||||||
GATEWAY_GRPC_ADDR: 0.0.0.0:8081
|
GATEWAY_GRPC_ADDR: 0.0.0.0:8081
|
||||||
@@ -74,6 +76,7 @@ services:
|
|||||||
BIN: aggregate
|
BIN: aggregate
|
||||||
depends_on:
|
depends_on:
|
||||||
- nats
|
- nats
|
||||||
|
user: root
|
||||||
environment:
|
environment:
|
||||||
AGGREGATE_NATS_URL: nats://nats:4222
|
AGGREGATE_NATS_URL: nats://nats:4222
|
||||||
AGGREGATE_STORAGE_PATH: /data
|
AGGREGATE_STORAGE_PATH: /data
|
||||||
@@ -94,6 +97,7 @@ services:
|
|||||||
BIN: projection
|
BIN: projection
|
||||||
depends_on:
|
depends_on:
|
||||||
- nats
|
- nats
|
||||||
|
user: root
|
||||||
environment:
|
environment:
|
||||||
PROJECTION_NATS_URL: nats://nats:4222
|
PROJECTION_NATS_URL: nats://nats:4222
|
||||||
PROJECTION_STREAM_NAME: AGGREGATE_EVENTS
|
PROJECTION_STREAM_NAME: AGGREGATE_EVENTS
|
||||||
@@ -117,6 +121,7 @@ services:
|
|||||||
BIN: runner
|
BIN: runner
|
||||||
depends_on:
|
depends_on:
|
||||||
- nats
|
- nats
|
||||||
|
user: root
|
||||||
environment:
|
environment:
|
||||||
RUNNER_NATS_URL: nats://nats:4222
|
RUNNER_NATS_URL: nats://nats:4222
|
||||||
RUNNER_STORAGE_PATH: /data/runner.mdbx
|
RUNNER_STORAGE_PATH: /data/runner.mdbx
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ FROM node:20-alpine AS builder
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY control/ui/package.json control/ui/package-lock.json ./
|
COPY control/ui/package.json ./
|
||||||
RUN npm ci
|
RUN npm install
|
||||||
|
|
||||||
COPY control/ui .
|
COPY control/ui .
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|||||||
1
projection/projection-manifest.yaml
Normal file
1
projection/projection-manifest.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
projections: {}
|
||||||
@@ -112,6 +112,7 @@ async fn serve() {
|
|||||||
worker_ready,
|
worker_ready,
|
||||||
worker_obs,
|
worker_obs,
|
||||||
worker_tenant_placement,
|
worker_tenant_placement,
|
||||||
|
Some(http_state.storage.clone()),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ pub async fn run_projection_with_signals(
|
|||||||
ready: Arc<AtomicBool>,
|
ready: Arc<AtomicBool>,
|
||||||
observability: Observability,
|
observability: Observability,
|
||||||
tenant_placement: TenantPlacement,
|
tenant_placement: TenantPlacement,
|
||||||
|
storage: Option<KvClient>,
|
||||||
) -> Result<(), ProjectionError> {
|
) -> Result<(), ProjectionError> {
|
||||||
match settings.consumer_mode {
|
match settings.consumer_mode {
|
||||||
crate::config::ConsumerMode::Single => {
|
crate::config::ConsumerMode::Single => {
|
||||||
@@ -63,6 +64,7 @@ pub async fn run_projection_with_signals(
|
|||||||
ready: Some(ready),
|
ready: Some(ready),
|
||||||
observability: Some(observability),
|
observability: Some(observability),
|
||||||
tenant_placement: Some(tenant_placement),
|
tenant_placement: Some(tenant_placement),
|
||||||
|
storage,
|
||||||
..RunOptions::default()
|
..RunOptions::default()
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -76,6 +78,7 @@ pub async fn run_projection_with_signals(
|
|||||||
ready: Some(ready),
|
ready: Some(ready),
|
||||||
observability: Some(observability),
|
observability: Some(observability),
|
||||||
tenant_placement: Some(tenant_placement),
|
tenant_placement: Some(tenant_placement),
|
||||||
|
storage,
|
||||||
..RunOptions::default()
|
..RunOptions::default()
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user