Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
188 changes: 94 additions & 94 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"bin" = [{ "name" = "webdock-object-storage-plugin", "path" = "src/main.rs", "required-features" = ["providers"] }]
"bin" = [{ "name" = "spitzli-object-storage-plugin", "path" = "src/main.rs", "required-features" = ["providers"] }]

["package"]
"name" = "webdock-object-storage-plugin"
"name" = "spitzli-object-storage-plugin"
"version" = "0.5.0"
"edition" = "2024"
"rust-version" = "1.94"
Expand Down Expand Up @@ -51,20 +51,20 @@
"default-features" = false
"features" = ["ring", "std", "tls12"]

["dependencies"."webdock-plugin-protocol"]
["dependencies"."spitzli-plugin-protocol"]
"git" = "https://github.com/spitzli/cloud-plugin-sdk"
"rev" = "8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6"
"package" = "webdock-plugin-protocol"
"rev" = "8019f3df67dba3fed3083f22635e4725028c1b5e"
"package" = "spitzli-plugin-protocol"

["dependencies"."webdock-plugin-runtime"]
["dependencies"."spitzli-plugin-runtime"]
"git" = "https://github.com/spitzli/cloud-plugin-sdk"
"rev" = "8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6"
"package" = "webdock-plugin-runtime"
"rev" = "8019f3df67dba3fed3083f22635e4725028c1b5e"
"package" = "spitzli-plugin-runtime"

["dependencies"."webdock-plugin-kit"]
["dependencies"."spitzli-plugin-kit"]
"git" = "https://github.com/spitzli/cloud-plugin-sdk"
"rev" = "8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6"
"package" = "webdock-plugin-kit"
"rev" = "8019f3df67dba3fed3083f22635e4725028c1b5e"
"package" = "spitzli-plugin-kit"

["dependencies"."tonic"]
"version" = "0.14.6"
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ WORKDIR /src
COPY . .
# Shared only among reviewed Spitzli platform sources; never customer build code.
FROM source AS check
RUN --mount=type=cache,id=spitzli-native-sdk-8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6-registry,target=/usr/local/cargo/registry,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6-git,target=/usr/local/cargo/git,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6-target,target=/src/target,sharing=locked cargo check --locked --all-targets --jobs 3 && cargo test --locked --all-targets --jobs 3
RUN --mount=type=cache,id=spitzli-native-sdk-8019f3df67dba3fed3083f22635e4725028c1b5e-registry,target=/usr/local/cargo/registry,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8019f3df67dba3fed3083f22635e4725028c1b5e-git,target=/usr/local/cargo/git,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8019f3df67dba3fed3083f22635e4725028c1b5e-target,target=/src/target,sharing=locked cargo check --locked --all-targets --jobs 3 && cargo test --locked --all-targets --jobs 3

FROM source AS build
RUN --mount=type=cache,id=spitzli-native-sdk-8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6-registry,target=/usr/local/cargo/registry,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6-git,target=/usr/local/cargo/git,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8ed57d89c3263b050f126e4c2ba7f6cdebb0daa6-target,target=/src/target,sharing=locked cargo build --locked --release --bins --jobs 3 && mkdir /out && install -m 0555 /src/target/release/webdock-object-storage-plugin /out/webdock-object-storage-plugin
RUN --mount=type=cache,id=spitzli-native-sdk-8019f3df67dba3fed3083f22635e4725028c1b5e-registry,target=/usr/local/cargo/registry,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8019f3df67dba3fed3083f22635e4725028c1b5e-git,target=/usr/local/cargo/git,sharing=locked --mount=type=cache,id=spitzli-native-sdk-8019f3df67dba3fed3083f22635e4725028c1b5e-target,target=/src/target,sharing=locked cargo build --locked --release --bins --jobs 3 && mkdir /out && install -m 0555 /src/target/release/spitzli-object-storage-plugin /out/spitzli-object-storage-plugin

