mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
Compare commits
2 Commits
feat/prefe
...
chore/ts-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ba68a3124 | ||
|
|
bb68c3b91c |
101
ARCHITECTURE.md
Normal file
101
ARCHITECTURE.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Architecture
|
||||
|
||||
StartOS is an open-source Linux distribution for running personal servers. It manages discovery, installation, network configuration, backups, and health monitoring of self-hosted services.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- Backend: Rust (async/Tokio, Axum web framework)
|
||||
- Frontend: Angular 20 + TypeScript + TaigaUI
|
||||
- Container runtime: Node.js/TypeScript with LXC
|
||||
- Database/State: Patch-DB (git submodule) - storage layer with reactive frontend sync
|
||||
- API: JSON-RPC via rpc-toolkit (see `core/rpc-toolkit.md`)
|
||||
- Auth: Password + session cookie, public/private key signatures, local authcookie (see `core/src/middleware/auth/`)
|
||||
|
||||
## Project Structure
|
||||
|
||||
```bash
|
||||
/
|
||||
├── assets/ # Screenshots for README
|
||||
├── build/ # Auxiliary files and scripts for deployed images
|
||||
├── container-runtime/ # Node.js program managing package containers
|
||||
├── core/ # Rust backend: API, daemon (startd), CLI (start-cli)
|
||||
├── debian/ # Debian package maintainer scripts
|
||||
├── image-recipe/ # Scripts for building StartOS images
|
||||
├── patch-db/ # (submodule) Diff-based data store for frontend sync
|
||||
├── sdk/ # TypeScript SDK for building StartOS packages
|
||||
└── web/ # Web UIs (Angular)
|
||||
```
|
||||
|
||||
## Components
|
||||
|
||||
- **`core/`** — Rust backend daemon. Produces a single binary `startbox` that is symlinked as `startd` (main daemon), `start-cli` (CLI), `start-container` (runs inside LXC containers), `registrybox` (package registry), and `tunnelbox` (VPN/tunnel). Handles all backend logic: RPC API, service lifecycle, networking (DNS, ACME, WiFi, Tor, WireGuard), backups, and database state management. See [core/ARCHITECTURE.md](core/ARCHITECTURE.md).
|
||||
|
||||
- **`web/`** — Angular 20 + TypeScript workspace using Taiga UI. Contains three applications (admin UI, setup wizard, VPN management) and two shared libraries (common components/services, marketplace). Communicates with the backend exclusively via JSON-RPC. See [web/ARCHITECTURE.md](web/ARCHITECTURE.md).
|
||||
|
||||
- **`container-runtime/`** — Node.js runtime that runs inside each service's LXC container. Loads the service's JavaScript from its S9PK package and manages subcontainers. Communicates with the host daemon via JSON-RPC over Unix socket. See [container-runtime/CLAUDE.md](container-runtime/CLAUDE.md).
|
||||
|
||||
- **`sdk/`** — TypeScript SDK for packaging services for StartOS (`@start9labs/start-sdk`). Split into `base/` (core types, ABI definitions, effects interface, consumed by web as `@start9labs/start-sdk-base`) and `package/` (full SDK for service developers, consumed by container-runtime as `@start9labs/start-sdk`).
|
||||
|
||||
- **`patch-db/`** — Git submodule providing diff-based state synchronization. Uses CBOR encoding. Backend mutations produce diffs that are pushed to the frontend via WebSocket, enabling reactive UI updates without polling. See [patch-db repo](https://github.com/Start9Labs/patch-db).
|
||||
|
||||
## Build Pipeline
|
||||
|
||||
Components have a strict dependency chain. Changes flow in one direction:
|
||||
|
||||
```
|
||||
Rust (core/)
|
||||
→ cargo test exports ts-rs types to core/bindings/
|
||||
→ rsync copies to sdk/base/lib/osBindings/
|
||||
→ SDK build produces baseDist/ and dist/
|
||||
→ web/ consumes baseDist/ (via @start9labs/start-sdk-base)
|
||||
→ container-runtime/ consumes dist/ (via @start9labs/start-sdk)
|
||||
```
|
||||
|
||||
Key make targets along this chain:
|
||||
|
||||
| Step | Command | What it does |
|
||||
|---|---|---|
|
||||
| 1 | `cargo check -p start-os` | Verify Rust compiles |
|
||||
| 2 | `make ts-bindings` | Export ts-rs types → rsync to SDK |
|
||||
| 3 | `cd sdk && make baseDist dist` | Build SDK packages |
|
||||
| 4 | `cd web && npm run check` | Type-check Angular projects |
|
||||
| 5 | `cd container-runtime && npm run check` | Type-check runtime |
|
||||
|
||||
**Important**: Editing `sdk/base/lib/osBindings/*.ts` alone is NOT sufficient — you must rebuild the SDK bundle (step 3) before web/container-runtime can see the changes.
|
||||
|
||||
## Cross-Layer Verification
|
||||
|
||||
When making changes across multiple layers (Rust, SDK, web, container-runtime), verify in this order:
|
||||
|
||||
1. **Rust**: `cargo check -p start-os` — verifies core compiles
|
||||
2. **TS bindings**: `make ts-bindings` — regenerates TypeScript types from Rust `#[ts(export)]` structs
|
||||
- Runs `./core/build/build-ts.sh` to export ts-rs types to `core/bindings/`
|
||||
- Syncs `core/bindings/` → `sdk/base/lib/osBindings/` via rsync
|
||||
- If you manually edit files in `sdk/base/lib/osBindings/`, you must still rebuild the SDK (step 3)
|
||||
3. **SDK bundle**: `cd sdk && make baseDist dist` — compiles SDK source into packages
|
||||
- `baseDist/` is consumed by `/web` (via `@start9labs/start-sdk-base`)
|
||||
- `dist/` is consumed by `/container-runtime` (via `@start9labs/start-sdk`)
|
||||
- Web and container-runtime reference the **built** SDK, not source files
|
||||
4. **Web type check**: `cd web && npm run check` — type-checks all Angular projects
|
||||
5. **Container runtime type check**: `cd container-runtime && npm run check` — type-checks the runtime
|
||||
|
||||
## Data Flow: Backend to Frontend
|
||||
|
||||
StartOS uses Patch-DB for reactive state synchronization:
|
||||
|
||||
1. The backend mutates state via `db.mutate()`, producing CBOR diffs
|
||||
2. Diffs are pushed to the frontend over a persistent WebSocket connection
|
||||
3. The frontend applies diffs to its local state copy and notifies observers
|
||||
4. Components watch specific database paths via `PatchDB.watch$()`, receiving updates reactively
|
||||
|
||||
This means the UI is always eventually consistent with the backend — after any mutating API call, the frontend waits for the corresponding PatchDB diff before resolving, so the UI reflects the result immediately.
|
||||
|
||||
## Further Reading
|
||||
|
||||
- [core/ARCHITECTURE.md](core/ARCHITECTURE.md) — Rust backend architecture
|
||||
- [web/ARCHITECTURE.md](web/ARCHITECTURE.md) — Angular frontend architecture
|
||||
- [container-runtime/CLAUDE.md](container-runtime/CLAUDE.md) — Container runtime details
|
||||
- [core/rpc-toolkit.md](core/rpc-toolkit.md) — JSON-RPC handler patterns
|
||||
- [core/s9pk-structure.md](core/s9pk-structure.md) — S9PK package format
|
||||
- [docs/exver.md](docs/exver.md) — Extended versioning format
|
||||
- [docs/VERSION_BUMP.md](docs/VERSION_BUMP.md) — Version bumping guide
|
||||
42
CLAUDE.md
42
CLAUDE.md
@@ -2,17 +2,11 @@
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
## Architecture
|
||||
|
||||
StartOS is an open-source Linux distribution for running personal servers. It manages discovery, installation, network configuration, backups, and health monitoring of self-hosted services.
|
||||
See [ARCHITECTURE.md](ARCHITECTURE.md) for the full system architecture, component map, build pipeline, and cross-layer verification order.
|
||||
|
||||
**Tech Stack:**
|
||||
- Backend: Rust (async/Tokio, Axum web framework)
|
||||
- Frontend: Angular 20 + TypeScript + TaigaUI
|
||||
- Container runtime: Node.js/TypeScript with LXC
|
||||
- Database/State: Patch-DB (git submodule) - storage layer with reactive frontend sync
|
||||
- API: JSON-RPC via rpc-toolkit (see `core/rpc-toolkit.md`)
|
||||
- Auth: Password + session cookie, public/private key signatures, local authcookie (see `core/src/middleware/auth/`)
|
||||
Each major component has its own `CLAUDE.md` with detailed guidance: `core/`, `web/`, `container-runtime/`, `sdk/`.
|
||||
|
||||
## Build & Development
|
||||
|
||||
@@ -29,33 +23,11 @@ make update-startbox REMOTE=start9@<ip> # Fastest iteration (binary + UI)
|
||||
make test-core # Run Rust tests
|
||||
```
|
||||
|
||||
### Verifying code changes
|
||||
## Operating Rules
|
||||
|
||||
When making changes across multiple layers (Rust, SDK, web, container-runtime), verify in this order:
|
||||
|
||||
1. **Rust**: `cargo check -p start-os` — verifies core compiles
|
||||
2. **TS bindings**: `make ts-bindings` — regenerates TypeScript types from Rust `#[ts(export)]` structs
|
||||
- Runs `./core/build/build-ts.sh` to export ts-rs types to `core/bindings/`
|
||||
- Syncs `core/bindings/` → `sdk/base/lib/osBindings/` via rsync
|
||||
- If you manually edit files in `sdk/base/lib/osBindings/`, you must still rebuild the SDK (step 3)
|
||||
3. **SDK bundle**: `cd sdk && make baseDist dist` — compiles SDK source into packages
|
||||
- `baseDist/` is consumed by `/web` (via `@start9labs/start-sdk-base`)
|
||||
- `dist/` is consumed by `/container-runtime` (via `@start9labs/start-sdk`)
|
||||
- Web and container-runtime reference the **built** SDK, not source files
|
||||
4. **Web type check**: `cd web && npm run check` — type-checks all Angular projects
|
||||
5. **Container runtime type check**: `cd container-runtime && npm run check` — type-checks the runtime
|
||||
|
||||
**Important**: Editing `sdk/base/lib/osBindings/*.ts` alone is NOT sufficient — you must rebuild the SDK bundle (step 3) before web/container-runtime can see the changes.
|
||||
|
||||
## Architecture
|
||||
|
||||
Each major component has its own `CLAUDE.md` with detailed guidance.
|
||||
|
||||
- **`core/`** — Rust backend daemon (startbox, start-cli, start-container, registrybox, tunnelbox)
|
||||
- **`web/`** — Angular frontend workspace (admin UI, setup wizard, marketplace, shared library)
|
||||
- **`container-runtime/`** — Node.js runtime managing service containers via JSON-RPC
|
||||
- **`sdk/`** — TypeScript SDK for packaging services (`@start9labs/start-sdk`)
|
||||
- **`patch-db/`** — Git submodule providing diff-based state synchronization
|
||||
- Always verify cross-layer changes using the order described in [ARCHITECTURE.md](ARCHITECTURE.md#cross-layer-verification)
|
||||
- Check component-level CLAUDE.md files for component-specific conventions
|
||||
- Follow existing patterns before inventing new ones
|
||||
|
||||
## Supplementary Documentation
|
||||
|
||||
|
||||
@@ -6,27 +6,7 @@ This guide is for contributing to the StartOS. If you are interested in packagin
|
||||
|
||||
- [Matrix](https://matrix.to/#/#dev-startos:matrix.start9labs.com)
|
||||
|
||||
## Project Structure
|
||||
|
||||
```bash
|
||||
/
|
||||
├── assets/ # Screenshots for README
|
||||
├── build/ # Auxiliary files and scripts for deployed images
|
||||
├── container-runtime/ # Node.js program managing package containers
|
||||
├── core/ # Rust backend: API, daemon (startd), CLI (start-cli)
|
||||
├── debian/ # Debian package maintainer scripts
|
||||
├── image-recipe/ # Scripts for building StartOS images
|
||||
├── patch-db/ # (submodule) Diff-based data store for frontend sync
|
||||
├── sdk/ # TypeScript SDK for building StartOS packages
|
||||
└── web/ # Web UIs (Angular)
|
||||
```
|
||||
|
||||
See component READMEs for details:
|
||||
|
||||
- [`core`](core/README.md)
|
||||
- [`web`](web/README.md)
|
||||
- [`build`](build/README.md)
|
||||
- [`patch-db`](https://github.com/Start9Labs/patch-db)
|
||||
For project structure and system architecture, see [ARCHITECTURE.md](ARCHITECTURE.md).
|
||||
|
||||
## Environment Setup
|
||||
|
||||
|
||||
69
core/ARCHITECTURE.md
Normal file
69
core/ARCHITECTURE.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Core Architecture
|
||||
|
||||
The Rust backend daemon for StartOS.
|
||||
|
||||
## Binaries
|
||||
|
||||
The crate produces a single binary `startbox` that is symlinked under different names for different behavior:
|
||||
|
||||
- `startbox` / `startd` — Main daemon
|
||||
- `start-cli` — CLI interface
|
||||
- `start-container` — Runs inside LXC containers; communicates with host and manages subcontainers
|
||||
- `registrybox` — Registry daemon
|
||||
- `tunnelbox` — VPN/tunnel daemon
|
||||
|
||||
## Crate Structure
|
||||
|
||||
- `startos` — Core library that supports building `startbox`
|
||||
- `helpers` — Utility functions used across both `startos` and `js-engine`
|
||||
- `models` — Types shared across `startos`, `js-engine`, and `helpers`
|
||||
|
||||
## Key Modules
|
||||
|
||||
- `src/context/` — Context types (RpcContext, CliContext, InitContext, DiagnosticContext)
|
||||
- `src/service/` — Service lifecycle management with actor pattern (`service_actor.rs`)
|
||||
- `src/db/model/` — Patch-DB models (`public.rs` synced to frontend, `private.rs` backend-only)
|
||||
- `src/net/` — Networking (DNS, ACME, WiFi, Tor via Arti, WireGuard)
|
||||
- `src/s9pk/` — S9PK package format (merkle archive)
|
||||
- `src/registry/` — Package registry management
|
||||
|
||||
## RPC Pattern
|
||||
|
||||
The API is JSON-RPC (not REST). All endpoints are RPC methods organized in a hierarchical command structure using [rpc-toolkit](https://github.com/Start9Labs/rpc-toolkit). Handlers are registered in a tree of `ParentHandler` nodes, with four handler types: `from_fn_async` (standard), `from_fn_async_local` (non-Send), `from_fn` (sync), and `from_fn_blocking` (blocking). Metadata like `.with_about()` drives middleware and documentation.
|
||||
|
||||
See [rpc-toolkit.md](rpc-toolkit.md) for full handler patterns and configuration.
|
||||
|
||||
## Patch-DB Patterns
|
||||
|
||||
Patch-DB provides diff-based state synchronization. Changes to `db/model/public.rs` automatically sync to the frontend.
|
||||
|
||||
**Key patterns:**
|
||||
- `db.peek().await` — Get a read-only snapshot of the database state
|
||||
- `db.mutate(|db| { ... }).await` — Apply mutations atomically, returns `MutateResult`
|
||||
- `#[derive(HasModel)]` — Derive macro for types stored in the database, generates typed accessors
|
||||
|
||||
**Generated accessor types** (from `HasModel` derive):
|
||||
- `as_field()` — Immutable reference: `&Model<T>`
|
||||
- `as_field_mut()` — Mutable reference: `&mut Model<T>`
|
||||
- `into_field()` — Owned value: `Model<T>`
|
||||
|
||||
**`Model<T>` APIs** (from `db/prelude.rs`):
|
||||
- `.de()` — Deserialize to `T`
|
||||
- `.ser(&value)` — Serialize from `T`
|
||||
- `.mutate(|v| ...)` — Deserialize, mutate, reserialize
|
||||
- For maps: `.keys()`, `.as_idx(&key)`, `.as_idx_mut(&key)`, `.insert()`, `.remove()`, `.contains_key()`
|
||||
|
||||
## i18n
|
||||
|
||||
See [i18n-patterns.md](i18n-patterns.md) for internationalization key conventions and the `t!()` macro.
|
||||
|
||||
## Rust Utilities & Patterns
|
||||
|
||||
See [core-rust-patterns.md](core-rust-patterns.md) for common utilities (Invoke trait, Guard pattern, mount guards, Apply trait, etc.).
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [rpc-toolkit.md](rpc-toolkit.md) — JSON-RPC handler patterns
|
||||
- [i18n-patterns.md](i18n-patterns.md) — Internationalization conventions
|
||||
- [core-rust-patterns.md](core-rust-patterns.md) — Common Rust utilities
|
||||
- [s9pk-structure.md](s9pk-structure.md) — S9PK package format
|
||||
@@ -2,51 +2,24 @@
|
||||
|
||||
The Rust backend daemon for StartOS.
|
||||
|
||||
## Binaries
|
||||
## Architecture
|
||||
|
||||
- `startbox` — Main daemon (runs as `startd`)
|
||||
- `start-cli` — CLI interface
|
||||
- `start-container` — Runs inside LXC containers; communicates with host and manages subcontainers
|
||||
- `registrybox` — Registry daemon
|
||||
- `tunnelbox` — VPN/tunnel daemon
|
||||
See [ARCHITECTURE.md](ARCHITECTURE.md) for binaries, modules, Patch-DB patterns, and related documentation.
|
||||
|
||||
## Key Modules
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add RPC endpoints, TS-exported types, and i18n keys.
|
||||
|
||||
- `src/context/` — Context types (RpcContext, CliContext, InitContext, DiagnosticContext)
|
||||
- `src/service/` — Service lifecycle management with actor pattern (`service_actor.rs`)
|
||||
- `src/db/model/` — Patch-DB models (`public.rs` synced to frontend, `private.rs` backend-only)
|
||||
- `src/net/` — Networking (DNS, ACME, WiFi, Tor via Arti, WireGuard)
|
||||
- `src/s9pk/` — S9PK package format (merkle archive)
|
||||
- `src/registry/` — Package registry management
|
||||
## Quick Reference
|
||||
|
||||
## RPC Pattern
|
||||
```bash
|
||||
cargo check -p start-os # Type check
|
||||
make test-core # Run tests
|
||||
make ts-bindings # Regenerate TS types after changing #[ts(export)] structs
|
||||
cd sdk && make baseDist dist # Rebuild SDK after ts-bindings
|
||||
```
|
||||
|
||||
See `rpc-toolkit.md` for JSON-RPC handler patterns and configuration.
|
||||
## Operating Rules
|
||||
|
||||
## Patch-DB Patterns
|
||||
|
||||
Patch-DB provides diff-based state synchronization. Changes to `db/model/public.rs` automatically sync to the frontend.
|
||||
|
||||
**Key patterns:**
|
||||
- `db.peek().await` — Get a read-only snapshot of the database state
|
||||
- `db.mutate(|db| { ... }).await` — Apply mutations atomically, returns `MutateResult`
|
||||
- `#[derive(HasModel)]` — Derive macro for types stored in the database, generates typed accessors
|
||||
|
||||
**Generated accessor types** (from `HasModel` derive):
|
||||
- `as_field()` — Immutable reference: `&Model<T>`
|
||||
- `as_field_mut()` — Mutable reference: `&mut Model<T>`
|
||||
- `into_field()` — Owned value: `Model<T>`
|
||||
|
||||
**`Model<T>` APIs** (from `db/prelude.rs`):
|
||||
- `.de()` — Deserialize to `T`
|
||||
- `.ser(&value)` — Serialize from `T`
|
||||
- `.mutate(|v| ...)` — Deserialize, mutate, reserialize
|
||||
- For maps: `.keys()`, `.as_idx(&key)`, `.as_idx_mut(&key)`, `.insert()`, `.remove()`, `.contains_key()`
|
||||
|
||||
## i18n
|
||||
|
||||
See `i18n-patterns.md` for internationalization key conventions and the `t!()` macro.
|
||||
|
||||
## Rust Utilities & Patterns
|
||||
|
||||
See `core-rust-patterns.md` for common utilities (Invoke trait, Guard pattern, mount guards, Apply trait, etc.).
|
||||
- Always run `cargo check -p start-os` after modifying Rust code
|
||||
- When adding RPC endpoints, follow the patterns in [rpc-toolkit.md](rpc-toolkit.md)
|
||||
- When modifying `#[ts(export)]` types, regenerate bindings and rebuild the SDK (see [ARCHITECTURE.md](../ARCHITECTURE.md#build-pipeline))
|
||||
- When adding i18n keys, add all 5 locales in `core/locales/i18n.yaml` (see [i18n-patterns.md](i18n-patterns.md))
|
||||
|
||||
49
core/CONTRIBUTING.md
Normal file
49
core/CONTRIBUTING.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Contributing to Core
|
||||
|
||||
For general environment setup, cloning, and build system, see the root [CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- [Rust](https://rustup.rs) (nightly for formatting)
|
||||
- [rust-analyzer](https://rust-analyzer.github.io/) recommended
|
||||
- [Docker](https://docs.docker.com/get-docker/) (for cross-compilation via `rust-zig-builder` container)
|
||||
|
||||
## Common Commands
|
||||
|
||||
```bash
|
||||
cargo check -p start-os # Type check
|
||||
cargo test --features=test # Run tests (or: make test-core)
|
||||
make format # Format with nightly rustfmt
|
||||
cd core && cargo test <test_name> --features=test # Run a specific test
|
||||
```
|
||||
|
||||
## Adding a New RPC Endpoint
|
||||
|
||||
1. Define a params struct with `#[derive(Deserialize, Serialize)]`
|
||||
2. Choose a handler type (`from_fn_async` for most cases)
|
||||
3. Write the handler function: `async fn my_handler(ctx: RpcContext, params: MyParams) -> Result<MyResponse, Error>`
|
||||
4. Register it in the appropriate `ParentHandler` tree
|
||||
5. If params/response should be available in TypeScript, add `#[derive(TS)]` and `#[ts(export)]`
|
||||
|
||||
See [rpc-toolkit.md](rpc-toolkit.md) for full handler patterns and all four handler types.
|
||||
|
||||
## Adding TS-Exported Types
|
||||
|
||||
When a Rust type needs to be available in TypeScript (for the web frontend or SDK):
|
||||
|
||||
1. Add `ts_rs::TS` to the derive list and `#[ts(export)]` to the struct/enum
|
||||
2. Use `#[serde(rename_all = "camelCase")]` for JS-friendly field names
|
||||
3. For types that don't implement TS (like `DateTime<Utc>`, `exver::Version`), use `#[ts(type = "string")]` overrides
|
||||
4. For `u64` fields that should be JS `number` (not `bigint`), use `#[ts(type = "number")]`
|
||||
5. Run `make ts-bindings` to regenerate — files appear in `core/bindings/` then sync to `sdk/base/lib/osBindings/`
|
||||
6. Rebuild the SDK: `cd sdk && make baseDist dist`
|
||||
|
||||
## Adding i18n Keys
|
||||
|
||||
1. Add the key to `core/locales/i18n.yaml` with all 5 language translations
|
||||
2. Use the `t!("your.key.name")` macro in Rust code
|
||||
3. Follow existing namespace conventions — match the module path where the key is used
|
||||
4. Use kebab-case for multi-word segments
|
||||
5. Translations are validated at compile time
|
||||
|
||||
See [i18n-patterns.md](i18n-patterns.md) for full conventions.
|
||||
@@ -22,9 +22,7 @@ several different names for different behavior:
|
||||
- `start-sdk`: This is a CLI tool that aids in building and packaging services
|
||||
you wish to deploy to StartOS
|
||||
|
||||
## Questions
|
||||
## Documentation
|
||||
|
||||
If you have questions about how various pieces of the backend system work. Open
|
||||
an issue and tag the following people
|
||||
|
||||
- dr-bonez
|
||||
- [ARCHITECTURE.md](ARCHITECTURE.md) — Backend architecture, modules, and patterns
|
||||
- [CONTRIBUTING.md](CONTRIBUTING.md) — How to contribute to core
|
||||
|
||||
@@ -271,6 +271,7 @@ pub fn display_action_result<T: Serialize>(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct RunActionParams {
|
||||
pub package_id: PackageId,
|
||||
@@ -362,6 +363,7 @@ pub async fn run_action(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct ClearTaskParams {
|
||||
|
||||
@@ -418,6 +418,7 @@ impl AsLogoutSessionId for KillSessionId {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct KillParams {
|
||||
@@ -435,6 +436,7 @@ pub async fn kill<C: SessionAuthContext>(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct ResetPasswordParams {
|
||||
|
||||
@@ -30,6 +30,7 @@ use crate::util::serde::IoFormat;
|
||||
use crate::version::VersionT;
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct BackupParams {
|
||||
|
||||
@@ -2,6 +2,7 @@ use std::collections::BTreeMap;
|
||||
|
||||
use rpc_toolkit::{Context, HandlerExt, ParentHandler, from_fn_async};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use ts_rs::TS;
|
||||
|
||||
use crate::PackageId;
|
||||
use crate::context::CliContext;
|
||||
@@ -13,19 +14,22 @@ pub mod os;
|
||||
pub mod restore;
|
||||
pub mod target;
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[derive(Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
pub struct BackupReport {
|
||||
server: ServerBackupReport,
|
||||
packages: BTreeMap<PackageId, PackageBackupReport>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[derive(Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
pub struct ServerBackupReport {
|
||||
attempted: bool,
|
||||
error: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[derive(Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
pub struct PackageBackupReport {
|
||||
pub error: Option<String>,
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ use crate::{PLATFORM, PackageId};
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
#[ts(export)]
|
||||
pub struct RestorePackageParams {
|
||||
#[arg(help = "help.arg.package-ids")]
|
||||
pub ids: Vec<PackageId>,
|
||||
|
||||
@@ -36,7 +36,8 @@ impl Map for CifsTargets {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[derive(Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct CifsBackupTarget {
|
||||
hostname: String,
|
||||
@@ -72,9 +73,10 @@ pub fn cifs<C: Context>() -> ParentHandler<C> {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct AddParams {
|
||||
pub struct CifsAddParams {
|
||||
#[arg(help = "help.arg.cifs-hostname")]
|
||||
pub hostname: String,
|
||||
#[arg(help = "help.arg.cifs-path")]
|
||||
@@ -87,12 +89,12 @@ pub struct AddParams {
|
||||
|
||||
pub async fn add(
|
||||
ctx: RpcContext,
|
||||
AddParams {
|
||||
CifsAddParams {
|
||||
hostname,
|
||||
path,
|
||||
username,
|
||||
password,
|
||||
}: AddParams,
|
||||
}: CifsAddParams,
|
||||
) -> Result<KeyVal<BackupTargetId, BackupTarget>, Error> {
|
||||
let cifs = Cifs {
|
||||
hostname,
|
||||
@@ -131,9 +133,10 @@ pub async fn add(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct UpdateParams {
|
||||
pub struct CifsUpdateParams {
|
||||
#[arg(help = "help.arg.backup-target-id")]
|
||||
pub id: BackupTargetId,
|
||||
#[arg(help = "help.arg.cifs-hostname")]
|
||||
@@ -148,13 +151,13 @@ pub struct UpdateParams {
|
||||
|
||||
pub async fn update(
|
||||
ctx: RpcContext,
|
||||
UpdateParams {
|
||||
CifsUpdateParams {
|
||||
id,
|
||||
hostname,
|
||||
path,
|
||||
username,
|
||||
password,
|
||||
}: UpdateParams,
|
||||
}: CifsUpdateParams,
|
||||
) -> Result<KeyVal<BackupTargetId, BackupTarget>, Error> {
|
||||
let id = if let BackupTargetId::Cifs { id } = id {
|
||||
id
|
||||
@@ -207,14 +210,15 @@ pub async fn update(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct RemoveParams {
|
||||
pub struct CifsRemoveParams {
|
||||
#[arg(help = "help.arg.backup-target-id")]
|
||||
pub id: BackupTargetId,
|
||||
}
|
||||
|
||||
pub async fn remove(ctx: RpcContext, RemoveParams { id }: RemoveParams) -> Result<(), Error> {
|
||||
pub async fn remove(ctx: RpcContext, CifsRemoveParams { id }: CifsRemoveParams) -> Result<(), Error> {
|
||||
let id = if let BackupTargetId::Cifs { id } = id {
|
||||
id
|
||||
} else {
|
||||
|
||||
@@ -34,7 +34,8 @@ use crate::util::{FromStrParser, VersionString};
|
||||
|
||||
pub mod cifs;
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[derive(Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(tag = "type")]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum BackupTarget {
|
||||
@@ -49,7 +50,7 @@ pub enum BackupTarget {
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, TS)]
|
||||
#[ts(type = "string")]
|
||||
#[ts(export, type = "string")]
|
||||
pub enum BackupTargetId {
|
||||
Disk { logicalname: PathBuf },
|
||||
Cifs { id: u32 },
|
||||
@@ -111,6 +112,7 @@ impl Serialize for BackupTargetId {
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(tag = "type")]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum BackupTargetFS {
|
||||
@@ -210,20 +212,26 @@ pub async fn list(ctx: RpcContext) -> Result<BTreeMap<BackupTargetId, BackupTarg
|
||||
.collect())
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct BackupInfo {
|
||||
#[ts(type = "string")]
|
||||
pub version: Version,
|
||||
#[ts(type = "string | null")]
|
||||
pub timestamp: Option<DateTime<Utc>>,
|
||||
pub package_backups: BTreeMap<PackageId, PackageBackupInfo>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct PackageBackupInfo {
|
||||
pub title: InternedString,
|
||||
pub version: VersionString,
|
||||
#[ts(type = "string")]
|
||||
pub os_version: Version,
|
||||
#[ts(type = "string")]
|
||||
pub timestamp: DateTime<Utc>,
|
||||
}
|
||||
|
||||
@@ -265,6 +273,7 @@ fn display_backup_info(params: WithIoFormat<InfoParams>, info: BackupInfo) -> Re
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct InfoParams {
|
||||
@@ -387,6 +396,7 @@ pub async fn mount(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct UmountParams {
|
||||
|
||||
@@ -8,6 +8,7 @@ use crate::prelude::*;
|
||||
use crate::{Error, PackageId};
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct ControlParams {
|
||||
|
||||
@@ -43,22 +43,28 @@ pub struct DiskInfo {
|
||||
pub guid: Option<InternedString>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, ts_rs::TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct PartitionInfo {
|
||||
pub logicalname: PathBuf,
|
||||
pub label: Option<String>,
|
||||
#[ts(type = "number")]
|
||||
pub capacity: u64,
|
||||
#[ts(type = "number | null")]
|
||||
pub used: Option<u64>,
|
||||
pub start_os: BTreeMap<String, StartOsRecoveryInfo>,
|
||||
pub guid: Option<InternedString>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize, ts_rs::TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct StartOsRecoveryInfo {
|
||||
pub hostname: Hostname,
|
||||
#[ts(type = "string")]
|
||||
pub version: exver::Version,
|
||||
#[ts(type = "string")]
|
||||
pub timestamp: DateTime<Utc>,
|
||||
pub password_hash: Option<String>,
|
||||
pub wrapped_key: Option<String>,
|
||||
|
||||
@@ -6,7 +6,8 @@ use tracing::instrument;
|
||||
|
||||
use crate::util::Invoke;
|
||||
use crate::{Error, ErrorKind};
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize, ts_rs::TS)]
|
||||
#[ts(type = "string")]
|
||||
pub struct Hostname(pub InternedString);
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
|
||||
@@ -177,6 +177,7 @@ pub async fn install(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SideloadParams {
|
||||
#[ts(skip)]
|
||||
@@ -185,6 +186,7 @@ pub struct SideloadParams {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SideloadResponse {
|
||||
pub upload: Guid,
|
||||
@@ -284,6 +286,7 @@ pub async fn sideload(
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct CancelInstallParams {
|
||||
@@ -521,6 +524,7 @@ pub async fn cli_install(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct UninstallParams {
|
||||
|
||||
@@ -24,6 +24,7 @@ use tokio::process::{Child, Command};
|
||||
use tokio_stream::wrappers::LinesStream;
|
||||
use tokio_tungstenite::tungstenite::Message;
|
||||
use tracing::instrument;
|
||||
use ts_rs::TS;
|
||||
|
||||
use crate::PackageId;
|
||||
use crate::context::{CliContext, RpcContext};
|
||||
@@ -109,23 +110,28 @@ async fn ws_handler(
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct LogResponse {
|
||||
#[ts(as = "Vec<LogEntry>")]
|
||||
pub entries: Reversible<LogEntry>,
|
||||
start_cursor: Option<String>,
|
||||
end_cursor: Option<String>,
|
||||
}
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct LogFollowResponse {
|
||||
start_cursor: Option<String>,
|
||||
guid: Guid,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct LogEntry {
|
||||
#[ts(type = "string")]
|
||||
timestamp: DateTime<Utc>,
|
||||
message: String,
|
||||
boot_id: String,
|
||||
@@ -321,14 +327,17 @@ impl From<BootIdentifier> for String {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export, concrete(Extra = Empty), bound = "")]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct LogsParams<Extra: FromArgMatches + Args = Empty> {
|
||||
#[command(flatten)]
|
||||
#[serde(flatten)]
|
||||
#[ts(skip)]
|
||||
extra: Extra,
|
||||
#[arg(short = 'l', long = "limit", help = "help.arg.log-limit")]
|
||||
#[ts(optional)]
|
||||
limit: Option<usize>,
|
||||
#[arg(
|
||||
short = 'c',
|
||||
@@ -336,9 +345,11 @@ pub struct LogsParams<Extra: FromArgMatches + Args = Empty> {
|
||||
conflicts_with = "follow",
|
||||
help = "help.arg.log-cursor"
|
||||
)]
|
||||
#[ts(optional)]
|
||||
cursor: Option<String>,
|
||||
#[arg(short = 'b', long = "boot", help = "help.arg.log-boot")]
|
||||
#[serde(default)]
|
||||
#[ts(optional, type = "number | string")]
|
||||
boot: Option<BootIdentifier>,
|
||||
#[arg(
|
||||
short = 'B',
|
||||
|
||||
@@ -461,7 +461,8 @@ impl ValueParserFactory for AcmeProvider {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct InitAcmeParams {
|
||||
#[arg(long, help = "help.arg.acme-provider")]
|
||||
pub provider: AcmeProvider,
|
||||
@@ -486,7 +487,8 @@ pub async fn init(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct RemoveAcmeParams {
|
||||
#[arg(long, help = "help.arg.acme-provider")]
|
||||
pub provider: AcmeProvider,
|
||||
|
||||
@@ -25,6 +25,7 @@ use serde::{Deserialize, Serialize};
|
||||
use tokio::net::{TcpListener, UdpSocket};
|
||||
use tokio::sync::RwLock;
|
||||
use tracing::instrument;
|
||||
use ts_rs::TS;
|
||||
|
||||
use crate::context::{CliContext, RpcContext};
|
||||
use crate::db::model::Database;
|
||||
@@ -93,7 +94,8 @@ pub fn dns_api<C: Context>() -> ParentHandler<C> {
|
||||
)
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct QueryDnsParams {
|
||||
#[arg(help = "help.arg.fqdn")]
|
||||
pub fqdn: InternedString,
|
||||
@@ -133,7 +135,8 @@ pub fn query_dns<C: Context>(
|
||||
.map_err(Error::from)
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct SetStaticDnsParams {
|
||||
#[arg(help = "help.arg.dns-servers")]
|
||||
pub servers: Option<Vec<String>>,
|
||||
|
||||
@@ -119,6 +119,7 @@ async fn list_interfaces(
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
struct ForgetGatewayParams {
|
||||
#[arg(help = "help.arg.gateway-id")]
|
||||
gateway: GatewayId,
|
||||
@@ -132,6 +133,7 @@ async fn forget_iface(
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
struct RenameGatewayParams {
|
||||
#[arg(help = "help.arg.gateway-id")]
|
||||
id: GatewayId,
|
||||
|
||||
@@ -25,6 +25,7 @@ pub struct HostAddress {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, TS)]
|
||||
#[ts(export)]
|
||||
pub struct PublicDomainConfig {
|
||||
pub gateway: GatewayId,
|
||||
pub acme: Option<AcmeProvider>,
|
||||
@@ -158,7 +159,8 @@ pub fn address_api<C: Context, Kind: HostApiKind>()
|
||||
)
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct AddPublicDomainParams {
|
||||
#[arg(help = "help.arg.fqdn")]
|
||||
pub fqdn: InternedString,
|
||||
@@ -211,7 +213,8 @@ pub async fn add_public_domain<Kind: HostApiKind>(
|
||||
.with_kind(ErrorKind::Unknown)?
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct RemoveDomainParams {
|
||||
#[arg(help = "help.arg.fqdn")]
|
||||
pub fqdn: InternedString,
|
||||
@@ -239,7 +242,8 @@ pub async fn remove_public_domain<Kind: HostApiKind>(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser)]
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct AddPrivateDomainParams {
|
||||
#[arg(help = "help.arg.fqdn")]
|
||||
pub fqdn: InternedString,
|
||||
|
||||
@@ -85,6 +85,7 @@ pub fn wifi<C: Context>() -> ParentHandler<C> {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct SetWifiEnabledParams {
|
||||
@@ -150,16 +151,17 @@ pub fn country<C: Context>() -> ParentHandler<C> {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct AddParams {
|
||||
pub struct WifiAddParams {
|
||||
#[arg(help = "help.arg.wifi-ssid")]
|
||||
ssid: String,
|
||||
#[arg(help = "help.arg.wifi-password")]
|
||||
password: String,
|
||||
}
|
||||
#[instrument(skip_all)]
|
||||
pub async fn add(ctx: RpcContext, AddParams { ssid, password }: AddParams) -> Result<(), Error> {
|
||||
pub async fn add(ctx: RpcContext, WifiAddParams { ssid, password }: WifiAddParams) -> Result<(), Error> {
|
||||
let wifi_manager = ctx.wifi_manager.clone();
|
||||
if !ssid.is_ascii() {
|
||||
return Err(Error::new(
|
||||
@@ -229,15 +231,16 @@ pub async fn add(ctx: RpcContext, AddParams { ssid, password }: AddParams) -> Re
|
||||
Ok(())
|
||||
}
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct SsidParams {
|
||||
pub struct WifiSsidParams {
|
||||
#[arg(help = "help.arg.wifi-ssid")]
|
||||
ssid: String,
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
pub async fn connect(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result<(), Error> {
|
||||
pub async fn connect(ctx: RpcContext, WifiSsidParams { ssid }: WifiSsidParams) -> Result<(), Error> {
|
||||
let wifi_manager = ctx.wifi_manager.clone();
|
||||
if !ssid.is_ascii() {
|
||||
return Err(Error::new(
|
||||
@@ -311,7 +314,7 @@ pub async fn connect(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
pub async fn remove(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result<(), Error> {
|
||||
pub async fn remove(ctx: RpcContext, WifiSsidParams { ssid }: WifiSsidParams) -> Result<(), Error> {
|
||||
let wifi_manager = ctx.wifi_manager.clone();
|
||||
if !ssid.is_ascii() {
|
||||
return Err(Error::new(
|
||||
@@ -359,11 +362,13 @@ pub async fn remove(ctx: RpcContext, SsidParams { ssid }: SsidParams) -> Result<
|
||||
.result?;
|
||||
Ok(())
|
||||
}
|
||||
#[derive(serde::Serialize, serde::Deserialize)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct WifiListInfo {
|
||||
ssids: HashMap<Ssid, SignalStrength>,
|
||||
connected: Option<Ssid>,
|
||||
#[ts(type = "string | null")]
|
||||
country: Option<CountryCode>,
|
||||
ethernet: bool,
|
||||
available_wifi: Vec<WifiListOut>,
|
||||
@@ -374,7 +379,8 @@ pub struct WifiListInfoLow {
|
||||
strength: SignalStrength,
|
||||
security: Vec<String>,
|
||||
}
|
||||
#[derive(serde::Serialize, serde::Deserialize)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct WifiListOut {
|
||||
ssid: Ssid,
|
||||
@@ -560,6 +566,7 @@ pub async fn get_available(ctx: RpcContext, _: Empty) -> Result<Vec<WifiListOut>
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct SetCountryParams {
|
||||
@@ -605,7 +612,7 @@ pub struct NetworkId(String);
|
||||
|
||||
/// Ssid are the names of the wifis, usually human readable.
|
||||
#[derive(
|
||||
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, serde::Serialize, serde::Deserialize,
|
||||
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, serde::Serialize, serde::Deserialize, TS,
|
||||
)]
|
||||
pub struct Ssid(String);
|
||||
|
||||
@@ -622,6 +629,7 @@ pub struct Ssid(String);
|
||||
Hash,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
TS,
|
||||
)]
|
||||
pub struct SignalStrength(u8);
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@ pub fn notification<C: Context>() -> ParentHandler<C> {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct ListNotificationParams {
|
||||
@@ -140,6 +141,7 @@ pub async fn list(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct ModifyNotificationParams {
|
||||
@@ -175,6 +177,7 @@ pub async fn remove(
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct ModifyNotificationBeforeParams {
|
||||
@@ -326,6 +329,7 @@ pub async fn create(
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum NotificationLevel {
|
||||
Success,
|
||||
@@ -396,26 +400,31 @@ impl Map for Notifications {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, HasModel)]
|
||||
#[derive(Debug, Serialize, Deserialize, HasModel, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[model = "Model<Self>"]
|
||||
pub struct Notification {
|
||||
pub package_id: Option<PackageId>,
|
||||
#[ts(type = "string")]
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub code: u32,
|
||||
pub level: NotificationLevel,
|
||||
pub title: String,
|
||||
pub message: String,
|
||||
#[ts(type = "any")]
|
||||
pub data: Value,
|
||||
#[serde(default = "const_true")]
|
||||
pub seen: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Serialize, Deserialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct NotificationWithId {
|
||||
id: u32,
|
||||
#[serde(flatten)]
|
||||
#[ts(flatten)]
|
||||
notification: Notification,
|
||||
}
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ async fn get_action_input(
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, TS, Parser)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export)]
|
||||
#[ts(export, rename = "EffectsRunActionParams")]
|
||||
pub struct RunActionParams {
|
||||
#[serde(default)]
|
||||
#[ts(skip)]
|
||||
|
||||
@@ -701,6 +701,7 @@ struct ServiceActorSeed {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
pub struct RebuildParams {
|
||||
#[arg(help = "help.arg.package-id")]
|
||||
pub id: PackageId,
|
||||
|
||||
@@ -58,7 +58,8 @@ impl ValueParserFactory for SshPubKey {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SshKeyResponse {
|
||||
pub alg: String,
|
||||
@@ -115,15 +116,16 @@ pub fn ssh<C: Context>() -> ParentHandler<C> {
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct AddParams {
|
||||
pub struct SshAddParams {
|
||||
#[arg(help = "help.arg.ssh-public-key")]
|
||||
key: SshPubKey,
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
pub async fn add(ctx: RpcContext, AddParams { key }: AddParams) -> Result<SshKeyResponse, Error> {
|
||||
pub async fn add(ctx: RpcContext, SshAddParams { key }: SshAddParams) -> Result<SshKeyResponse, Error> {
|
||||
let mut key = WithTimeData::new(key);
|
||||
let fingerprint = InternedString::intern(key.0.fingerprint_md5());
|
||||
let (keys, res) = ctx
|
||||
@@ -150,9 +152,10 @@ pub async fn add(ctx: RpcContext, AddParams { key }: AddParams) -> Result<SshKey
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Parser, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[command(rename_all = "kebab-case")]
|
||||
pub struct DeleteParams {
|
||||
pub struct SshDeleteParams {
|
||||
#[arg(help = "help.arg.ssh-fingerprint")]
|
||||
#[ts(type = "string")]
|
||||
fingerprint: InternedString,
|
||||
@@ -161,7 +164,7 @@ pub struct DeleteParams {
|
||||
#[instrument(skip_all)]
|
||||
pub async fn remove(
|
||||
ctx: RpcContext,
|
||||
DeleteParams { fingerprint }: DeleteParams,
|
||||
SshDeleteParams { fingerprint }: SshDeleteParams,
|
||||
) -> Result<(), Error> {
|
||||
let keys = ctx
|
||||
.db
|
||||
|
||||
@@ -191,7 +191,9 @@ pub async fn governor(
|
||||
Ok(GovernorInfo { current, available })
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
#[derive(Serialize, Deserialize, TS)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct TimeInfo {
|
||||
now: String,
|
||||
uptime: u64,
|
||||
@@ -331,6 +333,7 @@ pub struct MetricLeaf<T> {
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, PartialOrd, TS)]
|
||||
#[ts(type = "{ value: string, unit: string }")]
|
||||
pub struct Celsius(f64);
|
||||
impl fmt::Display for Celsius {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
@@ -359,6 +362,7 @@ impl<'de> Deserialize<'de> for Celsius {
|
||||
}
|
||||
}
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, TS)]
|
||||
#[ts(type = "{ value: string, unit: string }")]
|
||||
pub struct Percentage(f64);
|
||||
impl Serialize for Percentage {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
@@ -385,6 +389,7 @@ impl<'de> Deserialize<'de> for Percentage {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, TS)]
|
||||
#[ts(type = "{ value: string, unit: string }")]
|
||||
pub struct MebiBytes(pub f64);
|
||||
impl Serialize for MebiBytes {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
@@ -411,6 +416,7 @@ impl<'de> Deserialize<'de> for MebiBytes {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, TS)]
|
||||
#[ts(type = "{ value: string, unit: string }")]
|
||||
pub struct GigaBytes(f64);
|
||||
impl Serialize for GigaBytes {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
@@ -490,6 +496,7 @@ pub async fn metrics(ctx: RpcContext) -> Result<Metrics, Error> {
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export)]
|
||||
pub struct MetricsFollowResponse {
|
||||
pub guid: Guid,
|
||||
pub metrics: Metrics,
|
||||
@@ -1211,6 +1218,7 @@ pub async fn set_keyboard(ctx: RpcContext, options: KeyboardOptions) -> Result<(
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, TS, Parser)]
|
||||
#[ts(export)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SetLanguageParams {
|
||||
#[arg(help = "help.arg.language-code")]
|
||||
|
||||
4
sdk/base/lib/osBindings/AddPrivateDomainParams.ts
Normal file
4
sdk/base/lib/osBindings/AddPrivateDomainParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { GatewayId } from './GatewayId'
|
||||
|
||||
export type AddPrivateDomainParams = { fqdn: string; gateway: GatewayId }
|
||||
9
sdk/base/lib/osBindings/AddPublicDomainParams.ts
Normal file
9
sdk/base/lib/osBindings/AddPublicDomainParams.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AcmeProvider } from './AcmeProvider'
|
||||
import type { GatewayId } from './GatewayId'
|
||||
|
||||
export type AddPublicDomainParams = {
|
||||
fqdn: string
|
||||
acme: AcmeProvider | null
|
||||
gateway: GatewayId
|
||||
}
|
||||
9
sdk/base/lib/osBindings/BackupInfo.ts
Normal file
9
sdk/base/lib/osBindings/BackupInfo.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageBackupInfo } from './PackageBackupInfo'
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type BackupInfo = {
|
||||
version: string
|
||||
timestamp: string | null
|
||||
packageBackups: { [key: PackageId]: PackageBackupInfo }
|
||||
}
|
||||
11
sdk/base/lib/osBindings/BackupParams.ts
Normal file
11
sdk/base/lib/osBindings/BackupParams.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { BackupTargetId } from './BackupTargetId'
|
||||
import type { PackageId } from './PackageId'
|
||||
import type { PasswordType } from './PasswordType'
|
||||
|
||||
export type BackupParams = {
|
||||
targetId: BackupTargetId
|
||||
oldPassword: PasswordType | null
|
||||
packageIds: Array<PackageId> | null
|
||||
password: PasswordType
|
||||
}
|
||||
9
sdk/base/lib/osBindings/BackupReport.ts
Normal file
9
sdk/base/lib/osBindings/BackupReport.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageBackupReport } from './PackageBackupReport'
|
||||
import type { PackageId } from './PackageId'
|
||||
import type { ServerBackupReport } from './ServerBackupReport'
|
||||
|
||||
export type BackupReport = {
|
||||
server: ServerBackupReport
|
||||
packages: { [key: PackageId]: PackageBackupReport }
|
||||
}
|
||||
17
sdk/base/lib/osBindings/BackupTarget.ts
Normal file
17
sdk/base/lib/osBindings/BackupTarget.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CifsBackupTarget } from './CifsBackupTarget'
|
||||
import type { StartOsRecoveryInfo } from './StartOsRecoveryInfo'
|
||||
|
||||
export type BackupTarget =
|
||||
| {
|
||||
type: 'disk'
|
||||
vendor: string | null
|
||||
model: string | null
|
||||
logicalname: string
|
||||
label: string | null
|
||||
capacity: number
|
||||
used: number | null
|
||||
startOs: { [key: string]: StartOsRecoveryInfo }
|
||||
guid: string | null
|
||||
}
|
||||
| ({ type: 'cifs' } & CifsBackupTarget)
|
||||
3
sdk/base/lib/osBindings/BackupTargetId.ts
Normal file
3
sdk/base/lib/osBindings/BackupTargetId.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type BackupTargetId = string
|
||||
4
sdk/base/lib/osBindings/CancelInstallParams.ts
Normal file
4
sdk/base/lib/osBindings/CancelInstallParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type CancelInstallParams = { id: PackageId }
|
||||
@@ -1,3 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type Celsius = number
|
||||
export type Celsius = { value: string; unit: string }
|
||||
|
||||
8
sdk/base/lib/osBindings/CifsAddParams.ts
Normal file
8
sdk/base/lib/osBindings/CifsAddParams.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type CifsAddParams = {
|
||||
hostname: string
|
||||
path: string
|
||||
username: string
|
||||
password: string | null
|
||||
}
|
||||
10
sdk/base/lib/osBindings/CifsBackupTarget.ts
Normal file
10
sdk/base/lib/osBindings/CifsBackupTarget.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { StartOsRecoveryInfo } from './StartOsRecoveryInfo'
|
||||
|
||||
export type CifsBackupTarget = {
|
||||
hostname: string
|
||||
path: string
|
||||
username: string
|
||||
mountable: boolean
|
||||
startOs: { [key: string]: StartOsRecoveryInfo }
|
||||
}
|
||||
4
sdk/base/lib/osBindings/CifsRemoveParams.ts
Normal file
4
sdk/base/lib/osBindings/CifsRemoveParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { BackupTargetId } from './BackupTargetId'
|
||||
|
||||
export type CifsRemoveParams = { id: BackupTargetId }
|
||||
10
sdk/base/lib/osBindings/CifsUpdateParams.ts
Normal file
10
sdk/base/lib/osBindings/CifsUpdateParams.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { BackupTargetId } from './BackupTargetId'
|
||||
|
||||
export type CifsUpdateParams = {
|
||||
id: BackupTargetId
|
||||
hostname: string
|
||||
path: string
|
||||
username: string
|
||||
password: string | null
|
||||
}
|
||||
9
sdk/base/lib/osBindings/ClearTaskParams.ts
Normal file
9
sdk/base/lib/osBindings/ClearTaskParams.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageId } from './PackageId'
|
||||
import type { ReplayId } from './ReplayId'
|
||||
|
||||
export type ClearTaskParams = {
|
||||
packageId: PackageId
|
||||
replayId: ReplayId
|
||||
force: boolean
|
||||
}
|
||||
4
sdk/base/lib/osBindings/ControlParams.ts
Normal file
4
sdk/base/lib/osBindings/ControlParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type ControlParams = { id: PackageId }
|
||||
9
sdk/base/lib/osBindings/EffectsRunActionParams.ts
Normal file
9
sdk/base/lib/osBindings/EffectsRunActionParams.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ActionId } from './ActionId'
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type EffectsRunActionParams = {
|
||||
packageId?: PackageId
|
||||
actionId: ActionId
|
||||
input: any
|
||||
}
|
||||
4
sdk/base/lib/osBindings/ForgetGatewayParams.ts
Normal file
4
sdk/base/lib/osBindings/ForgetGatewayParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { GatewayId } from './GatewayId'
|
||||
|
||||
export type ForgetGatewayParams = { gateway: GatewayId }
|
||||
@@ -1,3 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type GigaBytes = number
|
||||
export type GigaBytes = { value: string; unit: string }
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { Bindings } from './Bindings'
|
||||
import type { GatewayId } from './GatewayId'
|
||||
import type { PortForward } from './PortForward'
|
||||
import type { PublicDomainConfig } from './PublicDomainConfig'
|
||||
|
||||
export type Host = {
|
||||
bindings: Bindings
|
||||
publicDomains: { [key: string]: PublicDomainConfig }
|
||||
privateDomains: { [key: string]: Array<GatewayId> }
|
||||
/**
|
||||
* COMPUTED: port forwarding rules needed on gateways for public addresses to work.
|
||||
*/
|
||||
portForwards: Array<PortForward>
|
||||
}
|
||||
|
||||
3
sdk/base/lib/osBindings/Hostname.ts
Normal file
3
sdk/base/lib/osBindings/Hostname.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type Hostname = string
|
||||
8
sdk/base/lib/osBindings/InfoParams.ts
Normal file
8
sdk/base/lib/osBindings/InfoParams.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { BackupTargetId } from './BackupTargetId'
|
||||
|
||||
export type InfoParams = {
|
||||
targetId: BackupTargetId
|
||||
serverId: string
|
||||
password: string
|
||||
}
|
||||
4
sdk/base/lib/osBindings/InitAcmeParams.ts
Normal file
4
sdk/base/lib/osBindings/InitAcmeParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AcmeProvider } from './AcmeProvider'
|
||||
|
||||
export type InitAcmeParams = { provider: AcmeProvider; contact: Array<string> }
|
||||
3
sdk/base/lib/osBindings/KillParams.ts
Normal file
3
sdk/base/lib/osBindings/KillParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type KillParams = { ids: Array<string> }
|
||||
6
sdk/base/lib/osBindings/ListNotificationParams.ts
Normal file
6
sdk/base/lib/osBindings/ListNotificationParams.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ListNotificationParams = {
|
||||
before: number | null
|
||||
limit: number | null
|
||||
}
|
||||
3
sdk/base/lib/osBindings/LogEntry.ts
Normal file
3
sdk/base/lib/osBindings/LogEntry.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type LogEntry = { timestamp: string; message: string; bootId: string }
|
||||
4
sdk/base/lib/osBindings/LogFollowResponse.ts
Normal file
4
sdk/base/lib/osBindings/LogFollowResponse.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { Guid } from './Guid'
|
||||
|
||||
export type LogFollowResponse = { startCursor: string | null; guid: Guid }
|
||||
8
sdk/base/lib/osBindings/LogResponse.ts
Normal file
8
sdk/base/lib/osBindings/LogResponse.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LogEntry } from './LogEntry'
|
||||
|
||||
export type LogResponse = {
|
||||
entries: Array<LogEntry>
|
||||
startCursor: string | null
|
||||
endCursor: string | null
|
||||
}
|
||||
8
sdk/base/lib/osBindings/LogsParams.ts
Normal file
8
sdk/base/lib/osBindings/LogsParams.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type LogsParams = {
|
||||
limit?: number
|
||||
cursor?: string
|
||||
boot?: number | string
|
||||
before: boolean
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type MebiBytes = number
|
||||
export type MebiBytes = { value: string; unit: string }
|
||||
|
||||
5
sdk/base/lib/osBindings/MetricsFollowResponse.ts
Normal file
5
sdk/base/lib/osBindings/MetricsFollowResponse.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { Guid } from './Guid'
|
||||
import type { Metrics } from './Metrics'
|
||||
|
||||
export type MetricsFollowResponse = { guid: Guid; metrics: Metrics }
|
||||
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ModifyNotificationBeforeParams = { before: number }
|
||||
3
sdk/base/lib/osBindings/ModifyNotificationParams.ts
Normal file
3
sdk/base/lib/osBindings/ModifyNotificationParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ModifyNotificationParams = { ids: number[] }
|
||||
14
sdk/base/lib/osBindings/Notification.ts
Normal file
14
sdk/base/lib/osBindings/Notification.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { NotificationLevel } from './NotificationLevel'
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type Notification = {
|
||||
packageId: PackageId | null
|
||||
createdAt: string
|
||||
code: number
|
||||
level: NotificationLevel
|
||||
title: string
|
||||
message: string
|
||||
data: any
|
||||
seen: boolean
|
||||
}
|
||||
3
sdk/base/lib/osBindings/NotificationLevel.ts
Normal file
3
sdk/base/lib/osBindings/NotificationLevel.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type NotificationLevel = 'success' | 'info' | 'warning' | 'error'
|
||||
15
sdk/base/lib/osBindings/NotificationWithId.ts
Normal file
15
sdk/base/lib/osBindings/NotificationWithId.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { NotificationLevel } from './NotificationLevel'
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type NotificationWithId = {
|
||||
id: number
|
||||
packageId: PackageId | null
|
||||
createdAt: string
|
||||
code: number
|
||||
level: NotificationLevel
|
||||
title: string
|
||||
message: string
|
||||
data: any
|
||||
seen: boolean
|
||||
}
|
||||
9
sdk/base/lib/osBindings/PackageBackupInfo.ts
Normal file
9
sdk/base/lib/osBindings/PackageBackupInfo.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { Version } from './Version'
|
||||
|
||||
export type PackageBackupInfo = {
|
||||
title: string
|
||||
version: Version
|
||||
osVersion: string
|
||||
timestamp: string
|
||||
}
|
||||
3
sdk/base/lib/osBindings/PackageBackupReport.ts
Normal file
3
sdk/base/lib/osBindings/PackageBackupReport.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type PackageBackupReport = { error: string | null }
|
||||
11
sdk/base/lib/osBindings/PartitionInfo.ts
Normal file
11
sdk/base/lib/osBindings/PartitionInfo.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { StartOsRecoveryInfo } from './StartOsRecoveryInfo'
|
||||
|
||||
export type PartitionInfo = {
|
||||
logicalname: string
|
||||
label: string | null
|
||||
capacity: number
|
||||
used: number | null
|
||||
startOs: { [key: string]: StartOsRecoveryInfo }
|
||||
guid: string | null
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type Percentage = number
|
||||
export type Percentage = { value: string; unit: string }
|
||||
|
||||
4
sdk/base/lib/osBindings/PortForward.ts
Normal file
4
sdk/base/lib/osBindings/PortForward.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { GatewayId } from './GatewayId'
|
||||
|
||||
export type PortForward = { src: string; dst: string; gateway: GatewayId }
|
||||
3
sdk/base/lib/osBindings/QueryDnsParams.ts
Normal file
3
sdk/base/lib/osBindings/QueryDnsParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type QueryDnsParams = { fqdn: string }
|
||||
4
sdk/base/lib/osBindings/RebuildParams.ts
Normal file
4
sdk/base/lib/osBindings/RebuildParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type RebuildParams = { id: PackageId }
|
||||
4
sdk/base/lib/osBindings/RemoveAcmeParams.ts
Normal file
4
sdk/base/lib/osBindings/RemoveAcmeParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AcmeProvider } from './AcmeProvider'
|
||||
|
||||
export type RemoveAcmeParams = { provider: AcmeProvider }
|
||||
3
sdk/base/lib/osBindings/RemoveDomainParams.ts
Normal file
3
sdk/base/lib/osBindings/RemoveDomainParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type RemoveDomainParams = { fqdn: string }
|
||||
4
sdk/base/lib/osBindings/RenameGatewayParams.ts
Normal file
4
sdk/base/lib/osBindings/RenameGatewayParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { GatewayId } from './GatewayId'
|
||||
|
||||
export type RenameGatewayParams = { id: GatewayId; name: string }
|
||||
7
sdk/base/lib/osBindings/ResetPasswordParams.ts
Normal file
7
sdk/base/lib/osBindings/ResetPasswordParams.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PasswordType } from './PasswordType'
|
||||
|
||||
export type ResetPasswordParams = {
|
||||
oldPassword: PasswordType | null
|
||||
newPassword: PasswordType | null
|
||||
}
|
||||
9
sdk/base/lib/osBindings/RestorePackageParams.ts
Normal file
9
sdk/base/lib/osBindings/RestorePackageParams.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { BackupTargetId } from './BackupTargetId'
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type RestorePackageParams = {
|
||||
ids: Array<PackageId>
|
||||
targetId: BackupTargetId
|
||||
password: string
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ActionId } from './ActionId'
|
||||
import type { Guid } from './Guid'
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type RunActionParams = {
|
||||
packageId?: PackageId
|
||||
packageId: PackageId
|
||||
eventId: Guid | null
|
||||
actionId: ActionId
|
||||
input: any
|
||||
input?: any
|
||||
}
|
||||
|
||||
3
sdk/base/lib/osBindings/ServerBackupReport.ts
Normal file
3
sdk/base/lib/osBindings/ServerBackupReport.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ServerBackupReport = { attempted: boolean; error: string | null }
|
||||
3
sdk/base/lib/osBindings/SetCountryParams.ts
Normal file
3
sdk/base/lib/osBindings/SetCountryParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SetCountryParams = { country: string }
|
||||
3
sdk/base/lib/osBindings/SetLanguageParams.ts
Normal file
3
sdk/base/lib/osBindings/SetLanguageParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SetLanguageParams = { language: string }
|
||||
3
sdk/base/lib/osBindings/SetStaticDnsParams.ts
Normal file
3
sdk/base/lib/osBindings/SetStaticDnsParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SetStaticDnsParams = { servers: Array<string> | null }
|
||||
3
sdk/base/lib/osBindings/SetWifiEnabledParams.ts
Normal file
3
sdk/base/lib/osBindings/SetWifiEnabledParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SetWifiEnabledParams = { enabled: boolean }
|
||||
3
sdk/base/lib/osBindings/SideloadParams.ts
Normal file
3
sdk/base/lib/osBindings/SideloadParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SideloadParams = {}
|
||||
4
sdk/base/lib/osBindings/SideloadResponse.ts
Normal file
4
sdk/base/lib/osBindings/SideloadResponse.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { Guid } from './Guid'
|
||||
|
||||
export type SideloadResponse = { upload: Guid; progress: Guid }
|
||||
6
sdk/base/lib/osBindings/SignalStrength.ts
Normal file
6
sdk/base/lib/osBindings/SignalStrength.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
/**
|
||||
* So a signal strength is a number between 0-100, I want the null option to be 0 since there is no signal
|
||||
*/
|
||||
export type SignalStrength = number
|
||||
4
sdk/base/lib/osBindings/SshAddParams.ts
Normal file
4
sdk/base/lib/osBindings/SshAddParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { SshPubKey } from './SshPubKey'
|
||||
|
||||
export type SshAddParams = { key: SshPubKey }
|
||||
3
sdk/base/lib/osBindings/SshDeleteParams.ts
Normal file
3
sdk/base/lib/osBindings/SshDeleteParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SshDeleteParams = { fingerprint: string }
|
||||
8
sdk/base/lib/osBindings/SshKeyResponse.ts
Normal file
8
sdk/base/lib/osBindings/SshKeyResponse.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SshKeyResponse = {
|
||||
alg: string
|
||||
fingerprint: string
|
||||
hostname: string
|
||||
createdAt: string
|
||||
}
|
||||
3
sdk/base/lib/osBindings/SshPubKey.ts
Normal file
3
sdk/base/lib/osBindings/SshPubKey.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type SshPubKey = string
|
||||
6
sdk/base/lib/osBindings/Ssid.ts
Normal file
6
sdk/base/lib/osBindings/Ssid.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
/**
|
||||
* Ssid are the names of the wifis, usually human readable.
|
||||
*/
|
||||
export type Ssid = string
|
||||
10
sdk/base/lib/osBindings/StartOsRecoveryInfo.ts
Normal file
10
sdk/base/lib/osBindings/StartOsRecoveryInfo.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { Hostname } from './Hostname'
|
||||
|
||||
export type StartOsRecoveryInfo = {
|
||||
hostname: Hostname
|
||||
version: string
|
||||
timestamp: string
|
||||
passwordHash: string | null
|
||||
wrappedKey: string | null
|
||||
}
|
||||
3
sdk/base/lib/osBindings/TimeInfo.ts
Normal file
3
sdk/base/lib/osBindings/TimeInfo.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type TimeInfo = { now: string; uptime: bigint }
|
||||
4
sdk/base/lib/osBindings/UmountParams.ts
Normal file
4
sdk/base/lib/osBindings/UmountParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { BackupTargetId } from './BackupTargetId'
|
||||
|
||||
export type UmountParams = { targetId: BackupTargetId | null }
|
||||
4
sdk/base/lib/osBindings/UninstallParams.ts
Normal file
4
sdk/base/lib/osBindings/UninstallParams.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PackageId } from './PackageId'
|
||||
|
||||
export type UninstallParams = { id: PackageId; soft: boolean; force: boolean }
|
||||
3
sdk/base/lib/osBindings/WifiAddParams.ts
Normal file
3
sdk/base/lib/osBindings/WifiAddParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type WifiAddParams = { ssid: string; password: string }
|
||||
12
sdk/base/lib/osBindings/WifiListInfo.ts
Normal file
12
sdk/base/lib/osBindings/WifiListInfo.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { SignalStrength } from './SignalStrength'
|
||||
import type { Ssid } from './Ssid'
|
||||
import type { WifiListOut } from './WifiListOut'
|
||||
|
||||
export type WifiListInfo = {
|
||||
ssids: { [key: Ssid]: SignalStrength }
|
||||
connected: Ssid | null
|
||||
country: string | null
|
||||
ethernet: boolean
|
||||
availableWifi: Array<WifiListOut>
|
||||
}
|
||||
9
sdk/base/lib/osBindings/WifiListOut.ts
Normal file
9
sdk/base/lib/osBindings/WifiListOut.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { SignalStrength } from './SignalStrength'
|
||||
import type { Ssid } from './Ssid'
|
||||
|
||||
export type WifiListOut = {
|
||||
ssid: Ssid
|
||||
strength: SignalStrength
|
||||
security: Array<string>
|
||||
}
|
||||
3
sdk/base/lib/osBindings/WifiSsidParams.ts
Normal file
3
sdk/base/lib/osBindings/WifiSsidParams.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type WifiSsidParams = { ssid: string }
|
||||
@@ -17,6 +17,8 @@ export { AddMirrorParams } from './AddMirrorParams'
|
||||
export { AddPackageParams } from './AddPackageParams'
|
||||
export { AddPackageSignerParams } from './AddPackageSignerParams'
|
||||
export { AddPackageToCategoryParams } from './AddPackageToCategoryParams'
|
||||
export { AddPrivateDomainParams } from './AddPrivateDomainParams'
|
||||
export { AddPublicDomainParams } from './AddPublicDomainParams'
|
||||
export { AddressInfo } from './AddressInfo'
|
||||
export { AddSslOptions } from './AddSslOptions'
|
||||
export { AddTunnelParams } from './AddTunnelParams'
|
||||
@@ -31,8 +33,13 @@ export { AnySigningKey } from './AnySigningKey'
|
||||
export { AnyVerifyingKey } from './AnyVerifyingKey'
|
||||
export { ApiState } from './ApiState'
|
||||
export { AttachParams } from './AttachParams'
|
||||
export { BackupInfo } from './BackupInfo'
|
||||
export { BackupParams } from './BackupParams'
|
||||
export { BackupProgress } from './BackupProgress'
|
||||
export { BackupReport } from './BackupReport'
|
||||
export { BackupTargetFS } from './BackupTargetFS'
|
||||
export { BackupTargetId } from './BackupTargetId'
|
||||
export { BackupTarget } from './BackupTarget'
|
||||
export { Base64 } from './Base64'
|
||||
export { BindId } from './BindId'
|
||||
export { BindInfo } from './BindInfo'
|
||||
@@ -44,18 +51,25 @@ export { Blake3Commitment } from './Blake3Commitment'
|
||||
export { BlockDev } from './BlockDev'
|
||||
export { BuildArg } from './BuildArg'
|
||||
export { CallbackId } from './CallbackId'
|
||||
export { CancelInstallParams } from './CancelInstallParams'
|
||||
export { Category } from './Category'
|
||||
export { Celsius } from './Celsius'
|
||||
export { CheckDependenciesParam } from './CheckDependenciesParam'
|
||||
export { CheckDependenciesResult } from './CheckDependenciesResult'
|
||||
export { CifsAddParams } from './CifsAddParams'
|
||||
export { CifsBackupTarget } from './CifsBackupTarget'
|
||||
export { CifsRemoveParams } from './CifsRemoveParams'
|
||||
export { Cifs } from './Cifs'
|
||||
export { CifsUpdateParams } from './CifsUpdateParams'
|
||||
export { ClearActionsParams } from './ClearActionsParams'
|
||||
export { ClearBindingsParams } from './ClearBindingsParams'
|
||||
export { ClearCallbacksParams } from './ClearCallbacksParams'
|
||||
export { ClearServiceInterfacesParams } from './ClearServiceInterfacesParams'
|
||||
export { ClearTaskParams } from './ClearTaskParams'
|
||||
export { ClearTasksParams } from './ClearTasksParams'
|
||||
export { CliSetIconParams } from './CliSetIconParams'
|
||||
export { ContactInfo } from './ContactInfo'
|
||||
export { ControlParams } from './ControlParams'
|
||||
export { CreateSubcontainerFsParams } from './CreateSubcontainerFsParams'
|
||||
export { CreateTaskParams } from './CreateTaskParams'
|
||||
export { CurrentDependencies } from './CurrentDependencies'
|
||||
@@ -75,12 +89,14 @@ export { DomainSettings } from './DomainSettings'
|
||||
export { Duration } from './Duration'
|
||||
export { EchoParams } from './EchoParams'
|
||||
export { EditSignerParams } from './EditSignerParams'
|
||||
export { EffectsRunActionParams } from './EffectsRunActionParams'
|
||||
export { EncryptedWire } from './EncryptedWire'
|
||||
export { ErrorData } from './ErrorData'
|
||||
export { EventId } from './EventId'
|
||||
export { ExportActionParams } from './ExportActionParams'
|
||||
export { ExportServiceInterfaceParams } from './ExportServiceInterfaceParams'
|
||||
export { FileType } from './FileType'
|
||||
export { ForgetGatewayParams } from './ForgetGatewayParams'
|
||||
export { FullIndex } from './FullIndex'
|
||||
export { FullProgress } from './FullProgress'
|
||||
export { GatewayId } from './GatewayId'
|
||||
@@ -110,6 +126,7 @@ export { HealthCheckId } from './HealthCheckId'
|
||||
export { HostId } from './HostId'
|
||||
export { HostnameInfo } from './HostnameInfo'
|
||||
export { HostnameMetadata } from './HostnameMetadata'
|
||||
export { Hostname } from './Hostname'
|
||||
export { Hosts } from './Hosts'
|
||||
export { Host } from './Host'
|
||||
export { IdMap } from './IdMap'
|
||||
@@ -117,6 +134,8 @@ export { ImageConfig } from './ImageConfig'
|
||||
export { ImageId } from './ImageId'
|
||||
export { ImageMetadata } from './ImageMetadata'
|
||||
export { ImageSource } from './ImageSource'
|
||||
export { InfoParams } from './InfoParams'
|
||||
export { InitAcmeParams } from './InitAcmeParams'
|
||||
export { InitProgressRes } from './InitProgressRes'
|
||||
export { InstalledState } from './InstalledState'
|
||||
export { InstalledVersionParams } from './InstalledVersionParams'
|
||||
@@ -125,11 +144,17 @@ export { InstallingState } from './InstallingState'
|
||||
export { InstallParams } from './InstallParams'
|
||||
export { IpInfo } from './IpInfo'
|
||||
export { KeyboardOptions } from './KeyboardOptions'
|
||||
export { KillParams } from './KillParams'
|
||||
export { ListNotificationParams } from './ListNotificationParams'
|
||||
export { ListPackageSignersParams } from './ListPackageSignersParams'
|
||||
export { ListServiceInterfacesParams } from './ListServiceInterfacesParams'
|
||||
export { ListVersionSignersParams } from './ListVersionSignersParams'
|
||||
export { LocaleString } from './LocaleString'
|
||||
export { LogEntry } from './LogEntry'
|
||||
export { LogFollowResponse } from './LogFollowResponse'
|
||||
export { LoginParams } from './LoginParams'
|
||||
export { LogResponse } from './LogResponse'
|
||||
export { LogsParams } from './LogsParams'
|
||||
export { LshwDevice } from './LshwDevice'
|
||||
export { LshwDisplay } from './LshwDisplay'
|
||||
export { LshwProcessor } from './LshwProcessor'
|
||||
@@ -141,9 +166,12 @@ export { MetadataSrc } from './MetadataSrc'
|
||||
export { Metadata } from './Metadata'
|
||||
export { MetricsCpu } from './MetricsCpu'
|
||||
export { MetricsDisk } from './MetricsDisk'
|
||||
export { MetricsFollowResponse } from './MetricsFollowResponse'
|
||||
export { MetricsGeneral } from './MetricsGeneral'
|
||||
export { MetricsMemory } from './MetricsMemory'
|
||||
export { Metrics } from './Metrics'
|
||||
export { ModifyNotificationBeforeParams } from './ModifyNotificationBeforeParams'
|
||||
export { ModifyNotificationParams } from './ModifyNotificationParams'
|
||||
export { MountParams } from './MountParams'
|
||||
export { MountTarget } from './MountTarget'
|
||||
export { NamedHealthCheckResult } from './NamedHealthCheckResult'
|
||||
@@ -152,9 +180,14 @@ export { NetInfo } from './NetInfo'
|
||||
export { NetworkInfo } from './NetworkInfo'
|
||||
export { NetworkInterfaceInfo } from './NetworkInterfaceInfo'
|
||||
export { NetworkInterfaceType } from './NetworkInterfaceType'
|
||||
export { NotificationLevel } from './NotificationLevel'
|
||||
export { Notification } from './Notification'
|
||||
export { NotificationWithId } from './NotificationWithId'
|
||||
export { OsIndex } from './OsIndex'
|
||||
export { OsVersionInfoMap } from './OsVersionInfoMap'
|
||||
export { OsVersionInfo } from './OsVersionInfo'
|
||||
export { PackageBackupInfo } from './PackageBackupInfo'
|
||||
export { PackageBackupReport } from './PackageBackupReport'
|
||||
export { PackageDataEntry } from './PackageDataEntry'
|
||||
export { PackageDetailLevel } from './PackageDetailLevel'
|
||||
export { PackageId } from './PackageId'
|
||||
@@ -163,30 +196,40 @@ export { PackageInfoShort } from './PackageInfoShort'
|
||||
export { PackageInfo } from './PackageInfo'
|
||||
export { PackageState } from './PackageState'
|
||||
export { PackageVersionInfo } from './PackageVersionInfo'
|
||||
export { PartitionInfo } from './PartitionInfo'
|
||||
export { PasswordType } from './PasswordType'
|
||||
export { PathOrUrl } from './PathOrUrl'
|
||||
export { Pem } from './Pem'
|
||||
export { Percentage } from './Percentage'
|
||||
export { PortForward } from './PortForward'
|
||||
export { Progress } from './Progress'
|
||||
export { ProgressUnits } from './ProgressUnits'
|
||||
export { PublicDomainConfig } from './PublicDomainConfig'
|
||||
export { Public } from './Public'
|
||||
export { QueryDnsParams } from './QueryDnsParams'
|
||||
export { RebuildParams } from './RebuildParams'
|
||||
export { RecoverySource } from './RecoverySource'
|
||||
export { RegistryAsset } from './RegistryAsset'
|
||||
export { RegistryInfo } from './RegistryInfo'
|
||||
export { RemoveAcmeParams } from './RemoveAcmeParams'
|
||||
export { RemoveAdminParams } from './RemoveAdminParams'
|
||||
export { RemoveAssetParams } from './RemoveAssetParams'
|
||||
export { RemoveCategoryParams } from './RemoveCategoryParams'
|
||||
export { RemoveDomainParams } from './RemoveDomainParams'
|
||||
export { RemoveMirrorParams } from './RemoveMirrorParams'
|
||||
export { RemovePackageFromCategoryParams } from './RemovePackageFromCategoryParams'
|
||||
export { RemovePackageParams } from './RemovePackageParams'
|
||||
export { RemovePackageSignerParams } from './RemovePackageSignerParams'
|
||||
export { RemoveTunnelParams } from './RemoveTunnelParams'
|
||||
export { RemoveVersionParams } from './RemoveVersionParams'
|
||||
export { RenameGatewayParams } from './RenameGatewayParams'
|
||||
export { ReplayId } from './ReplayId'
|
||||
export { RequestCommitment } from './RequestCommitment'
|
||||
export { ResetPasswordParams } from './ResetPasswordParams'
|
||||
export { RestorePackageParams } from './RestorePackageParams'
|
||||
export { RunActionParams } from './RunActionParams'
|
||||
export { Security } from './Security'
|
||||
export { ServerBackupReport } from './ServerBackupReport'
|
||||
export { ServerInfo } from './ServerInfo'
|
||||
export { ServerSpecs } from './ServerSpecs'
|
||||
export { ServerStatus } from './ServerStatus'
|
||||
@@ -196,21 +239,34 @@ export { ServiceInterfaceType } from './ServiceInterfaceType'
|
||||
export { SessionList } from './SessionList'
|
||||
export { Sessions } from './Sessions'
|
||||
export { Session } from './Session'
|
||||
export { SetCountryParams } from './SetCountryParams'
|
||||
export { SetDataVersionParams } from './SetDataVersionParams'
|
||||
export { SetDependenciesParams } from './SetDependenciesParams'
|
||||
export { SetHealth } from './SetHealth'
|
||||
export { SetIconParams } from './SetIconParams'
|
||||
export { SetLanguageParams } from './SetLanguageParams'
|
||||
export { SetMainStatusStatus } from './SetMainStatusStatus'
|
||||
export { SetMainStatus } from './SetMainStatus'
|
||||
export { SetNameParams } from './SetNameParams'
|
||||
export { SetStaticDnsParams } from './SetStaticDnsParams'
|
||||
export { SetupExecuteParams } from './SetupExecuteParams'
|
||||
export { SetupInfo } from './SetupInfo'
|
||||
export { SetupProgress } from './SetupProgress'
|
||||
export { SetupResult } from './SetupResult'
|
||||
export { SetupStatusRes } from './SetupStatusRes'
|
||||
export { SetWifiEnabledParams } from './SetWifiEnabledParams'
|
||||
export { SideloadParams } from './SideloadParams'
|
||||
export { SideloadResponse } from './SideloadResponse'
|
||||
export { SignalStrength } from './SignalStrength'
|
||||
export { SignAssetParams } from './SignAssetParams'
|
||||
export { SignerInfo } from './SignerInfo'
|
||||
export { SmtpValue } from './SmtpValue'
|
||||
export { SshAddParams } from './SshAddParams'
|
||||
export { SshDeleteParams } from './SshDeleteParams'
|
||||
export { SshKeyResponse } from './SshKeyResponse'
|
||||
export { SshPubKey } from './SshPubKey'
|
||||
export { Ssid } from './Ssid'
|
||||
export { StartOsRecoveryInfo } from './StartOsRecoveryInfo'
|
||||
export { StartStop } from './StartStop'
|
||||
export { StatusInfo } from './StatusInfo'
|
||||
export { TaskCondition } from './TaskCondition'
|
||||
@@ -220,9 +276,16 @@ export { TaskSeverity } from './TaskSeverity'
|
||||
export { TaskTrigger } from './TaskTrigger'
|
||||
export { Task } from './Task'
|
||||
export { TestSmtpParams } from './TestSmtpParams'
|
||||
export { TimeInfo } from './TimeInfo'
|
||||
export { UmountParams } from './UmountParams'
|
||||
export { UninstallParams } from './UninstallParams'
|
||||
export { UpdatingState } from './UpdatingState'
|
||||
export { VerifyCifsParams } from './VerifyCifsParams'
|
||||
export { VersionSignerParams } from './VersionSignerParams'
|
||||
export { Version } from './Version'
|
||||
export { VolumeId } from './VolumeId'
|
||||
export { WifiAddParams } from './WifiAddParams'
|
||||
export { WifiInfo } from './WifiInfo'
|
||||
export { WifiListInfo } from './WifiListInfo'
|
||||
export { WifiListOut } from './WifiListOut'
|
||||
export { WifiSsidParams } from './WifiSsidParams'
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type AnyVerifyingKey = string
|
||||
export type AnyVerifyingKey = string;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user