diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9e1f4904..fee6dd338 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,7 @@ -on: [ push ] +on: + pull_request: + push: + workflow_dispatch: jobs: build_ubuntu: diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 76c1b7165..fbffcadfc 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1,4 +1,5 @@ on: + pull_request: push: workflow_dispatch: diff --git a/README.docker.md b/README.docker.md index 0410f892e..5b046e320 100644 --- a/README.docker.md +++ b/README.docker.md @@ -64,6 +64,7 @@ You can control a few settings including the identity used and the authtoken use - `ZEROTIER_API_SECRET`: replaces the `authtoken.secret` before booting and allows you to manage the control socket's authentication key. - `ZEROTIER_IDENTITY_PUBLIC`: the `identity.public` file for zerotier-one. Use `zerotier-idtool` to generate one of these for you. - `ZEROTIER_IDENTITY_SECRET`: the `identity.secret` file for zerotier-one. Use `zerotier-idtool` to generate one of these for you. +- `ZEROTIER_LOCAL_CONF`: Sets the the `local.conf` file content for zerotier-one ### Tips diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index 14c37250b..a45c8bec4 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -1548,7 +1548,8 @@ void EmbeddedNetworkController::_request( authInfo.add(ZT_AUTHINFO_DICT_KEY_CENTRAL_ENDPOINT_URL, info.centralAuthURL.c_str()); authInfo.add(ZT_AUTHINFO_DICT_KEY_NONCE, info.ssoNonce.c_str()); authInfo.add(ZT_AUTHINFO_DICT_KEY_STATE, info.ssoState.c_str()); - authInfo.add(ZT_AUTHINFO_DICT_KEY_CLIENT_ID, info.ssoClientID.c_str()); + authInfo.add(ZT_AUTHINFO_DICT_KEY_CLIENT_ID, info.ssoClientID.c_str()); + authInfo.add(ZT_AUTHINFO_DICT_KEY_SSO_PROVIDER, info.ssoProvider.c_str()); _sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_AUTHENTICATION_REQUIRED, authInfo.data(), authInfo.sizeBytes()); } DB::cleanMember(member); diff --git a/entrypoint.sh.release b/entrypoint.sh.release index 284a3d419..da9b8f8c8 100644 --- a/entrypoint.sh.release +++ b/entrypoint.sh.release @@ -9,15 +9,16 @@ mkztfile() { file=$1 mode=$2 content=$3 - + echo "creating $file" mkdir -p /var/lib/zerotier-one - echo "$content" > "/var/lib/zerotier-one/$file" + echo -n "$content" > "/var/lib/zerotier-one/$file" chmod "$mode" "/var/lib/zerotier-one/$file" } if [ "x$ZEROTIER_API_SECRET" != "x" ] then mkztfile authtoken.secret 0600 "$ZEROTIER_API_SECRET" + mkztfile metricstoken.secret 0600 "$ZEROTIER_API_SECRET" fi if [ "x$ZEROTIER_IDENTITY_PUBLIC" != "x" ] @@ -30,6 +31,11 @@ then mkztfile identity.secret 0600 "$ZEROTIER_IDENTITY_SECRET" fi +if [ "x$ZEROTIER_LOCAL_CONF" != "x" ] +then + mkztfile local.conf 0644 "$ZEROTIER_LOCAL_CONF" +fi + mkztfile zerotier-one.port 0600 "9993" killzerotier() { diff --git a/rustybits/Cargo.lock b/rustybits/Cargo.lock index d7e99f497..1020ac27b 100644 --- a/rustybits/Cargo.lock +++ b/rustybits/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -287,9 +287,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.2" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "shlex", ] @@ -373,9 +373,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -1508,9 +1508,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.167" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libm" @@ -1804,9 +1804,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.70" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -1836,9 +1836,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.105" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -2378,15 +2378,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" dependencies = [ "cc", "cfg-if", "getrandom", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -3218,9 +3217,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.42.0" +version = "1.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "492a604e2fd7f814268a378409e6c92b5525d747d10db9a229723f55a417958c" dependencies = [ "backtrace", "bytes", @@ -3236,9 +3235,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", diff --git a/rustybits/smeeclient/Cargo.toml b/rustybits/smeeclient/Cargo.toml index 88452e8d1..6f32da35d 100644 --- a/rustybits/smeeclient/Cargo.toml +++ b/rustybits/smeeclient/Cargo.toml @@ -13,7 +13,7 @@ serde = { version = "1", features = ["derive"] } temporal-sdk = { git = "https://github.com/temporalio/sdk-core", branch = "master" } temporal-client = { git = "https://github.com/temporalio/sdk-core", branch = "master", features = ["telemetry"] } temporal-sdk-core-protos = { git = "https://github.com/temporalio/sdk-core", branch = "master" } -tokio = { version = "1.29", features = ["full"] } +tokio = { version = "1.43", features = ["full"] } url = { version = "2" } uuid = { version = "1.4", features = ["v4"] } diff --git a/rustybits/smeeclient/src/lib.rs b/rustybits/smeeclient/src/lib.rs index d48876e2a..426daad79 100644 --- a/rustybits/smeeclient/src/lib.rs +++ b/rustybits/smeeclient/src/lib.rs @@ -16,7 +16,10 @@ use serde::{Deserialize, Serialize}; use std::str::FromStr; use std::time::Duration; use temporal_client::{Client, ClientOptionsBuilder, RetryClient, WorkflowClientTrait, WorkflowOptions}; -use temporal_sdk_core_protos::{coresdk::AsJsonPayloadExt, temporal::api::enums::v1::WorkflowIdReusePolicy}; +use temporal_sdk_core_protos::{ + coresdk::AsJsonPayloadExt, + temporal::api::enums::v1::{WorkflowIdConflictPolicy, WorkflowIdReusePolicy}, +}; use url::Url; use uuid::Uuid; @@ -72,6 +75,7 @@ impl SmeeClient { println!("notifying network joined"); let options = WorkflowOptions { id_reuse_policy: WorkflowIdReusePolicy::RejectDuplicate, + id_conflict_policy: WorkflowIdConflictPolicy::Fail, execution_timeout: None, run_timeout: None, task_timeout: None,