FROM docker.io/library/debian:trixie-slim@sha256:f6b08b09a05725f9431502d3b5714f5c4576e82c1a84fa1debe0c24a7e0c3ec4
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY LICENSE COMMERCIAL-LICENSING.md NOTICE /usr/share/licenses/spitzli-cloud/
COPY --from=build --chown=65532:65532 --chmod=0555 /out/webdock-object-storage-plugin /usr/local/bin/webdock-object-storage-plugin
COPY --from=build --chown=65532:65532 --chmod=0555 /out/spitzli-object-storage-plugin /usr/local/bin/spitzli-object-storage-plugin
ENV HOME=/tmp
USER 65532:65532
ENTRYPOINT ["/usr/local/bin/webdock-object-storage-plugin"]
ENTRYPOINT ["/usr/local/bin/spitzli-object-storage-plugin"]
65 changes: 65 additions & 0 deletions NAMESPACE-MIGRATION.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"baseSource": "d61452fa36013a0eac9c1a62e8d7de083cba4e6b",
"date": "2026-11-12",
"formatVersion": 1,
"licenseUnchanged": true,
"originalSourceSnapshotRetained": true,
"package": "spitzli-object-storage-plugin",
"preservedBindingFilesSHA256": {
"COMMERCIAL-LICENSING.md": "5b8832f5014f16e2cf4f7ee295de32760eed20981495d184bd9f1517be256a09",
"EXPORT-PROVENANCE.json": "7914b9b9f0c65a2d346c6cd08d9592440c3eddce86b4f99abc110d059ff2e7c4",
"LICENSE": "0d96a4ff68ad6d4b6f1f30f713b18d5184912ba8dd389f86aa7710db079abcb0",
"manifest.json": "1d4c555be714d2153b33bc6dc2ce7deee569ffcdd0bafff8da886d04cbc5c1e5",
"migrations/0001_metadata.sql": "5be118d630c588eefa43801360f81bae5f668e940f037901dcba0e4f24a242b6"
},
"qualifiedChangedSourceSHA256": {
"Cargo.lock": "d5617b300a54b2e2514ad7b3b255f7c04f0a6a093bbc4da8e7b4d0858decbe09",
"Cargo.toml": "e2fe5ac5938110c3da9ebf30b4aa124fa8692ad1a2bae3892756996d0263a1db",
"Dockerfile": "9f35da1ca1e23dfa2268677c0d22197095be770660597614c1beee2c94112508",
"NOTICE": "4949ccd63735c148d2fd1f1423772d11938087ba0bdbcf4aad81c576bcfa09b8",
"scripts/plugin-release/release.mjs": "30462a348f238bc78dab840688199574ad4fc5e9b039310306d6210f4c433890",
"src/data.rs": "0f7d1c05d0ec189fc1ebeb4bdcb518ee4a8459d56f79fc098aa43582bf9af4b0",
"src/engine.rs": "5adb9b6cb33045c0b9e31a11b38c9d1da28450cfebdadb1d267651fec1051d64",
"src/lib.rs": "1ae7cfc6f3a7e76627f8e09430be365787289077d0dd775924a1643807a85d60",
"src/main.rs": "fe3384602151a455022f8498e4d4bccf7a2b20f313e9cec2ce18474b83e5ce25",
"src/minio.rs": "6dfcb6ef0d294012fec1aa15189313083ae11bf50c29f60eb85f16837890a8dd",
"src/provider.rs": "ca421495cd41048d5584c87c13756c664b7609f47e58cdf5ae63b373588dcfa0",
"src/sdk.rs": "7fcc2b79d4c181da815e4382c8b8305f72b79cafc5b1752f7c40bd484f5153da",
"src/store.rs": "c5b34cac289f16a9c6d58d1eca38f9af9fa60b3976505e008d50a07f10fdbd41",
"standalone.json": "77b6de47ddf4933982e03e9cc76f2c12434792df59c2a148f3b8f8ef85d16694",
"tests/data.rs": "a6b7436f240ec1e73752892fb9b755eac4ff49a325ccd702f9582f40b5da58b0",
"tests/lifecycle.rs": "43aa2cdb6ed69042f2af3aac1bb9a430ff882ac746dd81d3f5a337bff4c242b6",
"tests/manifest.rs": "7357945934faa6e035a551cea2f3788a32b6dc7ca3b3298f5798b8fc0ca6a6c5",
"tests/minio_acceptance.rs": "65386a40b1533c50686157633f2fe5cf2d4acf8029f021c1884e4b38bbd1c07a",
"tests/native_tls_startup.rs": "5ca327d28526939ca5bc8764853211f0c4fdc826ea7b8233b0c5fb7a5f47113d",
"tests/provider_contract.rs": "d07092e904bf7cfec43f2c4cd9e9c5e5d590c6339514e05dce4fbff14eb0c07a",
"tests/support/mod.rs": "ecd5200aae889004847fe859bb04fc4127adc839dc6598288056f5dbd2f46c05",
"tools/manifest-validator/Cargo.lock": "ae2cb28761abf9ce99c9f5c4df246d47d61955a9919907fd222f511d13d84ba6",
"tools/manifest-validator/Cargo.toml": "81aa8724804a7f701f7b312c8851937369409d029071d2034dbd6f535b86df6a",
"tools/manifest-validator/src/main.rs": "bb5f5ab38c63e2c28aa64a329696e923aa747e62de2d058e2de734ada06e72b4",
"ui/index.tsx": "4bc789de2755c09cb80ab1d4411b8f065d8b80e2d92982bcaf9d771fa1d0d88e"
},
"runtimeArtifactsReplaced": false,
"scope": "Rust package/import and binary namespace, host UI import namespace, paired test environment variables and exact SDK pin",
"sdkGit": "https://github.com/spitzli/cloud-plugin-sdk",
"sdkRevision": "8019f3df67dba3fed3083f22635e4725028c1b5e",
"sourceChecks": {
"allRegistryLockfilesPreserved": [
"Cargo.lock",
"tools/manifest-validator/Cargo.lock"
],
"format": true,
"releaseContract": true,
"rustLiteralFilesChecked": 17,
"strictClippy": true,
"testsIgnored": 29,
"testsPassed": 18,
"ui": {
"component": "object-storage",
"hostConsoleSource": "a9fa78a6264a64a5e3e9405a49d94da189f7638b",
"typecheckPassed": true
}
},
"version": "0.5.0",
"wireStoredCryptographicAndExternalResourceBindings": "retained for coordinated migration"
}
4 changes: 2 additions & 2 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Webdock
Spitzli Cloud
Copyright (c) 2026 Spitzli Development and contributors.

Original Webdock code is licensed under AGPL-3.0-only unless separately noted.
Original Spitzli Cloud code is licensed under AGPL-3.0-only unless separately noted.
Alternative written licenses may be available from the relevant rights holder.
See LICENSE and COMMERCIAL-LICENSING.md.

Expand Down
2 changes: 1 addition & 1 deletion scripts/plugin-release/release.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ export function validateDockerfile(raw) {

export function validateSDKDependencies(dependencies) {
const sources = new Set();
for (const dependency of dependencies.filter(dep => dep.name.startsWith('webdock-'))) {
for (const dependency of dependencies.filter(dep => dep.name.startsWith('spitzli-') || dep.name.startsWith('webdock-'))) {
requireValue(typeof dependency.source === 'string' && /\?rev=[a-f0-9]{40}(?:#|$)/.test(dependency.source), 'Every SDK crate must use a reviewed Git revision');
sources.add(dependency.source.split('#')[0]);
}
Expand Down
4 changes: 2 additions & 2 deletions src/data.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ use crate::{engine::Engine, model::*, store::Result};
use serde::Deserialize;
use serde_json::Value;
use sha2::{Digest, Sha256};
use std::collections::BTreeMap;
use webdock_plugin_protocol::storage::{
use spitzli_plugin_protocol::storage::{
Attachment, MAX_PLAN_SECONDS, MAX_TRANSFER_BYTES, StorageAuthorization, StorageDirection,
StoragePlan,
};
use std::collections::BTreeMap;

pub const STORAGE_BINDING: &str = "managed-objects";

Expand Down
6 changes: 3 additions & 3 deletions src/engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ use crate::{
};
use serde_json::{Value, json};
use sha2::{Digest, Sha256};
use spitzli_plugin_kit::seal::Sealer;
use std::{sync::Arc, time::Duration};
use uuid::Uuid;
use webdock_plugin_kit::seal::Sealer;
type Result<T> = std::result::Result<T, &'static str>;
pub struct Engine {
pub(crate) store: Store,
Expand Down Expand Up @@ -57,9 +57,9 @@ impl Engine {
.map_err(|_| "Object metadata encoding failed");
}
if let Some(direction) = match action {
"objects.upload" => Some(webdock_plugin_protocol::storage::StorageDirection::Upload),
"objects.upload" => Some(spitzli_plugin_protocol::storage::StorageDirection::Upload),
"objects.download" => {
Some(webdock_plugin_protocol::storage::StorageDirection::Download)
Some(spitzli_plugin_protocol::storage::StorageDirection::Download)
}
_ => None,
} {
Expand Down
Loading
Loading