From b0f6fddd6c6ae18e9ff172684b9165b8f5638bb7 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:04:02 +0200 Subject: [PATCH 01/23] chore(tilt): Remove CRD handling --- Tiltfile | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/Tiltfile b/Tiltfile index fb84bcc0..9f2eacc9 100644 --- a/Tiltfile +++ b/Tiltfile @@ -17,27 +17,16 @@ custom_build( outputs_image_ref_to='result/ref', ) -# Load the latest CRDs from Nix -watch_file('result') -if os.path.exists('result'): - k8s_yaml('result/crds.yaml') - # We need to set the correct image annotation on the operator Deployment to use e.g. # oci.stackable.tech/sandbox/opa-operator:7y19m3d8clwxlv34v5q2x4p7v536s00g instead of # oci.stackable.tech/sandbox/opa-operator:0.0.0-dev (which does not exist) k8s_kind('Deployment', image_json_path='{.spec.template.metadata.annotations.internal\\.stackable\\.tech/image}') -# Exclude stale CRDs from Helm chart, and apply the rest -helm_crds, helm_non_crds = filter_yaml( - helm( - 'deploy/helm/' + operator_name, - name=operator_name, - namespace="stackable-operators", - set=[ - 'image.repository=' + registry + '/' + operator_name, - ], - ), - api_version = "^apiextensions\\.k8s\\.io/.*$", - kind = "^CustomResourceDefinition$", -) -k8s_yaml(helm_non_crds) +k8s_yaml(helm( + 'deploy/helm/' + operator_name, + name=operator_name, + namespace="stackable-operators", + set=[ + 'image.repository=' + registry + '/' + operator_name, + ], +)) From b4cdb952c71bce83ed9ad1c41f6990dd10213c68 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:07:29 +0200 Subject: [PATCH 02/23] fix(tilt): Trigger rebuild and set built image --- Tiltfile | 4 ++-- deploy/helm/secret-operator/templates/daemonset.yaml | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Tiltfile b/Tiltfile index 9f2eacc9..db1061c8 100644 --- a/Tiltfile +++ b/Tiltfile @@ -20,13 +20,13 @@ custom_build( # We need to set the correct image annotation on the operator Deployment to use e.g. # oci.stackable.tech/sandbox/opa-operator:7y19m3d8clwxlv34v5q2x4p7v536s00g instead of # oci.stackable.tech/sandbox/opa-operator:0.0.0-dev (which does not exist) -k8s_kind('Deployment', image_json_path='{.spec.template.metadata.annotations.internal\\.stackable\\.tech/image}') +k8s_kind('DaemonSet', image_json_path='{.spec.template.metadata.annotations.internal\\.stackable\\.tech/image}') k8s_yaml(helm( 'deploy/helm/' + operator_name, name=operator_name, namespace="stackable-operators", set=[ - 'image.repository=' + registry + '/' + operator_name, + 'secretOperator.image.repository=' + registry + '/' + operator_name, ], )) diff --git a/deploy/helm/secret-operator/templates/daemonset.yaml b/deploy/helm/secret-operator/templates/daemonset.yaml index e01568db..d9581ad7 100644 --- a/deploy/helm/secret-operator/templates/daemonset.yaml +++ b/deploy/helm/secret-operator/templates/daemonset.yaml @@ -11,10 +11,11 @@ spec: {{- include "operator.selectorLabels" . | nindent 6 }} template: metadata: - {{- with .Values.podAnnotations }} annotations: - {{- toYaml . | nindent 8 }} - {{- end }} + internal.stackable.tech/image: "{{ .Values.secretOperator.image.repository }}:{{ .Values.secretOperator.image.tag | default .Chart.AppVersion }}" + {{- with .Values.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} labels: {{- include "operator.selectorLabels" . | nindent 8 }} spec: From b73a094913f4460eba9d563112b36a2a00836cee Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:07:51 +0200 Subject: [PATCH 03/23] feat(tilt): Support setting a custom Helm values file --- .gitignore | 1 + Tiltfile | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 2dbc7ab0..abc7ff9a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ result image.tar tilt_options.json +local_values.yaml .direnv/ .direnvrc diff --git a/Tiltfile b/Tiltfile index db1061c8..d25830ee 100644 --- a/Tiltfile +++ b/Tiltfile @@ -22,6 +22,11 @@ custom_build( # oci.stackable.tech/sandbox/opa-operator:0.0.0-dev (which does not exist) k8s_kind('DaemonSet', image_json_path='{.spec.template.metadata.annotations.internal\\.stackable\\.tech/image}') +# Optionally specify a custom Helm values file to be passed to the Helm deployment below. +# This file can for example be used to set custom telemetry options (like log level) which is not +# supported by helm(set). +helm_values = settings.get('helm_values', None) + k8s_yaml(helm( 'deploy/helm/' + operator_name, name=operator_name, @@ -29,4 +34,5 @@ k8s_yaml(helm( set=[ 'secretOperator.image.repository=' + registry + '/' + operator_name, ], + values=helm_values )) From c84e382f6cc686ee76289f97457629eec0de2f8a Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:19:10 +0200 Subject: [PATCH 04/23] chore: Remove CRD deployment by Helm All CRDs are now maintained (created and patched) by the operator. They are no longer deplyoed by Helm and as such are removed from the Helm Chart templates. A YAML file is still checked in (extra/crds.yaml) to ensure diffs are visible and tracked by Git. Co-authored-by: Sebastian Bernauer --- Makefile | 7 +- deploy/helm/secret-operator/crds/crds.yaml | 407 ---------- extra/crds.yaml | 889 +++++++++++++++++++++ 3 files changed, 893 insertions(+), 410 deletions(-) delete mode 100644 deploy/helm/secret-operator/crds/crds.yaml create mode 100644 extra/crds.yaml diff --git a/Makefile b/Makefile index 96e1030d..9afd741a 100644 --- a/Makefile +++ b/Makefile @@ -105,7 +105,6 @@ compile-chart: version crds config chart-clean: rm -rf "deploy/helm/${OPERATOR_NAME}/configs" - rm -rf "deploy/helm/${OPERATOR_NAME}/crds" version: cat "deploy/helm/${OPERATOR_NAME}/Chart.yaml" | yq ".version = \"${VERSION}\" | .appVersion = \"${VERSION}\"" > "deploy/helm/${OPERATOR_NAME}/Chart.yaml.new" @@ -117,9 +116,11 @@ config: cp -r deploy/config-spec/* "deploy/helm/${OPERATOR_NAME}/configs";\ fi +# We generate a crds.yaml, so that the effect of code changes are visible. +# The operator will take care of the CRD rollout itself. crds: - mkdir -p deploy/helm/"${OPERATOR_NAME}"/crds - cargo run --bin stackable-"${OPERATOR_NAME}" -- crd | yq eval '.metadata.annotations["helm.sh/resource-policy"]="keep"' - > "deploy/helm/${OPERATOR_NAME}/crds/crds.yaml" + mkdir -p extra + cargo run --bin stackable-"${OPERATOR_NAME}" -- crd > extra/crds.yaml chart-lint: compile-chart docker run -it -v $(shell pwd):/build/helm-charts -w /build/helm-charts quay.io/helmpack/chart-testing:v3.5.0 ct lint --config deploy/helm/ct.yaml diff --git a/deploy/helm/secret-operator/crds/crds.yaml b/deploy/helm/secret-operator/crds/crds.yaml deleted file mode 100644 index f04a9b8f..00000000 --- a/deploy/helm/secret-operator/crds/crds.yaml +++ /dev/null @@ -1,407 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: secretclasses.secrets.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: secrets.stackable.tech - names: - categories: [] - kind: SecretClass - plural: secretclasses - shortNames: [] - singular: secretclass - scope: Cluster - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: Auto-generated derived type for SecretClassSpec via `CustomResource` - properties: - spec: - description: A [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) is a cluster-global Kubernetes resource that defines a category of secrets that the Secret Operator knows how to provision. - properties: - backend: - description: Each SecretClass is associated with a single [backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend), which dictates the mechanism for issuing that kind of Secret. - oneOf: - - required: - - k8sSearch - - required: - - autoTls - - required: - - experimentalCertManager - - required: - - kerberosKeytab - properties: - autoTls: - description: |- - The [`autoTls` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-autotls) issues a TLS certificate signed by the Secret Operator. The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. - - A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. - properties: - additionalTrustRoots: - default: [] - description: Additional trust roots which are added to the provided `ca.crt` file. - items: - oneOf: - - required: - - configMap - - required: - - secret - properties: - configMap: - description: 'Reference (name and namespace) to a Kubernetes ConfigMap object where additional certificates are stored. The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER certificate.' - properties: - name: - description: Name of the ConfigMap being referred to. - type: string - namespace: - description: Namespace of the ConfigMap being referred to. - type: string - required: - - name - - namespace - type: object - secret: - description: 'Reference (name and namespace) to a Kubernetes Secret object where additional certificates are stored. The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER certificate.' - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - type: object - type: array - ca: - description: Configures the certificate authority used to issue Pod certificates. - properties: - autoGenerate: - default: false - description: Whether the certificate authority should be managed by Secret Operator, including being generated if it does not already exist. - type: boolean - caCertificateLifetime: - default: 365d - description: |- - The lifetime of each generated certificate authority. - - Should always be more than double `maxCertificateLifetime`. - - If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. If `autoGenerate: false` then the Secret Operator will log a warning instead. - type: string - keyGeneration: - default: - rsa: - length: 2048 - description: The algorithm used to generate a key pair and required configuration settings. Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - oneOf: - - required: - - rsa - properties: - rsa: - properties: - length: - description: The amount of bits used for generating the RSA keypair. Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. - enum: - - 2048 - - 3072 - - 4096 - type: integer - required: - - length - type: object - type: object - secret: - description: Reference (name and namespace) to a Kubernetes Secret object where the CA certificate and key is stored in the keys `ca.crt` and `ca.key` respectively. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - required: - - secret - type: object - maxCertificateLifetime: - default: 15d - description: Maximum lifetime the created certificates are allowed to have. In case consumers request a longer lifetime than allowed by this setting, the lifetime will be the minimum of both, so this setting takes precedence. The default value is 15 days. - type: string - required: - - ca - type: object - experimentalCertManager: - description: |- - The [`experimentalCertManager` backend][1] injects a TLS certificate issued by [cert-manager](https://cert-manager.io/). - - A new certificate will be requested the first time it is used by a Pod, it will be reused after that (subject to cert-manager renewal rules). - - [1]: https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-certmanager - properties: - defaultCertificateLifetime: - default: 1d - description: |- - The default lifetime of certificates. - - Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). - type: string - issuer: - description: A reference to the cert-manager issuer that the certificates should be requested from. - properties: - kind: - description: |- - The kind of the issuer, Issuer or ClusterIssuer. - - If Issuer then it must be in the same namespace as the Pods using it. - enum: - - Issuer - - ClusterIssuer - type: string - name: - description: The name of the issuer. - type: string - required: - - kind - - name - type: object - keyGeneration: - default: - rsa: - length: 2048 - description: The algorithm used to generate a key pair and required configuration settings. Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - oneOf: - - required: - - rsa - properties: - rsa: - properties: - length: - description: The amount of bits used for generating the RSA keypair. Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. - enum: - - 2048 - - 3072 - - 4096 - type: integer - required: - - length - type: object - type: object - required: - - issuer - type: object - k8sSearch: - description: The [`k8sSearch` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-k8ssearch) can be used to mount Secrets across namespaces into Pods. - properties: - searchNamespace: - description: Configures the namespace searched for Secret objects. - oneOf: - - required: - - pod - - required: - - name - properties: - name: - description: The Secret objects are located in a single global namespace. Should be used for secrets that are provisioned by the cluster administrator. - type: string - pod: - description: The Secret objects are located in the same namespace as the Pod object. Should be used for Secrets that are provisioned by the application administrator. - type: object - type: object - trustStoreConfigMapName: - description: |- - Name of a ConfigMap that contains the information required to validate against this SecretClass. - - Resolved relative to `search_namespace`. - - Required to request a TrustStore for this SecretClass. - nullable: true - type: string - required: - - searchNamespace - type: object - kerberosKeytab: - description: The [`kerberosKeytab` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-kerberoskeytab) creates a Kerberos keytab file for a selected realm. The Kerberos KDC and administrator credentials must be provided by the administrator. - properties: - admin: - description: Kerberos admin configuration settings. - oneOf: - - required: - - mit - - required: - - activeDirectory - properties: - activeDirectory: - description: Credentials should be provisioned in a Microsoft Active Directory domain. - properties: - experimentalGenerateSamAccountName: - description: Allows samAccountName generation for new accounts to be customized. Note that setting this field (even if empty) makes the Secret Operator take over the generation duty from the domain controller. - nullable: true - properties: - prefix: - default: '' - description: A prefix to be prepended to generated samAccountNames. - type: string - totalLength: - default: 20 - description: |- - The total length of generated samAccountNames, _including_ `prefix`. Must be larger than the length of `prefix`, but at most `20`. - - Note that this should be as large as possible, to minimize the risk of collisions. - format: uint8 - minimum: 0.0 - type: integer - type: object - ldapServer: - description: An AD LDAP server, such as the AD Domain Controller. This must match the server’s FQDN, or GSSAPI authentication will fail. - type: string - ldapTlsCaSecret: - description: Reference (name and namespace) to a Kubernetes Secret object containing the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - passwordCacheSecret: - description: Reference (name and namespace) to a Kubernetes Secret object where workload passwords will be stored. This must not be accessible to end users. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - schemaDistinguishedName: - description: The root Distinguished Name (DN) for AD-managed schemas, typically `CN=Schema,CN=Configuration,{domain_dn}`. - type: string - userDistinguishedName: - description: The root Distinguished Name (DN) where service accounts should be provisioned, typically `CN=Users,{domain_dn}`. - type: string - required: - - ldapServer - - ldapTlsCaSecret - - passwordCacheSecret - - schemaDistinguishedName - - userDistinguishedName - type: object - mit: - description: Credentials should be provisioned in a MIT Kerberos Admin Server. - properties: - kadminServer: - description: The hostname of the Kerberos Admin Server. This should be provided by the Kerberos administrator. - type: string - required: - - kadminServer - type: object - type: object - adminKeytabSecret: - description: Reference (`name` and `namespace`) to a K8s Secret object where a keytab with administrative privileges is stored in the key `keytab`. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - adminPrincipal: - description: The admin principal. - type: string - kdc: - description: The hostname of the Kerberos Key Distribution Center (KDC). This should be provided by the Kerberos administrator. - type: string - realmName: - description: The name of the Kerberos realm. This should be provided by the Kerberos administrator. - pattern: ^[-.a-zA-Z0-9]+$ - type: string - required: - - admin - - adminKeytabSecret - - adminPrincipal - - kdc - - realmName - type: object - type: object - required: - - backend - type: object - required: - - spec - title: SecretClass - type: object - served: true - storage: true - subresources: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: truststores.secrets.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: secrets.stackable.tech - names: - categories: [] - kind: TrustStore - plural: truststores - shortNames: [] - singular: truststore - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: Auto-generated derived type for TrustStoreSpec via `CustomResource` - properties: - spec: - description: |- - A [TrustStore](https://docs.stackable.tech/home/nightly/secret-operator/truststore) requests information about how to validate secrets issued by a [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass). - - The requested information is written to a ConfigMap with the same name as the TrustStore. - properties: - format: - description: The [format](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#format) that the data should be converted into. - enum: - - tls-pem - - tls-pkcs12 - - kerberos - nullable: true - type: string - secretClassName: - description: The name of the SecretClass that the request concerns. - type: string - required: - - secretClassName - type: object - required: - - spec - title: TrustStore - type: object - served: true - storage: true - subresources: {} diff --git a/extra/crds.yaml b/extra/crds.yaml new file mode 100644 index 00000000..e175dc24 --- /dev/null +++ b/extra/crds.yaml @@ -0,0 +1,889 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: secretclasses.secrets.stackable.tech +spec: + group: secrets.stackable.tech + names: + categories: [] + kind: SecretClass + plural: secretclasses + shortNames: [] + singular: secretclass + scope: Cluster + versions: + - additionalPrinterColumns: [] + name: v1alpha2 + schema: + openAPIV3Schema: + description: Auto-generated derived type for SecretClassSpec via `CustomResource` + properties: + spec: + description: |- + A [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) is a cluster-global Kubernetes resource + that defines a category of secrets that the Secret Operator knows how to provision. + properties: + backend: + description: |- + Each SecretClass is associated with a single + [backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend), + which dictates the mechanism for issuing that kind of Secret. + oneOf: + - required: + - k8sSearch + - required: + - autoTls + - required: + - experimentalCertManager + - required: + - kerberosKeytab + properties: + autoTls: + description: |- + The [`autoTls` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-autotls) + issues a TLS certificate signed by the Secret Operator. + The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. + + A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. + properties: + additionalTrustRoots: + default: [] + description: Additional trust roots which are added to the provided `ca.crt` file. + items: + oneOf: + - required: + - configMap + - required: + - secret + properties: + configMap: + description: |- + Reference (name and namespace) to a Kubernetes ConfigMap object where additional + certificates are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the ConfigMap being referred to. + type: string + namespace: + description: Namespace of the ConfigMap being referred to. + type: string + required: + - name + - namespace + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where additional certificates + are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + type: object + type: array + ca: + description: Configures the certificate authority used to issue Pod certificates. + properties: + autoGenerate: + default: false + description: |- + Whether the certificate authority should be managed by Secret Operator, including being generated + if it does not already exist. + type: boolean + caCertificateLifetime: + default: 365d + description: |- + The lifetime of each generated certificate authority. + + Should always be more than double `maxCertificateLifetime`. + + If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. + If `autoGenerate: false` then the Secret Operator will log a warning instead. + type: string + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where the CA certificate + and key is stored in the keys `ca.crt` and `ca.key` respectively. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + required: + - secret + type: object + maxCertificateLifetime: + default: 15d + description: |- + Maximum lifetime the created certificates are allowed to have. + In case consumers request a longer lifetime than allowed by this setting, + the lifetime will be the minimum of both, so this setting takes precedence. + The default value is 15 days. + type: string + required: + - ca + type: object + experimentalCertManager: + description: |- + The [`experimentalCertManager` backend][1] injects a TLS certificate issued + by [cert-manager](https://cert-manager.io/). + + A new certificate will be requested the first time it is used by a Pod, it + will be reused after that (subject to cert-manager renewal rules). + + [1]: https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-certmanager + properties: + defaultCertificateLifetime: + default: 1d + description: |- + The default lifetime of certificates. + + Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). + type: string + issuer: + description: A reference to the cert-manager issuer that the certificates should be requested from. + properties: + kind: + description: |- + The kind of the issuer, Issuer or ClusterIssuer. + + If Issuer then it must be in the same namespace as the Pods using it. + enum: + - Issuer + - ClusterIssuer + type: string + name: + description: The name of the issuer. + type: string + required: + - kind + - name + type: object + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + required: + - issuer + type: object + k8sSearch: + description: |- + The [`k8sSearch` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-k8ssearch) + can be used to mount Secrets across namespaces into Pods. + properties: + searchNamespace: + description: Configures the namespace searched for Secret objects. + oneOf: + - required: + - pod + - required: + - name + properties: + name: + description: |- + The Secret objects are located in a single global namespace. + Should be used for secrets that are provisioned by the cluster administrator. + type: string + pod: + description: |- + The Secret objects are located in the same namespace as the Pod object. + Should be used for Secrets that are provisioned by the application administrator. + type: object + type: object + trustStoreConfigMapName: + description: |- + Name of a ConfigMap that contains the information required to validate against this SecretClass. + + Resolved relative to `search_namespace`. + + Required to request a TrustStore for this SecretClass. + nullable: true + type: string + required: + - searchNamespace + type: object + kerberosKeytab: + description: |- + The [`kerberosKeytab` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-kerberoskeytab) + creates a Kerberos keytab file for a selected realm. + The Kerberos KDC and administrator credentials must be provided by the administrator. + properties: + admin: + description: Kerberos admin configuration settings. + oneOf: + - required: + - mit + - required: + - activeDirectory + properties: + activeDirectory: + description: Credentials should be provisioned in a Microsoft Active Directory domain. + properties: + generateSamAccountName: + description: |- + Allows samAccountName generation for new accounts to be customized. + Note that setting this field (even if empty) makes the Secret Operator take + over the generation duty from the domain controller. + nullable: true + properties: + prefix: + default: '' + description: A prefix to be prepended to generated samAccountNames. + type: string + totalLength: + default: 20 + description: |- + The total length of generated samAccountNames, _including_ `prefix`. + Must be larger than the length of `prefix`, but at most `20`. + + Note that this should be as large as possible, to minimize the risk of collisions. + format: uint8 + maximum: 255.0 + minimum: 0.0 + type: integer + type: object + ldapServer: + description: |- + An AD LDAP server, such as the AD Domain Controller. + This must match the server’s FQDN, or GSSAPI authentication will fail. + type: string + ldapTlsCaSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object containing + the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + passwordCacheSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where workload + passwords will be stored. This must not be accessible to end users. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + schemaDistinguishedName: + description: |- + The root Distinguished Name (DN) for AD-managed schemas, + typically `CN=Schema,CN=Configuration,{domain_dn}`. + type: string + userDistinguishedName: + description: |- + The root Distinguished Name (DN) where service accounts should be provisioned, + typically `CN=Users,{domain_dn}`. + type: string + required: + - ldapServer + - ldapTlsCaSecret + - passwordCacheSecret + - schemaDistinguishedName + - userDistinguishedName + type: object + mit: + description: Credentials should be provisioned in a MIT Kerberos Admin Server. + properties: + kadminServer: + description: |- + The hostname of the Kerberos Admin Server. + This should be provided by the Kerberos administrator. + type: string + required: + - kadminServer + type: object + type: object + adminKeytabSecret: + description: |- + Reference (`name` and `namespace`) to a K8s Secret object where a + keytab with administrative privileges is stored in the key `keytab`. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + adminPrincipal: + description: The admin principal. + type: string + kdc: + description: |- + The hostname of the Kerberos Key Distribution Center (KDC). + This should be provided by the Kerberos administrator. + type: string + realmName: + description: The name of the Kerberos realm. This should be provided by the Kerberos administrator. + type: string + required: + - admin + - adminKeytabSecret + - adminPrincipal + - kdc + - realmName + type: object + type: object + required: + - backend + type: object + required: + - spec + title: SecretClass + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for SecretClassSpec via `CustomResource` + properties: + spec: + description: |- + A [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) is a cluster-global Kubernetes resource + that defines a category of secrets that the Secret Operator knows how to provision. + properties: + backend: + description: |- + Each SecretClass is associated with a single + [backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend), + which dictates the mechanism for issuing that kind of Secret. + oneOf: + - required: + - k8sSearch + - required: + - autoTls + - required: + - experimentalCertManager + - required: + - kerberosKeytab + properties: + autoTls: + description: |- + The [`autoTls` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-autotls) + issues a TLS certificate signed by the Secret Operator. + The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. + + A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. + properties: + additionalTrustRoots: + default: [] + description: Additional trust roots which are added to the provided `ca.crt` file. + items: + oneOf: + - required: + - configMap + - required: + - secret + properties: + configMap: + description: |- + Reference (name and namespace) to a Kubernetes ConfigMap object where additional + certificates are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the ConfigMap being referred to. + type: string + namespace: + description: Namespace of the ConfigMap being referred to. + type: string + required: + - name + - namespace + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where additional certificates + are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + type: object + type: array + ca: + description: Configures the certificate authority used to issue Pod certificates. + properties: + autoGenerate: + default: false + description: |- + Whether the certificate authority should be managed by Secret Operator, including being generated + if it does not already exist. + type: boolean + caCertificateLifetime: + default: 365d + description: |- + The lifetime of each generated certificate authority. + + Should always be more than double `maxCertificateLifetime`. + + If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. + If `autoGenerate: false` then the Secret Operator will log a warning instead. + type: string + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where the CA certificate + and key is stored in the keys `ca.crt` and `ca.key` respectively. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + required: + - secret + type: object + maxCertificateLifetime: + default: 15d + description: |- + Maximum lifetime the created certificates are allowed to have. + In case consumers request a longer lifetime than allowed by this setting, + the lifetime will be the minimum of both, so this setting takes precedence. + The default value is 15 days. + type: string + required: + - ca + type: object + experimentalCertManager: + description: |- + The [`experimentalCertManager` backend][1] injects a TLS certificate issued + by [cert-manager](https://cert-manager.io/). + + A new certificate will be requested the first time it is used by a Pod, it + will be reused after that (subject to cert-manager renewal rules). + + [1]: https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-certmanager + properties: + defaultCertificateLifetime: + default: 1d + description: |- + The default lifetime of certificates. + + Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). + type: string + issuer: + description: A reference to the cert-manager issuer that the certificates should be requested from. + properties: + kind: + description: |- + The kind of the issuer, Issuer or ClusterIssuer. + + If Issuer then it must be in the same namespace as the Pods using it. + enum: + - Issuer + - ClusterIssuer + type: string + name: + description: The name of the issuer. + type: string + required: + - kind + - name + type: object + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + required: + - issuer + type: object + k8sSearch: + description: |- + The [`k8sSearch` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-k8ssearch) + can be used to mount Secrets across namespaces into Pods. + properties: + searchNamespace: + description: Configures the namespace searched for Secret objects. + oneOf: + - required: + - pod + - required: + - name + properties: + name: + description: |- + The Secret objects are located in a single global namespace. + Should be used for secrets that are provisioned by the cluster administrator. + type: string + pod: + description: |- + The Secret objects are located in the same namespace as the Pod object. + Should be used for Secrets that are provisioned by the application administrator. + type: object + type: object + trustStoreConfigMapName: + description: |- + Name of a ConfigMap that contains the information required to validate against this SecretClass. + + Resolved relative to `search_namespace`. + + Required to request a TrustStore for this SecretClass. + nullable: true + type: string + required: + - searchNamespace + type: object + kerberosKeytab: + description: |- + The [`kerberosKeytab` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-kerberoskeytab) + creates a Kerberos keytab file for a selected realm. + The Kerberos KDC and administrator credentials must be provided by the administrator. + properties: + admin: + description: Kerberos admin configuration settings. + oneOf: + - required: + - mit + - required: + - activeDirectory + properties: + activeDirectory: + description: Credentials should be provisioned in a Microsoft Active Directory domain. + properties: + experimentalGenerateSamAccountName: + description: |- + Allows samAccountName generation for new accounts to be customized. + Note that setting this field (even if empty) makes the Secret Operator take + over the generation duty from the domain controller. + nullable: true + properties: + prefix: + default: '' + description: A prefix to be prepended to generated samAccountNames. + type: string + totalLength: + default: 20 + description: |- + The total length of generated samAccountNames, _including_ `prefix`. + Must be larger than the length of `prefix`, but at most `20`. + + Note that this should be as large as possible, to minimize the risk of collisions. + format: uint8 + maximum: 255.0 + minimum: 0.0 + type: integer + type: object + ldapServer: + description: |- + An AD LDAP server, such as the AD Domain Controller. + This must match the server’s FQDN, or GSSAPI authentication will fail. + type: string + ldapTlsCaSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object containing + the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + passwordCacheSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where workload + passwords will be stored. This must not be accessible to end users. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + schemaDistinguishedName: + description: |- + The root Distinguished Name (DN) for AD-managed schemas, + typically `CN=Schema,CN=Configuration,{domain_dn}`. + type: string + userDistinguishedName: + description: |- + The root Distinguished Name (DN) where service accounts should be provisioned, + typically `CN=Users,{domain_dn}`. + type: string + required: + - ldapServer + - ldapTlsCaSecret + - passwordCacheSecret + - schemaDistinguishedName + - userDistinguishedName + type: object + mit: + description: Credentials should be provisioned in a MIT Kerberos Admin Server. + properties: + kadminServer: + description: |- + The hostname of the Kerberos Admin Server. + This should be provided by the Kerberos administrator. + type: string + required: + - kadminServer + type: object + type: object + adminKeytabSecret: + description: |- + Reference (`name` and `namespace`) to a K8s Secret object where a + keytab with administrative privileges is stored in the key `keytab`. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + adminPrincipal: + description: The admin principal. + type: string + kdc: + description: |- + The hostname of the Kerberos Key Distribution Center (KDC). + This should be provided by the Kerberos administrator. + type: string + realmName: + description: The name of the Kerberos realm. This should be provided by the Kerberos administrator. + type: string + required: + - admin + - adminKeytabSecret + - adminPrincipal + - kdc + - realmName + type: object + type: object + required: + - backend + type: object + required: + - spec + title: SecretClass + type: object + served: true + storage: false + subresources: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: truststores.secrets.stackable.tech +spec: + group: secrets.stackable.tech + names: + categories: [] + kind: TrustStore + plural: truststores + shortNames: [] + singular: truststore + scope: Namespaced + versions: + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for TrustStoreSpec via `CustomResource` + properties: + spec: + description: |- + A [TrustStore](https://docs.stackable.tech/home/nightly/secret-operator/truststore) requests information about how to + validate secrets issued by a [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass). + + The requested information is written to a ConfigMap with the same name as the TrustStore. + properties: + format: + description: The [format](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#format) that the data should be converted into. + enum: + - tls-pem + - tls-pkcs12 + - kerberos + - null + nullable: true + type: string + secretClassName: + description: The name of the SecretClass that the request concerns. + type: string + targetKind: + default: ConfigMap + description: |- + Which Kubernetes kind should be used to output the requested information to. + + The trust information (such as a `ca.crt`) can be considered public information, so we put + it in a `ConfigMap` by default. However, some tools might require it to be placed in a + `Secret`, so we also support that. + + Can be either `ConfigMap` or `Secret`, defaults to `ConfigMap`. + enum: + - Secret + - ConfigMap + type: string + required: + - secretClassName + type: object + required: + - spec + title: TrustStore + type: object + served: true + storage: true + subresources: {} From c3a63222ca3fd00d3e1575feca5c591c0f667175 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:26:37 +0200 Subject: [PATCH 05/23] refactor: Separate CRDs, add SecretClass change Co-authored-by: Sebastian Bernauer , - pub config: crd::CertManagerBackend, + pub config: v1alpha2::CertManagerBackend, } #[async_trait] @@ -160,7 +160,7 @@ impl SecretBackend for CertManager { kind: Some(self.config.issuer.kind.to_string()), }, private_key: match self.config.key_generation { - CertificateKeyGeneration::Rsa { length } => CertificatePrivateKey { + v1alpha2::CertificateKeyGeneration::Rsa { length } => CertificatePrivateKey { algorithm: "RSA".to_string(), size: length, }, diff --git a/rust/operator-binary/src/backend/dynamic.rs b/rust/operator-binary/src/backend/dynamic.rs index 73bc0a73..5cf3b0e2 100644 --- a/rust/operator-binary/src/backend/dynamic.rs +++ b/rust/operator-binary/src/backend/dynamic.rs @@ -15,10 +15,7 @@ use super::{ pod_info::{PodInfo, SchedulingPodInfo}, tls, }; -use crate::{ - crd::{self, SecretClass}, - utils::Unloggable, -}; +use crate::{crd::v1alpha2, utils::Unloggable}; pub struct DynError(Box); @@ -129,10 +126,10 @@ impl SecretBackendError for FromClassError { pub async fn from_class( client: &stackable_operator::client::Client, - class: SecretClass, + class: v1alpha2::SecretClass, ) -> Result, FromClassError> { Ok(match class.spec.backend { - crd::SecretClassBackend::K8sSearch(crd::K8sSearchBackend { + v1alpha2::SecretClassBackend::K8sSearch(v1alpha2::K8sSearchBackend { search_namespace, trust_store_config_map_name, }) => from(super::K8sSearch { @@ -140,7 +137,7 @@ pub async fn from_class( search_namespace, trust_store_config_map_name, }), - crd::SecretClassBackend::AutoTls(crd::AutoTlsBackend { + v1alpha2::SecretClassBackend::AutoTls(v1alpha2::AutoTlsBackend { ca, additional_trust_roots, max_certificate_lifetime, @@ -153,11 +150,11 @@ pub async fn from_class( ) .await?, ), - crd::SecretClassBackend::CertManager(config) => from(super::CertManager { + v1alpha2::SecretClassBackend::CertManager(config) => from(super::CertManager { client: Unloggable(client.clone()), config, }), - crd::SecretClassBackend::KerberosKeytab(crd::KerberosKeytabBackend { + v1alpha2::SecretClassBackend::KerberosKeytab(v1alpha2::KerberosKeytabBackend { realm_name, kdc, admin, @@ -185,14 +182,14 @@ pub enum FromSelectorError { #[snafu(display("failed to get {class}"))] GetSecretClass { source: stackable_operator::client::Error, - class: ObjectRef, + class: ObjectRef, }, #[snafu(display("failed to initialize backend for {class}"))] FromClass { #[snafu(source(from(FromClassError, Box::new)))] source: Box, - class: ObjectRef, + class: ObjectRef, }, } @@ -220,7 +217,7 @@ pub async fn from_selector( ) -> Result, FromSelectorError> { let class_ref = || ObjectRef::new(&selector.class); let class = client - .get::(&selector.class, &()) + .get::(&selector.class, &()) .await .with_context(|_| from_selector_error::GetSecretClassSnafu { class: class_ref() })?; from_class(client, class) diff --git a/rust/operator-binary/src/backend/k8s_search.rs b/rust/operator-binary/src/backend/k8s_search.rs index 5a7a50bf..1d77d1e1 100644 --- a/rust/operator-binary/src/backend/k8s_search.rs +++ b/rust/operator-binary/src/backend/k8s_search.rs @@ -20,7 +20,7 @@ use super::{ pod_info::{PodInfo, SchedulingPodInfo}, scope::SecretScope, }; -use crate::{crd::SearchNamespace, format::SecretData, utils::Unloggable}; +use crate::{crd::v1alpha2, format::SecretData, utils::Unloggable}; const LABEL_CLASS: &str = "secrets.stackable.tech/class"; pub(super) const LABEL_SCOPE_NODE: &str = "secrets.stackable.tech/node"; @@ -89,7 +89,7 @@ impl SecretBackendError for Error { pub struct K8sSearch { // Not secret per se, but isn't Debug: https://github.com/stackabletech/secret-operator/issues/411 pub client: Unloggable, - pub search_namespace: SearchNamespace, + pub search_namespace: v1alpha2::SearchNamespace, pub trust_store_config_map_name: Option, } diff --git a/rust/operator-binary/src/backend/kerberos_keytab.rs b/rust/operator-binary/src/backend/kerberos_keytab.rs index d57bf4d8..3b2f5917 100644 --- a/rust/operator-binary/src/backend/kerberos_keytab.rs +++ b/rust/operator-binary/src/backend/kerberos_keytab.rs @@ -22,10 +22,7 @@ use super::{ scope::SecretScope, }; use crate::{ - crd::{ - ActiveDirectorySamAccountNameRules, InvalidKerberosPrincipal, KerberosKeytabBackendAdmin, - KerberosPrincipal, - }, + crd::{self, KerberosPrincipal, v1alpha2}, format::{SecretData, WellKnownSecretData, well_known}, utils::Unloggable, }; @@ -62,7 +59,9 @@ pub enum Error { }, #[snafu(display("generated invalid Kerberos principal for pod"))] - PodPrincipal { source: InvalidKerberosPrincipal }, + PodPrincipal { + source: crd::InvalidKerberosPrincipal, + }, #[snafu(display("failed to read the provisioned keytab"))] ReadProvisionedKeytab { source: std::io::Error }, @@ -106,7 +105,7 @@ impl SecretBackendError for Error { pub struct KerberosProfile { pub realm_name: KerberosRealmName, pub kdc: HostName, - pub admin: KerberosKeytabBackendAdmin, + pub admin: v1alpha2::KerberosKeytabBackendAdmin, } #[derive(Debug)] @@ -169,10 +168,12 @@ impl SecretBackend for KerberosKeytab { } = self; let admin_server_clause = match admin { - KerberosKeytabBackendAdmin::Mit { kadmin_server } => { + v1alpha2::KerberosKeytabBackendAdmin::Mit(v1alpha2::KerberosKeytabBackendMit { + kadmin_server, + }) => { format!(" admin_server = {kadmin_server}") } - KerberosKeytabBackendAdmin::ActiveDirectory { .. } => String::new(), + v1alpha2::KerberosKeytabBackendAdmin::ActiveDirectory { .. } => String::new(), }; let tmp = tempdir().context(TempSetupSnafu)?; @@ -254,24 +255,26 @@ cluster.local = {realm_name} }) .collect(), admin_backend: match admin { - KerberosKeytabBackendAdmin::Mit { .. } => { + v1alpha2::KerberosKeytabBackendAdmin::Mit { .. } => { stackable_krb5_provision_keytab::AdminBackend::Mit } - KerberosKeytabBackendAdmin::ActiveDirectory { - ldap_server, - ldap_tls_ca_secret, - password_cache_secret, - user_distinguished_name, - schema_distinguished_name, - generate_sam_account_name, - } => stackable_krb5_provision_keytab::AdminBackend::ActiveDirectory { + v1alpha2::KerberosKeytabBackendAdmin::ActiveDirectory( + v1alpha2::KerberosKeytabBackendActiveDirectory { + ldap_server, + ldap_tls_ca_secret, + password_cache_secret, + user_distinguished_name, + schema_distinguished_name, + generate_sam_account_name, + }, + ) => stackable_krb5_provision_keytab::AdminBackend::ActiveDirectory { ldap_server: ldap_server.to_string(), ldap_tls_ca_secret: ldap_tls_ca_secret.clone(), password_cache_secret: password_cache_secret.clone(), user_distinguished_name: user_distinguished_name.clone(), schema_distinguished_name: schema_distinguished_name.clone(), generate_sam_account_name: generate_sam_account_name.clone().map( - |ActiveDirectorySamAccountNameRules { + |v1alpha2::ActiveDirectorySamAccountNameRules { prefix, total_length, }| { diff --git a/rust/operator-binary/src/backend/tls/ca.rs b/rust/operator-binary/src/backend/tls/ca.rs index e66b5612..4b4cf57b 100644 --- a/rust/operator-binary/src/backend/tls/ca.rs +++ b/rust/operator-binary/src/backend/tls/ca.rs @@ -38,7 +38,7 @@ use tracing::{info, info_span, warn}; use crate::{ backend::SecretBackendError, - crd::{AdditionalTrustRoot, CertificateKeyGeneration}, + crd::v1alpha2, utils::{Asn1TimeParseError, Unloggable, asn1time_to_offsetdatetime}, }; @@ -202,7 +202,7 @@ pub struct Config { pub rotate_if_ca_expires_before: Option, /// Configuration how TLS private keys should be created. - pub key_generation: CertificateKeyGeneration, + pub key_generation: v1alpha2::CertificateKeyGeneration, } /// A single certificate authority certificate. @@ -241,7 +241,7 @@ impl CertificateAuthority { Conf::new(ConfMethod::default()).expect("failed to initialize OpenSSL configuration"); let private_key_length = match config.key_generation { - CertificateKeyGeneration::Rsa { length } => length, + v1alpha2::CertificateKeyGeneration::Rsa { length } => length, }; let private_key = Rsa::generate(private_key_length) @@ -348,7 +348,7 @@ impl Manager { pub async fn load_or_create( client: &stackable_operator::client::Client, secret_ref: &SecretReference, - additional_trust_roots: &[AdditionalTrustRoot], + additional_trust_roots: &[v1alpha2::AdditionalTrustRoot], config: &Config, ) -> Result { // Use entry API rather than apply so that we crash and retry on conflicts (to avoid creating spurious certs that we throw away immediately) @@ -496,10 +496,10 @@ impl Manager { let mut additional_trusted_certificates = vec![]; for entry in additional_trust_roots { let certs = match entry { - AdditionalTrustRoot::ConfigMap(config_map) => { + v1alpha2::AdditionalTrustRoot::ConfigMap(config_map) => { Self::read_extra_trust_roots_from_config_map(client, config_map).await? } - AdditionalTrustRoot::Secret(secret) => { + v1alpha2::AdditionalTrustRoot::Secret(secret) => { Self::read_extra_trust_roots_from_secret(client, secret).await? } }; diff --git a/rust/operator-binary/src/backend/tls/mod.rs b/rust/operator-binary/src/backend/tls/mod.rs index a298dd1b..0cca87db 100644 --- a/rust/operator-binary/src/backend/tls/mod.rs +++ b/rust/operator-binary/src/backend/tls/mod.rs @@ -33,7 +33,7 @@ use super::{ scope::SecretScope, }; use crate::{ - crd::{self, AdditionalTrustRoot, CertificateKeyGeneration}, + crd::v1alpha2, format::{SecretData, WellKnownSecretData, well_known}, utils::iterator_try_concat_bytes, }; @@ -150,7 +150,7 @@ impl SecretBackendError for Error { pub struct TlsGenerate { ca_manager: ca::Manager, max_cert_lifetime: Duration, - key_generation: CertificateKeyGeneration, + key_generation: v1alpha2::CertificateKeyGeneration, } impl TlsGenerate { @@ -162,13 +162,13 @@ impl TlsGenerate { /// an independent self-signed CA. pub async fn get_or_create_k8s_certificate( client: &stackable_operator::client::Client, - crd::AutoTlsCa { + v1alpha2::AutoTlsCa { secret: ca_secret, auto_generate: auto_generate_ca, ca_certificate_lifetime, key_generation, - }: &crd::AutoTlsCa, - additional_trust_roots: &[AdditionalTrustRoot], + }: &v1alpha2::AutoTlsCa, + additional_trust_roots: &[v1alpha2::AdditionalTrustRoot], max_cert_lifetime: Duration, ) -> Result { Ok(Self { @@ -260,7 +260,7 @@ impl SecretBackend for TlsGenerate { Conf::new(ConfMethod::default()).expect("failed to initialize OpenSSL configuration"); let pod_key_length = match self.key_generation { - CertificateKeyGeneration::Rsa { length } => length, + v1alpha2::CertificateKeyGeneration::Rsa { length } => length, }; let pod_key = Rsa::generate(pod_key_length) diff --git a/rust/operator-binary/src/crd.rs b/rust/operator-binary/src/crd.rs deleted file mode 100644 index d5cb1db7..00000000 --- a/rust/operator-binary/src/crd.rs +++ /dev/null @@ -1,629 +0,0 @@ -use std::{fmt::Display, ops::Deref}; - -use serde::{Deserialize, Serialize}; -use snafu::Snafu; -use stackable_operator::{ - commons::networking::{HostName, KerberosRealmName}, - k8s_openapi::api::core::v1::{ConfigMap, Secret}, - kube::{CustomResource, api::PartialObjectMeta}, - schemars::{self, JsonSchema, schema::Schema}, - shared::time::Duration, -}; -use stackable_secret_operator_crd_utils::{ConfigMapReference, SecretReference}; - -use crate::{backend, format::SecretFormat}; - -/// A [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass) is a cluster-global Kubernetes resource -/// that defines a category of secrets that the Secret Operator knows how to provision. -#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[kube( - group = "secrets.stackable.tech", - version = "v1alpha1", - kind = "SecretClass", - crates( - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" - ) -)] -#[serde(rename_all = "camelCase")] -pub struct SecretClassSpec { - /// Each SecretClass is associated with a single - /// [backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend), - /// which dictates the mechanism for issuing that kind of Secret. - pub backend: SecretClassBackend, -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -#[allow(clippy::large_enum_variant)] -pub enum SecretClassBackend { - /// The [`k8sSearch` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-k8ssearch) - /// can be used to mount Secrets across namespaces into Pods. - K8sSearch(K8sSearchBackend), - - /// The [`autoTls` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-autotls) - /// issues a TLS certificate signed by the Secret Operator. - /// The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. - /// - /// A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. - AutoTls(AutoTlsBackend), - - /// The [`experimentalCertManager` backend][1] injects a TLS certificate issued - /// by [cert-manager](https://cert-manager.io/). - /// - /// A new certificate will be requested the first time it is used by a Pod, it - /// will be reused after that (subject to cert-manager renewal rules). - /// - /// [1]: DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-certmanager - #[serde(rename = "experimentalCertManager")] - CertManager(CertManagerBackend), - - /// The [`kerberosKeytab` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-kerberoskeytab) - /// creates a Kerberos keytab file for a selected realm. - /// The Kerberos KDC and administrator credentials must be provided by the administrator. - KerberosKeytab(KerberosKeytabBackend), -} - -impl SecretClassBackend { - // Currently no `refers_to_*` method actually returns more than one element, - // but returning `Iterator` instead of `Option` to ensure that all consumers are ready - // for adding more conditions. - - // The matcher methods are on the CRD type rather than the initialized `Backend` impls - // to avoid having to initialize the backend for each watch event. - - /// Returns the conditions where the backend refers to `config_map`. - pub fn refers_to_config_map( - &self, - config_map: &PartialObjectMeta, - ) -> impl Iterator { - let cm_namespace = config_map.metadata.namespace.as_deref(); - match self { - Self::K8sSearch(backend) => { - let name_matches = backend.trust_store_config_map_name == config_map.metadata.name; - cm_namespace - .filter(|_| name_matches) - .and_then(|cm_ns| backend.search_namespace.matches_namespace(cm_ns)) - } - Self::AutoTls(_) => None, - Self::CertManager(_) => None, - Self::KerberosKeytab(_) => None, - } - .into_iter() - } - - /// Returns the conditions where the backend refers to `secret`. - pub fn refers_to_secret( - &self, - secret: &PartialObjectMeta, - ) -> impl Iterator { - match self { - Self::AutoTls(backend) => { - (backend.ca.secret == *secret).then_some(SearchNamespaceMatchCondition::True) - } - Self::K8sSearch(_) => None, - Self::CertManager(_) => None, - Self::KerberosKeytab(_) => None, - } - .into_iter() - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct K8sSearchBackend { - /// Configures the namespace searched for Secret objects. - pub search_namespace: SearchNamespace, - - /// Name of a ConfigMap that contains the information required to validate against this SecretClass. - /// - /// Resolved relative to `search_namespace`. - /// - /// Required to request a TrustStore for this SecretClass. - pub trust_store_config_map_name: Option, -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub enum SearchNamespace { - /// The Secret objects are located in the same namespace as the Pod object. - /// Should be used for Secrets that are provisioned by the application administrator. - Pod {}, - - /// The Secret objects are located in a single global namespace. - /// Should be used for secrets that are provisioned by the cluster administrator. - Name(String), -} - -impl SearchNamespace { - pub fn resolve<'a>(&'a self, pod_namespace: &'a str) -> &'a str { - match self { - SearchNamespace::Pod {} => pod_namespace, - SearchNamespace::Name(ns) => ns, - } - } - - /// Returns [`Some`] if this `SearchNamespace` could possibly match an object in the namespace - /// `object_namespace`, otherwise [`None`]. - /// - /// This is optimistic, you then need to call [`SearchNamespaceMatchCondition::matches_pod_namespace`] - /// to evaluate the match for a specific pod's namespace. - pub fn matches_namespace( - &self, - object_namespace: &str, - ) -> Option { - match self { - SearchNamespace::Pod {} => Some(SearchNamespaceMatchCondition::IfPodIsInNamespace { - namespace: object_namespace.to_string(), - }), - SearchNamespace::Name(ns) => { - (ns == object_namespace).then_some(SearchNamespaceMatchCondition::True) - } - } - } -} - -/// A partially evaluated match returned by [`SearchNamespace::matches_namespace`]. -/// Use [`Self::matches_pod_namespace`] to evaluate fully. -#[derive(Debug)] -pub enum SearchNamespaceMatchCondition { - /// The target object matches the search namespace. - True, - - /// The target object only matches the search namespace if mounted into a pod in - /// `namespace`. - IfPodIsInNamespace { namespace: String }, -} - -impl SearchNamespaceMatchCondition { - pub fn matches_pod_namespace(&self, pod_ns: &str) -> bool { - match self { - Self::True => true, - Self::IfPodIsInNamespace { namespace } => namespace == pod_ns, - } - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct AutoTlsBackend { - /// Configures the certificate authority used to issue Pod certificates. - pub ca: AutoTlsCa, - - /// Additional trust roots which are added to the provided `ca.crt` file. - #[serde(default)] - pub additional_trust_roots: Vec, - - /// Maximum lifetime the created certificates are allowed to have. - /// In case consumers request a longer lifetime than allowed by this setting, - /// the lifetime will be the minimum of both, so this setting takes precedence. - /// The default value is 15 days. - #[serde(default = "AutoTlsBackend::default_max_certificate_lifetime")] - pub max_certificate_lifetime: Duration, -} - -impl AutoTlsBackend { - fn default_max_certificate_lifetime() -> Duration { - backend::tls::DEFAULT_MAX_CERT_LIFETIME - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct AutoTlsCa { - /// Reference (name and namespace) to a Kubernetes Secret object where the CA certificate - /// and key is stored in the keys `ca.crt` and `ca.key` respectively. - pub secret: SecretReference, - - /// Whether the certificate authority should be managed by Secret Operator, including being generated - /// if it does not already exist. - // TODO: Consider renaming to `manage` for v1alpha2 - #[serde(default)] - pub auto_generate: bool, - - /// The lifetime of each generated certificate authority. - /// - /// Should always be more than double `maxCertificateLifetime`. - /// - /// If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. - /// If `autoGenerate: false` then the Secret Operator will log a warning instead. - #[serde(default = "AutoTlsCa::default_ca_certificate_lifetime")] - pub ca_certificate_lifetime: Duration, - - /// The algorithm used to generate a key pair and required configuration settings. - /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - #[serde(default)] - pub key_generation: CertificateKeyGeneration, -} - -impl AutoTlsCa { - fn default_ca_certificate_lifetime() -> Duration { - backend::tls::DEFAULT_CA_CERT_LIFETIME - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub enum AdditionalTrustRoot { - /// Reference (name and namespace) to a Kubernetes ConfigMap object where additional - /// certificates are stored. - /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack - /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER - /// certificate. - ConfigMap(ConfigMapReference), - - /// Reference (name and namespace) to a Kubernetes Secret object where additional certificates - /// are stored. - /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack - /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER - /// certificate. - Secret(SecretReference), -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub enum CertificateKeyGeneration { - Rsa { - /// The amount of bits used for generating the RSA keypair. - /// Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. - #[schemars(schema_with = "CertificateKeyGeneration::tls_key_length_schema")] - length: u32, - }, -} - -impl CertificateKeyGeneration { - pub const RSA_KEY_LENGTH_2048: u32 = 2048; - pub const RSA_KEY_LENGTH_3072: u32 = 3072; - pub const RSA_KEY_LENGTH_4096: u32 = 4096; - - // Could not get a "standard" enum with assigned values/discriminants to work as integers in the schema - // The following was generated and requires the length to be provided as string (we want an integer) - // keyGeneration: - // default: - // rsa: - // length: '2048' - // oneOf: - // - required: - // - rsa - // properties: - // rsa: - // properties: - // length: - // enum: - // - '2048' - // - '3072' - // - '4096' - // type: string - pub fn tls_key_length_schema(_: &mut schemars::gen::SchemaGenerator) -> Schema { - serde_json::from_value(serde_json::json!({ - "type": "integer", - "enum": [ - Self::RSA_KEY_LENGTH_2048, - Self::RSA_KEY_LENGTH_3072, - Self::RSA_KEY_LENGTH_4096 - ] - })) - .expect("Failed to parse JSON of custom tls key length schema") - } -} - -impl Default for CertificateKeyGeneration { - fn default() -> Self { - Self::Rsa { - length: Self::RSA_KEY_LENGTH_2048, - } - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct CertManagerBackend { - /// A reference to the cert-manager issuer that the certificates should be requested from. - pub issuer: CertManagerIssuer, - - /// The default lifetime of certificates. - /// - /// Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). - #[serde(default = "CertManagerBackend::default_certificate_lifetime")] - pub default_certificate_lifetime: Duration, - - /// The algorithm used to generate a key pair and required configuration settings. - /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - #[serde(default)] - pub key_generation: CertificateKeyGeneration, -} - -impl CertManagerBackend { - fn default_certificate_lifetime() -> Duration { - backend::cert_manager::DEFAULT_CERT_LIFETIME - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct CertManagerIssuer { - /// The kind of the issuer, Issuer or ClusterIssuer. - /// - /// If Issuer then it must be in the same namespace as the Pods using it. - pub kind: CertManagerIssuerKind, - - /// The name of the issuer. - pub name: String, -} - -#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, JsonSchema, strum::Display)] -pub enum CertManagerIssuerKind { - /// An [Issuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.Issuer) in the same namespace as the Pod. - Issuer, - - /// A cluster-scoped [ClusterIssuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.ClusterIssuer). - ClusterIssuer, -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct KerberosKeytabBackend { - /// The name of the Kerberos realm. This should be provided by the Kerberos administrator. - pub realm_name: KerberosRealmName, - - /// The hostname of the Kerberos Key Distribution Center (KDC). - /// This should be provided by the Kerberos administrator. - pub kdc: HostName, - - /// Kerberos admin configuration settings. - pub admin: KerberosKeytabBackendAdmin, - - /// Reference (`name` and `namespace`) to a K8s Secret object where a - /// keytab with administrative privileges is stored in the key `keytab`. - pub admin_keytab_secret: SecretReference, - - /// The admin principal. - pub admin_principal: KerberosPrincipal, -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub enum KerberosKeytabBackendAdmin { - /// Credentials should be provisioned in a MIT Kerberos Admin Server. - #[serde(rename_all = "camelCase")] - Mit { - /// The hostname of the Kerberos Admin Server. - /// This should be provided by the Kerberos administrator. - kadmin_server: HostName, - }, - - /// Credentials should be provisioned in a Microsoft Active Directory domain. - #[serde(rename_all = "camelCase")] - ActiveDirectory { - /// An AD LDAP server, such as the AD Domain Controller. - /// This must match the server’s FQDN, or GSSAPI authentication will fail. - ldap_server: HostName, - - /// Reference (name and namespace) to a Kubernetes Secret object containing - /// the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. - ldap_tls_ca_secret: SecretReference, - - /// Reference (name and namespace) to a Kubernetes Secret object where workload - /// passwords will be stored. This must not be accessible to end users. - password_cache_secret: SecretReference, - - /// The root Distinguished Name (DN) where service accounts should be provisioned, - /// typically `CN=Users,{domain_dn}`. - user_distinguished_name: String, - - /// The root Distinguished Name (DN) for AD-managed schemas, - /// typically `CN=Schema,CN=Configuration,{domain_dn}`. - schema_distinguished_name: String, - - /// Allows samAccountName generation for new accounts to be customized. - /// Note that setting this field (even if empty) makes the Secret Operator take - /// over the generation duty from the domain controller. - #[serde(rename = "experimentalGenerateSamAccountName")] - generate_sam_account_name: Option, - }, -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct ActiveDirectorySamAccountNameRules { - /// A prefix to be prepended to generated samAccountNames. - #[serde(default)] - pub prefix: String, - /// The total length of generated samAccountNames, _including_ `prefix`. - /// Must be larger than the length of `prefix`, but at most `20`. - /// - /// Note that this should be as large as possible, to minimize the risk of collisions. - #[serde(default = "ActiveDirectorySamAccountNameRules::default_total_length")] - pub total_length: u8, -} - -impl ActiveDirectorySamAccountNameRules { - fn default_total_length() -> u8 { - // Default AD samAccountName length limit - 20 - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(try_from = "String", into = "String")] -pub struct KerberosPrincipal(String); -#[derive(Debug, Snafu)] -#[snafu(module)] -pub enum InvalidKerberosPrincipal { - #[snafu(display( - "principal contains illegal characters (allowed: alphanumeric, /, @, -, _, and .)" - ))] - IllegalCharacter, - - #[snafu(display("principal may not start with a dash"))] - StartWithDash, -} -impl TryFrom for KerberosPrincipal { - type Error = InvalidKerberosPrincipal; - - fn try_from(value: String) -> Result { - if value.starts_with('-') { - invalid_kerberos_principal::StartWithDashSnafu.fail() - } else if value.contains(|chr: char| { - !chr.is_alphanumeric() - && chr != '/' - && chr != '@' - && chr != '.' - && chr != '-' - && chr != '_' - }) { - invalid_kerberos_principal::IllegalCharacterSnafu.fail() - } else { - Ok(KerberosPrincipal(value)) - } - } -} -impl From for String { - fn from(value: KerberosPrincipal) -> Self { - value.0 - } -} -impl Display for KerberosPrincipal { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str(&self.0) - } -} -impl Deref for KerberosPrincipal { - type Target = str; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -/// A [TrustStore](DOCS_BASE_URL_PLACEHOLDER/secret-operator/truststore) requests information about how to -/// validate secrets issued by a [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass). -/// -/// The requested information is written to a ConfigMap with the same name as the TrustStore. -#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[kube( - group = "secrets.stackable.tech", - version = "v1alpha1", - kind = "TrustStore", - namespaced, - crates( - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" - ) -)] -#[serde(rename_all = "camelCase")] -pub struct TrustStoreSpec { - /// The name of the SecretClass that the request concerns. - pub secret_class_name: String, - - /// The [format](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#format) that the data should be converted into. - pub format: Option, -} - -#[cfg(test)] -mod test { - use super::*; - use crate::{ - backend::tls::{DEFAULT_CA_CERT_LIFETIME, DEFAULT_MAX_CERT_LIFETIME}, - crd::{AutoTlsBackend, SecretClass, SecretClassSpec}, - }; - - #[test] - fn test_deserialization() { - let input: &str = r#" - apiVersion: secrets.stackable.tech/v1alpha1 - kind: SecretClass - metadata: - name: tls - spec: - backend: - autoTls: - ca: - secret: - name: secret-provisioner-tls-ca - namespace: default - keyGeneration: - rsa: - length: 3072 - "#; - let deserializer = serde_yaml::Deserializer::from_str(input); - let secret_class: SecretClass = - serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); - assert_eq!( - secret_class.spec, - SecretClassSpec { - backend: crate::crd::SecretClassBackend::AutoTls(AutoTlsBackend { - ca: crate::crd::AutoTlsCa { - secret: SecretReference { - name: "secret-provisioner-tls-ca".to_string(), - namespace: "default".to_string(), - }, - auto_generate: false, - ca_certificate_lifetime: DEFAULT_CA_CERT_LIFETIME, - key_generation: CertificateKeyGeneration::Rsa { - length: CertificateKeyGeneration::RSA_KEY_LENGTH_3072 - } - }, - additional_trust_roots: vec![], - max_certificate_lifetime: DEFAULT_MAX_CERT_LIFETIME, - }) - } - ); - - let input: &str = r#" - apiVersion: secrets.stackable.tech/v1alpha1 - kind: SecretClass - metadata: - name: tls - spec: - backend: - autoTls: - ca: - secret: - name: secret-provisioner-tls-ca - namespace: default - autoGenerate: true - caCertificateLifetime: 100d - additionalTrustRoots: - - configMap: - name: tls-root-ca-config-map - namespace: default - - secret: - name: tls-root-ca-secret - namespace: default - maxCertificateLifetime: 31d - "#; - let deserializer = serde_yaml::Deserializer::from_str(input); - let secret_class: SecretClass = - serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); - assert_eq!( - secret_class.spec, - SecretClassSpec { - backend: crate::crd::SecretClassBackend::AutoTls(AutoTlsBackend { - ca: crate::crd::AutoTlsCa { - secret: SecretReference { - name: "secret-provisioner-tls-ca".to_string(), - namespace: "default".to_string(), - }, - auto_generate: true, - ca_certificate_lifetime: Duration::from_days_unchecked(100), - key_generation: CertificateKeyGeneration::default() - }, - additional_trust_roots: vec![ - AdditionalTrustRoot::ConfigMap(ConfigMapReference { - name: "tls-root-ca-config-map".to_string(), - namespace: "default".to_string(), - }), - AdditionalTrustRoot::Secret(SecretReference { - name: "tls-root-ca-secret".to_string(), - namespace: "default".to_string(), - }) - ], - max_certificate_lifetime: Duration::from_days_unchecked(31), - }) - } - ); - } -} diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs new file mode 100644 index 00000000..27aa29ec --- /dev/null +++ b/rust/operator-binary/src/crd/mod.rs @@ -0,0 +1,78 @@ +use std::{fmt::Display, ops::Deref}; + +use serde::{Deserialize, Serialize}; +use snafu::Snafu; +use stackable_operator::schemars::{self, JsonSchema}; + +mod secret_class; +mod trust_store; + +pub mod v1alpha1 { + // NOTE (@Techassi): SecretClass v1alpha1 is unused and as such not exported. + pub use crate::crd::trust_store::v1alpha1::*; +} + +pub use secret_class::{SecretClass, SecretClassVersion}; + +pub mod v1alpha2 { + pub use crate::crd::secret_class::v1alpha2::*; +} + +pub use trust_store::{TrustStore, TrustStoreVersion}; + +#[derive(Debug, Snafu)] +#[snafu(module)] +pub enum InvalidKerberosPrincipal { + #[snafu(display( + "principal contains illegal characters (allowed: alphanumeric, /, @, -, _, and .)" + ))] + IllegalCharacter, + + #[snafu(display("principal may not start with a dash"))] + StartWithDash, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[serde(try_from = "String", into = "String")] +pub struct KerberosPrincipal(String); + +impl TryFrom for KerberosPrincipal { + type Error = InvalidKerberosPrincipal; + + fn try_from(value: String) -> Result { + if value.starts_with('-') { + invalid_kerberos_principal::StartWithDashSnafu.fail() + } else if value.contains(|chr: char| { + !chr.is_alphanumeric() + && chr != '/' + && chr != '@' + && chr != '.' + && chr != '-' + && chr != '_' + }) { + invalid_kerberos_principal::IllegalCharacterSnafu.fail() + } else { + Ok(KerberosPrincipal(value)) + } + } +} + +impl From for String { + fn from(value: KerberosPrincipal) -> Self { + value.0 + } +} + +impl Display for KerberosPrincipal { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str(&self.0) + } +} + +impl Deref for KerberosPrincipal { + type Target = str; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} diff --git a/rust/operator-binary/src/crd/secret_class/mod.rs b/rust/operator-binary/src/crd/secret_class/mod.rs new file mode 100644 index 00000000..a17ba3b4 --- /dev/null +++ b/rust/operator-binary/src/crd/secret_class/mod.rs @@ -0,0 +1,424 @@ +use serde::{Deserialize, Serialize}; +use stackable_operator::{ + commons::networking::{HostName, KerberosRealmName}, + kube::CustomResource, + schemars::{self, JsonSchema}, + shared::time::Duration, + versioned::versioned, +}; +use stackable_secret_operator_crd_utils::{ConfigMapReference, SecretReference}; + +use crate::crd::KerberosPrincipal; + +mod v1alpha1_impl; +mod v1alpha2_impl; + +#[versioned( + version(name = "v1alpha1"), + version(name = "v1alpha2"), + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ), + options(k8s(enable_tracing)) +)] +pub mod versioned { + /// A [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass) is a cluster-global Kubernetes resource + /// that defines a category of secrets that the Secret Operator knows how to provision. + #[versioned(crd(group = "secrets.stackable.tech"))] + #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct SecretClassSpec { + /// Each SecretClass is associated with a single + /// [backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend), + /// which dictates the mechanism for issuing that kind of Secret. + pub backend: SecretClassBackend, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + #[allow(clippy::large_enum_variant)] + pub enum SecretClassBackend { + /// The [`k8sSearch` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-k8ssearch) + /// can be used to mount Secrets across namespaces into Pods. + K8sSearch(K8sSearchBackend), + + /// The [`autoTls` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-autotls) + /// issues a TLS certificate signed by the Secret Operator. + /// The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. + /// + /// A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. + AutoTls(AutoTlsBackend), + + /// The [`experimentalCertManager` backend][1] injects a TLS certificate issued + /// by [cert-manager](https://cert-manager.io/). + /// + /// A new certificate will be requested the first time it is used by a Pod, it + /// will be reused after that (subject to cert-manager renewal rules). + /// + /// [1]: DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-certmanager + #[serde(rename = "experimentalCertManager")] + CertManager(CertManagerBackend), + + /// The [`kerberosKeytab` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-kerberoskeytab) + /// creates a Kerberos keytab file for a selected realm. + /// The Kerberos KDC and administrator credentials must be provided by the administrator. + KerberosKeytab(KerberosKeytabBackend), + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct K8sSearchBackend { + /// Configures the namespace searched for Secret objects. + pub search_namespace: SearchNamespace, + + /// Name of a ConfigMap that contains the information required to validate against this SecretClass. + /// + /// Resolved relative to `search_namespace`. + /// + /// Required to request a TrustStore for this SecretClass. + pub trust_store_config_map_name: Option, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum SearchNamespace { + /// The Secret objects are located in the same namespace as the Pod object. + /// Should be used for Secrets that are provisioned by the application administrator. + Pod {}, + + /// The Secret objects are located in a single global namespace. + /// Should be used for secrets that are provisioned by the cluster administrator. + Name(String), + } + + /// A partially evaluated match returned by [`SearchNamespace::matches_namespace`]. + /// Use [`Self::matches_pod_namespace`] to evaluate fully. + #[derive(Debug)] + pub enum SearchNamespaceMatchCondition { + /// The target object matches the search namespace. + True, + + /// The target object only matches the search namespace if mounted into a pod in + /// `namespace`. + IfPodIsInNamespace { namespace: String }, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct AutoTlsBackend { + /// Configures the certificate authority used to issue Pod certificates. + pub ca: AutoTlsCa, + + /// Additional trust roots which are added to the provided `ca.crt` file. + #[versioned(hint(vec))] + #[serde(default)] + pub additional_trust_roots: Vec, + + /// Maximum lifetime the created certificates are allowed to have. + /// In case consumers request a longer lifetime than allowed by this setting, + /// the lifetime will be the minimum of both, so this setting takes precedence. + /// The default value is 15 days. + #[serde(default = "v1alpha2::AutoTlsBackend::default_max_certificate_lifetime")] + pub max_certificate_lifetime: Duration, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct AutoTlsCa { + /// Reference (name and namespace) to a Kubernetes Secret object where the CA certificate + /// and key is stored in the keys `ca.crt` and `ca.key` respectively. + pub secret: SecretReference, + + /// Whether the certificate authority should be managed by Secret Operator, including being generated + /// if it does not already exist. + // TODO: Consider renaming to `manage` for v1alpha2 + #[serde(default)] + pub auto_generate: bool, + + /// The lifetime of each generated certificate authority. + /// + /// Should always be more than double `maxCertificateLifetime`. + /// + /// If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. + /// If `autoGenerate: false` then the Secret Operator will log a warning instead. + #[serde(default = "v1alpha2::AutoTlsCa::default_ca_certificate_lifetime")] + pub ca_certificate_lifetime: Duration, + + /// The algorithm used to generate a key pair and required configuration settings. + /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + #[serde(default)] + pub key_generation: CertificateKeyGeneration, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum AdditionalTrustRoot { + /// Reference (name and namespace) to a Kubernetes ConfigMap object where additional + /// certificates are stored. + /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + /// certificate. + ConfigMap(ConfigMapReference), + + /// Reference (name and namespace) to a Kubernetes Secret object where additional certificates + /// are stored. + /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + /// certificate. + Secret(SecretReference), + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum CertificateKeyGeneration { + Rsa { + /// The amount of bits used for generating the RSA keypair. + /// Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + #[schemars(schema_with = "v1alpha2::CertificateKeyGeneration::tls_key_length_schema")] + length: u32, + }, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct CertManagerBackend { + /// A reference to the cert-manager issuer that the certificates should be requested from. + pub issuer: CertManagerIssuer, + + /// The default lifetime of certificates. + /// + /// Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). + #[serde(default = "v1alpha2::CertManagerBackend::default_certificate_lifetime")] + pub default_certificate_lifetime: Duration, + + /// The algorithm used to generate a key pair and required configuration settings. + /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + #[serde(default)] + pub key_generation: CertificateKeyGeneration, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct CertManagerIssuer { + /// The kind of the issuer, Issuer or ClusterIssuer. + /// + /// If Issuer then it must be in the same namespace as the Pods using it. + pub kind: CertManagerIssuerKind, + + /// The name of the issuer. + pub name: String, + } + + #[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, JsonSchema, strum::Display)] + pub enum CertManagerIssuerKind { + /// An [Issuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.Issuer) in the same namespace as the Pod. + Issuer, + + /// A cluster-scoped [ClusterIssuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.ClusterIssuer). + ClusterIssuer, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct KerberosKeytabBackend { + /// The name of the Kerberos realm. This should be provided by the Kerberos administrator. + pub realm_name: KerberosRealmName, + + /// The hostname of the Kerberos Key Distribution Center (KDC). + /// This should be provided by the Kerberos administrator. + pub kdc: HostName, + + /// Kerberos admin configuration settings. + pub admin: KerberosKeytabBackendAdmin, + + /// Reference (`name` and `namespace`) to a K8s Secret object where a + /// keytab with administrative privileges is stored in the key `keytab`. + pub admin_keytab_secret: SecretReference, + + /// The admin principal. + pub admin_principal: KerberosPrincipal, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum KerberosKeytabBackendAdmin { + /// Credentials should be provisioned in a MIT Kerberos Admin Server. + Mit(KerberosKeytabBackendMit), + + /// Credentials should be provisioned in a Microsoft Active Directory domain. + ActiveDirectory(KerberosKeytabBackendActiveDirectory), + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct KerberosKeytabBackendMit { + /// The hostname of the Kerberos Admin Server. + /// This should be provided by the Kerberos administrator. + kadmin_server: HostName, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct KerberosKeytabBackendActiveDirectory { + /// An AD LDAP server, such as the AD Domain Controller. + /// This must match the server’s FQDN, or GSSAPI authentication will fail. + ldap_server: HostName, + + /// Reference (name and namespace) to a Kubernetes Secret object containing + /// the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. + ldap_tls_ca_secret: SecretReference, + + /// Reference (name and namespace) to a Kubernetes Secret object where workload + /// passwords will be stored. This must not be accessible to end users. + password_cache_secret: SecretReference, + + /// The root Distinguished Name (DN) where service accounts should be provisioned, + /// typically `CN=Users,{domain_dn}`. + user_distinguished_name: String, + + /// The root Distinguished Name (DN) for AD-managed schemas, + /// typically `CN=Schema,CN=Configuration,{domain_dn}`. + schema_distinguished_name: String, + + /// Allows samAccountName generation for new accounts to be customized. + /// Note that setting this field (even if empty) makes the Secret Operator take + /// over the generation duty from the domain controller. + #[versioned( + changed( + since = "v1alpha2", + from_name = "experimental_generate_sam_account_name" + ), + hint(option) + )] + generate_sam_account_name: Option, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct ActiveDirectorySamAccountNameRules { + /// A prefix to be prepended to generated samAccountNames. + #[serde(default)] + pub prefix: String, + /// The total length of generated samAccountNames, _including_ `prefix`. + /// Must be larger than the length of `prefix`, but at most `20`. + /// + /// Note that this should be as large as possible, to minimize the risk of collisions. + #[serde(default = "v1alpha2::ActiveDirectorySamAccountNameRules::default_total_length")] + pub total_length: u8, + } +} + +#[cfg(test)] +mod test { + use stackable_operator::shared::time::Duration; + use stackable_secret_operator_crd_utils::{ConfigMapReference, SecretReference}; + + use crate::{ + backend::tls::{DEFAULT_CA_CERT_LIFETIME, DEFAULT_MAX_CERT_LIFETIME}, + crd::v1alpha2::{ + AdditionalTrustRoot, AutoTlsBackend, AutoTlsCa, CertificateKeyGeneration, SecretClass, + SecretClassBackend, SecretClassSpec, + }, + }; + + #[test] + fn test_deserialization() { + let input: &str = r#" + apiVersion: secrets.stackable.tech/v1alpha1 + kind: SecretClass + metadata: + name: tls + spec: + backend: + autoTls: + ca: + secret: + name: secret-provisioner-tls-ca + namespace: default + keyGeneration: + rsa: + length: 3072 + "#; + let deserializer = serde_yaml::Deserializer::from_str(input); + let secret_class: SecretClass = + serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); + assert_eq!( + secret_class.spec, + SecretClassSpec { + backend: SecretClassBackend::AutoTls(AutoTlsBackend { + ca: AutoTlsCa { + secret: SecretReference { + name: "secret-provisioner-tls-ca".to_string(), + namespace: "default".to_string(), + }, + auto_generate: false, + ca_certificate_lifetime: DEFAULT_CA_CERT_LIFETIME, + key_generation: CertificateKeyGeneration::Rsa { + length: CertificateKeyGeneration::RSA_KEY_LENGTH_3072 + } + }, + additional_trust_roots: vec![], + max_certificate_lifetime: DEFAULT_MAX_CERT_LIFETIME, + }) + } + ); + + let input: &str = r#" + apiVersion: secrets.stackable.tech/v1alpha1 + kind: SecretClass + metadata: + name: tls + spec: + backend: + autoTls: + ca: + secret: + name: secret-provisioner-tls-ca + namespace: default + autoGenerate: true + caCertificateLifetime: 100d + additionalTrustRoots: + - configMap: + name: tls-root-ca-config-map + namespace: default + - secret: + name: tls-root-ca-secret + namespace: default + maxCertificateLifetime: 31d + "#; + let deserializer = serde_yaml::Deserializer::from_str(input); + let secret_class: SecretClass = + serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); + assert_eq!( + secret_class.spec, + SecretClassSpec { + backend: SecretClassBackend::AutoTls(AutoTlsBackend { + ca: AutoTlsCa { + secret: SecretReference { + name: "secret-provisioner-tls-ca".to_string(), + namespace: "default".to_string(), + }, + auto_generate: true, + ca_certificate_lifetime: Duration::from_days_unchecked(100), + key_generation: CertificateKeyGeneration::default() + }, + additional_trust_roots: vec![ + AdditionalTrustRoot::ConfigMap(ConfigMapReference { + name: "tls-root-ca-config-map".to_string(), + namespace: "default".to_string(), + }), + AdditionalTrustRoot::Secret(SecretReference { + name: "tls-root-ca-secret".to_string(), + namespace: "default".to_string(), + }) + ], + max_certificate_lifetime: Duration::from_days_unchecked(31), + }) + } + ); + } +} diff --git a/rust/operator-binary/src/crd/secret_class/v1alpha1_impl.rs b/rust/operator-binary/src/crd/secret_class/v1alpha1_impl.rs new file mode 100644 index 00000000..8d22454d --- /dev/null +++ b/rust/operator-binary/src/crd/secret_class/v1alpha1_impl.rs @@ -0,0 +1,135 @@ +use stackable_operator::{ + k8s_openapi::api::core::v1::{ConfigMap, Secret}, + kube::api::PartialObjectMeta, + schemars::{Schema, SchemaGenerator}, +}; + +use crate::crd::secret_class::v1alpha1::{ + CertificateKeyGeneration, SearchNamespace, SearchNamespaceMatchCondition, SecretClassBackend, +}; + +impl SecretClassBackend { + // Currently no `refers_to_*` method actually returns more than one element, + // but returning `Iterator` instead of `Option` to ensure that all consumers are ready + // for adding more conditions. + + // The matcher methods are on the CRD type rather than the initialized `Backend` impls + // to avoid having to initialize the backend for each watch event. + + /// Returns the conditions where the backend refers to `config_map`. + pub fn refers_to_config_map( + &self, + config_map: &PartialObjectMeta, + ) -> impl Iterator { + let cm_namespace = config_map.metadata.namespace.as_deref(); + match self { + Self::K8sSearch(backend) => { + let name_matches = backend.trust_store_config_map_name == config_map.metadata.name; + cm_namespace + .filter(|_| name_matches) + .and_then(|cm_ns| backend.search_namespace.matches_namespace(cm_ns)) + } + Self::AutoTls(_) => None, + Self::CertManager(_) => None, + Self::KerberosKeytab(_) => None, + } + .into_iter() + } + + /// Returns the conditions where the backend refers to `secret`. + pub fn refers_to_secret( + &self, + secret: &PartialObjectMeta, + ) -> impl Iterator { + match self { + Self::AutoTls(backend) => { + (backend.ca.secret == *secret).then_some(SearchNamespaceMatchCondition::True) + } + Self::K8sSearch(_) => None, + Self::CertManager(_) => None, + Self::KerberosKeytab(_) => None, + } + .into_iter() + } +} + +impl SearchNamespace { + pub fn resolve<'a>(&'a self, pod_namespace: &'a str) -> &'a str { + match self { + SearchNamespace::Pod {} => pod_namespace, + SearchNamespace::Name(ns) => ns, + } + } + + /// Returns [`Some`] if this `SearchNamespace` could possibly match an object in the namespace + /// `object_namespace`, otherwise [`None`]. + /// + /// This is optimistic, you then need to call [`SearchNamespaceMatchCondition::matches_pod_namespace`] + /// to evaluate the match for a specific pod's namespace. + pub fn matches_namespace( + &self, + object_namespace: &str, + ) -> Option { + match self { + SearchNamespace::Pod {} => Some(SearchNamespaceMatchCondition::IfPodIsInNamespace { + namespace: object_namespace.to_string(), + }), + SearchNamespace::Name(ns) => { + (ns == object_namespace).then_some(SearchNamespaceMatchCondition::True) + } + } + } +} + +impl SearchNamespaceMatchCondition { + pub fn matches_pod_namespace(&self, pod_ns: &str) -> bool { + match self { + Self::True => true, + Self::IfPodIsInNamespace { namespace } => namespace == pod_ns, + } + } +} + +impl CertificateKeyGeneration { + pub const RSA_KEY_LENGTH_2048: u32 = 2048; + pub const RSA_KEY_LENGTH_3072: u32 = 3072; + pub const RSA_KEY_LENGTH_4096: u32 = 4096; + + // Could not get a "standard" enum with assigned values/discriminants to work as integers in the schema + // The following was generated and requires the length to be provided as string (we want an integer) + // keyGeneration: + // default: + // rsa: + // length: '2048' + // oneOf: + // - required: + // - rsa + // properties: + // rsa: + // properties: + // length: + // enum: + // - '2048' + // - '3072' + // - '4096' + // type: string + pub fn tls_key_length_schema(_: &mut SchemaGenerator) -> Schema { + serde_json::from_value(serde_json::json!({ + "type": "integer", + "enum": [ + Self::RSA_KEY_LENGTH_2048, + Self::RSA_KEY_LENGTH_3072, + Self::RSA_KEY_LENGTH_4096 + ] + })) + .expect("Failed to parse JSON of custom tls key length schema") + } +} + +impl Default for CertificateKeyGeneration { + fn default() -> Self { + Self::Rsa { + length: Self::RSA_KEY_LENGTH_2048, + } + } +} diff --git a/rust/operator-binary/src/crd/secret_class/v1alpha2_impl.rs b/rust/operator-binary/src/crd/secret_class/v1alpha2_impl.rs new file mode 100644 index 00000000..57c1f49b --- /dev/null +++ b/rust/operator-binary/src/crd/secret_class/v1alpha2_impl.rs @@ -0,0 +1,166 @@ +use stackable_operator::{ + k8s_openapi::api::core::v1::{ConfigMap, Secret}, + kube::api::PartialObjectMeta, + schemars::{Schema, SchemaGenerator}, + shared::time::Duration, +}; + +use crate::{ + backend, + crd::v1alpha2::{ + ActiveDirectorySamAccountNameRules, AutoTlsBackend, AutoTlsCa, CertManagerBackend, + CertificateKeyGeneration, SearchNamespace, SearchNamespaceMatchCondition, + SecretClassBackend, + }, +}; + +impl SecretClassBackend { + // Currently no `refers_to_*` method actually returns more than one element, + // but returning `Iterator` instead of `Option` to ensure that all consumers are ready + // for adding more conditions. + + // The matcher methods are on the CRD type rather than the initialized `Backend` impls + // to avoid having to initialize the backend for each watch event. + + /// Returns the conditions where the backend refers to `config_map`. + pub fn refers_to_config_map( + &self, + config_map: &PartialObjectMeta, + ) -> impl Iterator { + let cm_namespace = config_map.metadata.namespace.as_deref(); + match self { + Self::K8sSearch(backend) => { + let name_matches = backend.trust_store_config_map_name == config_map.metadata.name; + cm_namespace + .filter(|_| name_matches) + .and_then(|cm_ns| backend.search_namespace.matches_namespace(cm_ns)) + } + Self::AutoTls(_) => None, + Self::CertManager(_) => None, + Self::KerberosKeytab(_) => None, + } + .into_iter() + } + + /// Returns the conditions where the backend refers to `secret`. + pub fn refers_to_secret( + &self, + secret: &PartialObjectMeta, + ) -> impl Iterator { + match self { + Self::AutoTls(backend) => { + (backend.ca.secret == *secret).then_some(SearchNamespaceMatchCondition::True) + } + Self::K8sSearch(_) => None, + Self::CertManager(_) => None, + Self::KerberosKeytab(_) => None, + } + .into_iter() + } +} + +impl SearchNamespace { + pub fn resolve<'a>(&'a self, pod_namespace: &'a str) -> &'a str { + match self { + SearchNamespace::Pod {} => pod_namespace, + SearchNamespace::Name(ns) => ns, + } + } + + /// Returns [`Some`] if this `SearchNamespace` could possibly match an object in the namespace + /// `object_namespace`, otherwise [`None`]. + /// + /// This is optimistic, you then need to call [`SearchNamespaceMatchCondition::matches_pod_namespace`] + /// to evaluate the match for a specific pod's namespace. + pub fn matches_namespace( + &self, + object_namespace: &str, + ) -> Option { + match self { + SearchNamespace::Pod {} => Some(SearchNamespaceMatchCondition::IfPodIsInNamespace { + namespace: object_namespace.to_string(), + }), + SearchNamespace::Name(ns) => { + (ns == object_namespace).then_some(SearchNamespaceMatchCondition::True) + } + } + } +} + +impl SearchNamespaceMatchCondition { + pub fn matches_pod_namespace(&self, pod_ns: &str) -> bool { + match self { + Self::True => true, + Self::IfPodIsInNamespace { namespace } => namespace == pod_ns, + } + } +} + +impl AutoTlsBackend { + pub(crate) fn default_max_certificate_lifetime() -> Duration { + backend::tls::DEFAULT_MAX_CERT_LIFETIME + } +} + +impl AutoTlsCa { + pub(crate) fn default_ca_certificate_lifetime() -> Duration { + backend::tls::DEFAULT_CA_CERT_LIFETIME + } +} + +impl CertificateKeyGeneration { + pub const RSA_KEY_LENGTH_2048: u32 = 2048; + pub const RSA_KEY_LENGTH_3072: u32 = 3072; + pub const RSA_KEY_LENGTH_4096: u32 = 4096; + + // Could not get a "standard" enum with assigned values/discriminants to work as integers in the schema + // The following was generated and requires the length to be provided as string (we want an integer) + // keyGeneration: + // default: + // rsa: + // length: '2048' + // oneOf: + // - required: + // - rsa + // properties: + // rsa: + // properties: + // length: + // enum: + // - '2048' + // - '3072' + // - '4096' + // type: string + pub fn tls_key_length_schema(_: &mut SchemaGenerator) -> Schema { + serde_json::from_value(serde_json::json!({ + "type": "integer", + "enum": [ + Self::RSA_KEY_LENGTH_2048, + Self::RSA_KEY_LENGTH_3072, + Self::RSA_KEY_LENGTH_4096 + ] + })) + .expect("Failed to parse JSON of custom tls key length schema") + } +} + +impl Default for CertificateKeyGeneration { + fn default() -> Self { + Self::Rsa { + length: Self::RSA_KEY_LENGTH_2048, + } + } +} + +impl CertManagerBackend { + pub(crate) fn default_certificate_lifetime() -> Duration { + backend::cert_manager::DEFAULT_CERT_LIFETIME + } +} + +impl ActiveDirectorySamAccountNameRules { + pub(crate) fn default_total_length() -> u8 { + // Default AD samAccountName length limit + 20 + } +} diff --git a/rust/operator-binary/src/crd/trust_store/mod.rs b/rust/operator-binary/src/crd/trust_store/mod.rs new file mode 100644 index 00000000..3c1b49e5 --- /dev/null +++ b/rust/operator-binary/src/crd/trust_store/mod.rs @@ -0,0 +1,35 @@ +use serde::{Deserialize, Serialize}; +use stackable_operator::{ + kube::CustomResource, + schemars::{self, JsonSchema}, + versioned::versioned, +}; + +use crate::format::SecretFormat; + +#[versioned( + version(name = "v1alpha1"), + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ) +)] +pub mod versioned { + /// A [TrustStore](DOCS_BASE_URL_PLACEHOLDER/secret-operator/truststore) requests information about how to + /// validate secrets issued by a [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass). + /// + /// The requested information is written to a ConfigMap with the same name as the TrustStore. + #[versioned(crd(group = "secrets.stackable.tech", namespaced))] + #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct TrustStoreSpec { + /// The name of the SecretClass that the request concerns. + pub secret_class_name: String, + + /// The [format](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#format) that the data should be converted into. + pub format: Option, + } +} diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 109bfd1c..561f6f60 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -20,6 +20,8 @@ use tokio_stream::wrappers::UnixListenerStream; use tonic::transport::Server; use utils::{TonicUnixStream, uds_bind_private}; +use crate::crd::{SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion, v1alpha2}; + mod backend; mod crd; mod csi_server; @@ -65,8 +67,10 @@ async fn main() -> anyhow::Result<()> { let opts = Opts::parse(); match opts.cmd { stackable_operator::cli::Command::Crd => { - crd::SecretClass::print_yaml_schema(built_info::PKG_VERSION)?; - crd::TrustStore::print_yaml_schema(built_info::PKG_VERSION)?; + SecretClass::merged_crd(crd::SecretClassVersion::V1Alpha2)? + .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; + TrustStore::merged_crd(crd::TrustStoreVersion::V1Alpha1)? + .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; } stackable_operator::cli::Command::Run(SecretOperatorRun { csi_endpoint, diff --git a/rust/operator-binary/src/truststore_controller.rs b/rust/operator-binary/src/truststore_controller.rs index 89ff079f..c200daad 100644 --- a/rust/operator-binary/src/truststore_controller.rs +++ b/rust/operator-binary/src/truststore_controller.rs @@ -32,7 +32,7 @@ use strum::{EnumDiscriminants, IntoStaticStr}; use crate::{ OPERATOR_NAME, backend::{self, SecretBackendError, TrustSelector}, - crd::{SearchNamespaceMatchCondition, SecretClass, TrustStore}, + crd::{v1alpha1, v1alpha2}, format::{ self, well_known::{CompatibilityOptions, NamingOptions}, @@ -46,7 +46,7 @@ const FULL_CONTROLLER_NAME: &str = concatcp!(CONTROLLER_NAME, ".", OPERATOR_NAME pub async fn start(client: &stackable_operator::client::Client, watch_namespace: &WatchNamespace) { let (secretclasses, secretclasses_writer) = reflector::store(); let controller = Controller::new( - watch_namespace.get_api::>(client), + watch_namespace.get_api::>(client), watcher::Config::default(), ); let truststores = controller.store(); @@ -60,7 +60,7 @@ pub async fn start(client: &stackable_operator::client::Client, watch_namespace: controller .watches_stream( watcher( - client.get_api::>(&()), + client.get_api::>(&()), watcher::Config::default(), ) .reflect(secretclasses_writer) @@ -119,29 +119,33 @@ pub async fn start(client: &stackable_operator::client::Client, watch_namespace: .await; } -/// Resolves modifications to dependencies of [`SecretClass`] objects into -/// a list of affected [`TrustStore`]s. +/// Resolves modifications to dependencies of [`v1alpha2::SecretClass`] objects into +/// a list of affected [`v1alpha1::TrustStore`]s. fn secretclass_dependency_watch_mapper( - truststores: reflector::Store>, - secretclasses: reflector::Store>, - reference_conditions: impl Copy + Fn(&SecretClass, &Dep) -> Conds, -) -> impl Fn(Dep) -> Vec>> + truststores: reflector::Store>, + secretclasses: reflector::Store>, + reference_conditions: impl Copy + Fn(&v1alpha2::SecretClass, &Dep) -> Conds, +) -> impl Fn(Dep) -> Vec>> where - Conds: IntoIterator, + Conds: IntoIterator, { move |dep| { - let potentially_matching_secretclasses = secretclasses - .state() - .into_iter() - .filter_map(move |sc| { - sc.0.as_ref().ok().and_then(|sc| { - let conditions = reference_conditions(sc, &dep) - .into_iter() - .collect::>(); - (!conditions.is_empty()).then(|| (ObjectRef::from_obj(sc), conditions)) + let potentially_matching_secretclasses = + secretclasses + .state() + .into_iter() + .filter_map(move |sc| { + sc.0.as_ref().ok().and_then(|sc| { + let conditions = reference_conditions(sc, &dep) + .into_iter() + .collect::>(); + (!conditions.is_empty()).then(|| (ObjectRef::from_obj(sc), conditions)) + }) }) - }) - .collect::, Vec>>(); + .collect::, + Vec, + >>(); truststores .state() .into_iter() @@ -151,7 +155,7 @@ where return false; }; let secret_class_ref = - ObjectRef::::new(&ts.spec.secret_class_name); + ObjectRef::::new(&ts.spec.secret_class_name); potentially_matching_secretclasses .get(&secret_class_ref) .is_some_and(|conds| { @@ -177,13 +181,13 @@ pub enum Error { #[snafu(display("failed to get {secret_class} for TrustStore"))] GetSecretClass { source: stackable_operator::client::Error, - secret_class: ObjectRef, + secret_class: ObjectRef, }, #[snafu(display("failed to initialize SecretClass backend for {secret_class}"))] InitBackend { source: backend::dynamic::FromClassError, - secret_class: ObjectRef, + secret_class: ObjectRef, }, #[snafu(display("failed to get trust data from backend"))] @@ -195,7 +199,7 @@ pub enum Error { #[snafu(display("failed to convert trust data into desired format"))] FormatData { source: format::IntoFilesError, - secret_class: ObjectRef, + secret_class: ObjectRef, }, #[snafu(display("failed to build owner reference to the TrustStore"))] @@ -234,7 +238,7 @@ struct Ctx { } async fn reconcile( - truststore: Arc>, + truststore: Arc>, ctx: Arc, ) -> Result { let truststore = truststore @@ -245,10 +249,10 @@ async fn reconcile( let secret_class_name = &truststore.spec.secret_class_name; let secret_class = ctx .client - .get::(secret_class_name, &()) + .get::(secret_class_name, &()) .await .context(GetSecretClassSnafu { - secret_class: ObjectRef::::new(secret_class_name), + secret_class: ObjectRef::::new(secret_class_name), })?; let secret_class_ref = secret_class.to_object_ref(()); let backend = backend::dynamic::from_class(&ctx.client, secret_class) @@ -304,7 +308,7 @@ async fn reconcile( } fn error_policy( - _obj: Arc>, + _obj: Arc>, _error: &Error, _ctx: Arc, ) -> controller::Action { From 1d3c3dcd05457b38f701b55db4957907d5c65453 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:37:39 +0200 Subject: [PATCH 06/23] feat: Add conversion webhook and CRD maintainer The operator can now handle CRD conversions via a webhook and maintains it's own CRDs via the CRD maintainer. As such, it needs permissions to create and patch CRDs. Co-authored-by: Sebastian Bernauer --- .../helm/secret-operator/templates/roles.yaml | 9 + .../templates/secretclasses.yaml | 15 -- rust/operator-binary/src/main.rs | 175 ++++++++++++++---- rust/operator-binary/src/secretclass.yaml | 13 ++ 4 files changed, 157 insertions(+), 55 deletions(-) delete mode 100644 deploy/helm/secret-operator/templates/secretclasses.yaml create mode 100644 rust/operator-binary/src/secretclass.yaml diff --git a/deploy/helm/secret-operator/templates/roles.yaml b/deploy/helm/secret-operator/templates/roles.yaml index 630e9ab6..29e6e90c 100644 --- a/deploy/helm/secret-operator/templates/roles.yaml +++ b/deploy/helm/secret-operator/templates/roles.yaml @@ -43,6 +43,13 @@ metadata: labels: {{- include "operator.labels" . | nindent 4 }} rules: + # Required to maintain the CRD. The operator needs to do this, as it needs to enter e.g. it's + # generated certificate in the conversion webhook. + - apiGroups: [apiextensions.k8s.io] + resources: [customresourcedefinitions] + verbs: + - create + - patch - apiGroups: - "" resources: @@ -115,6 +122,8 @@ rules: - secretclasses - truststores verbs: + - create + - patch - get - watch - list diff --git a/deploy/helm/secret-operator/templates/secretclasses.yaml b/deploy/helm/secret-operator/templates/secretclasses.yaml deleted file mode 100644 index dfbbabd8..00000000 --- a/deploy/helm/secret-operator/templates/secretclasses.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: tls - labels: - {{- include "operator.labels" . | nindent 4 }} -spec: - backend: - autoTls: - ca: - secret: - name: secret-provisioner-tls-ca - namespace: {{ .Values.secretClasses.tls.caSecretNamespace | default .Release.Namespace }} - autoGenerate: true diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 561f6f60..d3fa6194 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -2,20 +2,31 @@ // This will need changes in our and upstream error types. #![allow(clippy::result_large_err)] -use std::{os::unix::prelude::FileTypeExt, path::PathBuf, pin::pin}; +use std::{os::unix::prelude::FileTypeExt, path::PathBuf}; -use anyhow::Context; +use anyhow::{Context, anyhow}; use clap::Parser; use csi_server::{ controller::SecretProvisionerController, identity::SecretProvisionerIdentity, node::SecretProvisionerNode, }; -use futures::{FutureExt, TryStreamExt}; +use futures::{FutureExt, TryFutureExt, TryStreamExt, try_join}; use grpc::csi::v1::{ controller_server::ControllerServer, identity_server::IdentityServer, node_server::NodeServer, }; -use stackable_operator::{CustomResourceExt, cli::ProductOperatorRun, telemetry::Tracing}; -use tokio::signal::unix::{SignalKind, signal}; +use stackable_operator::{ + YamlSchema, + cli::{CommonOptions, RunArguments}, + client::Client, + kvp::{Label, LabelExt}, + shared::yaml::SerializeOptions, + telemetry::Tracing, + webhook::servers::ConversionWebhookServer, +}; +use tokio::{ + signal::unix::{SignalKind, signal}, + sync::oneshot, +}; use tokio_stream::wrappers::UnixListenerStream; use tonic::transport::Server; use utils::{TonicUnixStream, uds_bind_private}; @@ -32,6 +43,7 @@ mod truststore_controller; mod utils; pub const OPERATOR_NAME: &str = "secrets.stackable.tech"; +pub const FIELD_MANAGER: &str = "secret-operator"; #[derive(clap::Parser)] #[clap(author, version)] @@ -55,7 +67,7 @@ struct SecretOperatorRun { privileged: bool, #[clap(flatten)] - common: ProductOperatorRun, + common: RunArguments, } mod built_info { @@ -76,12 +88,16 @@ async fn main() -> anyhow::Result<()> { csi_endpoint, privileged, common: - ProductOperatorRun { + RunArguments { + common: + CommonOptions { + telemetry, + cluster_info, + }, product_config: _, watch_namespace, - operator_environment: _, - telemetry, - cluster_info, + operator_environment, + maintenance, }, }) => { // NOTE (@NickLarsenNZ): Before stackable-telemetry was used: @@ -105,46 +121,125 @@ async fn main() -> anyhow::Result<()> { &cluster_info, ) .await?; + if csi_endpoint .symlink_metadata() .is_ok_and(|meta| meta.file_type().is_socket()) { let _ = std::fs::remove_file(&csi_endpoint); } + + // NOTE (@Techassi): This could maybe be moved into a setup function again. For now, + // it is here. + let crds_and_handlers = [ + ( + SecretClass::merged_crd(SecretClassVersion::V1Alpha2)?, + SecretClass::try_convert as fn(_) -> _, + ), + ( + TrustStore::merged_crd(TrustStoreVersion::V1Alpha1)?, + TrustStore::try_convert as fn(_) -> _, + ), + ]; + + let (conversion_webhook, crd_maintainer, initial_reconcile_rx) = + ConversionWebhookServer::with_maintainer( + crds_and_handlers, + &operator_environment.operator_service_name, + &operator_environment.operator_namespace, + FIELD_MANAGER, + maintenance.disable_crd_maintenance, + client.as_kube_client(), + ) + .await + .context("failed to create conversion webhook server and CRD maintainer")?; + let mut sigterm = signal(SignalKind::terminate())?; - let csi_server = pin!( - Server::builder() - .add_service( - tonic_reflection::server::Builder::configure() - .include_reflection_service(true) - .register_encoded_file_descriptor_set(grpc::FILE_DESCRIPTOR_SET_BYTES) - .build_v1()?, + let csi_server = Server::builder() + .add_service( + tonic_reflection::server::Builder::configure() + .include_reflection_service(true) + .register_encoded_file_descriptor_set(grpc::FILE_DESCRIPTOR_SET_BYTES) + .build_v1()?, + ) + .add_service(IdentityServer::new(SecretProvisionerIdentity)) + .add_service(ControllerServer::new(SecretProvisionerController { + client: client.clone(), + })) + .add_service(NodeServer::new(SecretProvisionerNode { + client: client.clone(), + node_name: cluster_info.kubernetes_node_name.to_owned(), + privileged, + })) + .serve_with_incoming_shutdown( + UnixListenerStream::new( + uds_bind_private(csi_endpoint).context("failed to bind CSI listener")?, ) - .add_service(IdentityServer::new(SecretProvisionerIdentity)) - .add_service(ControllerServer::new(SecretProvisionerController { - client: client.clone(), - })) - .add_service(NodeServer::new(SecretProvisionerNode { - client: client.clone(), - node_name: cluster_info.kubernetes_node_name.to_owned(), - privileged, - })) - .serve_with_incoming_shutdown( - UnixListenerStream::new( - uds_bind_private(csi_endpoint) - .context("failed to bind CSI listener")?, - ) - .map_ok(TonicUnixStream), - sigterm.recv().map(|_| ()), - ) - ); + .map_ok(TonicUnixStream), + sigterm.recv().map(|_| ()), + ) + .map_err(|err| anyhow!(err).context("failed to run csi server")); + let truststore_controller = - pin!(truststore_controller::start(&client, &watch_namespace).map(Ok)); - futures::future::select(csi_server, truststore_controller) - .await - .factor_first() - .0?; + truststore_controller::start(&client, &watch_namespace).map(anyhow::Ok); + + let conversion_webhook = conversion_webhook + .run() + .map_err(|err| anyhow!(err).context("failed to run conversion webhook")); + + let crd_maintainer = crd_maintainer + .run() + .map_err(|err| anyhow!(err).context("failed to run CRD maintainer")); + + let default_secretclass = create_default_secretclass( + initial_reconcile_rx, + operator_environment.operator_namespace.clone(), + client.clone(), + ) + .map_err(|err| anyhow!(err).context("failed to apply default custom resources")); + + try_join!( + csi_server, + truststore_controller, + conversion_webhook, + crd_maintainer, + default_secretclass, + )?; } } Ok(()) } + +async fn create_default_secretclass( + initial_reconcile_rx: oneshot::Receiver<()>, + operator_namespace: String, + client: Client, +) -> anyhow::Result<()> { + initial_reconcile_rx.await?; + + tracing::info!("applying default secretclass"); + + let deserializer = serde_yaml::Deserializer::from_slice(include_bytes!("secretclass.yaml")); + let mut tls_secret_class: v1alpha2::SecretClass = + serde_yaml::with::singleton_map_recursive::deserialize(deserializer) + .expect("compile-time included secretclass must be valid YAML"); + + #[rustfmt::skip] + let managed_by = Label::managed_by(OPERATOR_NAME, "secretclass").expect("managed-by label must be valid"); + let version = Label::version(built_info::PKG_VERSION).expect("version label must be valid"); + let instance = Label::instance(OPERATOR_NAME).expect("instance label must be valid"); + let name = Label::name(OPERATOR_NAME).expect("name label must be valid"); + + tls_secret_class + .add_label(managed_by) + .add_label(version) + .add_label(instance) + .add_label(name) + .add_label(Label::stackable_vendor()); + + tls_secret_class.metadata.namespace = Some(operator_namespace); + + client.create_if_missing(&tls_secret_class).await?; + + Ok(()) +} diff --git a/rust/operator-binary/src/secretclass.yaml b/rust/operator-binary/src/secretclass.yaml new file mode 100644 index 00000000..badd5b3c --- /dev/null +++ b/rust/operator-binary/src/secretclass.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: secrets.stackable.tech/v1alpha2 +kind: SecretClass +metadata: + name: tls +spec: + backend: + autoTls: + ca: + secret: + name: secret-provisioner-tls-ca + namespace: stackable-operator + autoGenerate: true From 7d625cbc1c4dd1f56b241d01ea1b0b7c075eceec Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 10:37:59 +0200 Subject: [PATCH 07/23] chore: Update dependencies --- Cargo.lock | 1091 ++++++---- Cargo.nix | 3606 ++++++++++++++++++++++--------- Cargo.toml | 7 +- crate-hashes.json | 18 +- rust/operator-binary/Cargo.toml | 1 + 5 files changed, 3266 insertions(+), 1457 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae0d6fdc..39029f6a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,12 +45,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -116,6 +110,12 @@ version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + [[package]] name = "async-broadcast" version = "0.7.2" @@ -253,12 +253,24 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + [[package]] name = "bindgen" version = "0.71.1" @@ -281,24 +293,24 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "block-buffer" @@ -357,10 +369,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.33" +version = "1.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" +checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -383,15 +396,14 @@ checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "num-traits", "serde", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -417,9 +429,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -427,9 +439,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -439,9 +451,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck", "proc-macro2", @@ -470,6 +482,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "const_format" version = "0.2.34" @@ -572,40 +590,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] -name = "crypto-common" -version = "0.1.6" +name = "crypto-bigint" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "typenum", + "rand_core 0.6.4", + "subtle", + "zeroize", ] [[package]] -name = "darling" -version = "0.20.11" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", + "generic-array", + "typenum", ] [[package]] name = "darling" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08440b3dd222c3d0433e63e097463969485f112baff337dfdaca043a0d760570" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core 0.21.2", - "darling_macro 0.21.2", + "darling_core", + "darling_macro", ] [[package]] name = "darling_core" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", @@ -616,46 +636,45 @@ dependencies = [ ] [[package]] -name = "darling_core" -version = "0.21.2" +name = "darling_macro" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25b7912bc28a04ab1b7715a68ea03aaa15662b43a1a4b2c480531fd19f8bf7e" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", + "darling_core", "quote", - "strsim", "syn 2.0.106", ] [[package]] -name = "darling_macro" -version = "0.20.11" +name = "delegate" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "6178a82cf56c836a3ba61a7935cdb1c49bfaa6fa4327cd5bf554a503087de26b" dependencies = [ - "darling_core 0.20.11", + "proc-macro2", "quote", "syn 2.0.106", ] [[package]] -name = "darling_macro" -version = "0.21.2" +name = "der" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce154b9bea7fb0c8e8326e62d00354000c36e79770ff21b8c84e3aa267d9d531" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ - "darling_core 0.21.2", - "quote", - "syn 2.0.106", + "const-oid", + "der_derive", + "flagset", + "pem-rfc7468", + "zeroize", ] [[package]] -name = "delegate" -version = "0.13.4" +name = "der_derive" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6178a82cf56c836a3ba61a7935cdb1c49bfaa6fa4327cd5bf554a503087de26b" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", @@ -664,9 +683,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", ] @@ -707,6 +726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", + "const-oid", "crypto-common", "subtle", ] @@ -748,6 +768,20 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + [[package]] name = "educe" version = "0.6.0" @@ -766,6 +800,26 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "encoding_rs" version = "0.8.35" @@ -812,12 +866,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -843,9 +897,9 @@ dependencies = [ [[package]] name = "fancy-regex" -version = "0.13.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" +checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" dependencies = [ "bit-set", "regex-automata 0.4.9", @@ -858,12 +912,34 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + [[package]] name = "fixedbitset" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" + [[package]] name = "flate2" version = "1.1.2" @@ -1014,6 +1090,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -1036,7 +1113,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.7+wasi-0.2.4", ] [[package]] @@ -1076,6 +1153,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "h2" version = "0.4.12" @@ -1106,30 +1194,6 @@ dependencies = [ "foldhash", ] -[[package]] -name = "headers" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" -dependencies = [ - "base64", - "bytes", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" -dependencies = [ - "http", -] - [[package]] name = "heck" version = "0.5.0" @@ -1168,7 +1232,7 @@ checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ "cfg-if", "libc", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -1240,26 +1304,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-http-proxy" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad4b0a1e37510028bc4ba81d0e38d239c39671b0f0ce9e02dfa93a8133f7c08" -dependencies = [ - "bytes", - "futures-util", - "headers", - "http", - "hyper", - "hyper-rustls", - "hyper-util", - "pin-project-lite", - "rustls-native-certs 0.7.3", - "tokio", - "tokio-rustls", - "tower-service", -] - [[package]] name = "hyper-rustls" version = "0.27.7" @@ -1271,7 +1315,7 @@ dependencies = [ "hyper-util", "log", "rustls", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -1293,9 +1337,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64", "bytes", @@ -1317,9 +1361,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1454,9 +1498,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "92119844f513ffa41556430369ab02c295a3578af21cf945caa3e9e0c2481ac3" dependencies = [ "equivalent", "hashbrown", @@ -1558,9 +1602,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -1603,9 +1647,9 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa60a41b57ae1a0a071af77dbcf89fc9819cfe66edaf2beeb204c34459dcf0b2" +checksum = "d13f06d5326a915becaffabdfab75051b8cdc260c2a5c06c0e90226ede89a692" dependencies = [ "base64", "chrono", @@ -1617,11 +1661,11 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ - "darling 0.21.2", + "darling", "regex", - "snafu 0.8.7", + "snafu 0.8.9", ] [[package]] @@ -1630,7 +1674,7 @@ version = "0.1.0" source = "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#cba32789257540e31f262647f9b59cb592e2e011" dependencies = [ "krb5-sys", - "snafu 0.8.7", + "snafu 0.8.9", ] [[package]] @@ -1644,9 +1688,9 @@ dependencies = [ [[package]] name = "kube" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778f98664beaf4c3c11372721e14310d1ae00f5e2d9aabcf8906c881aa4e9f51" +checksum = "48e7bb0b6a46502cc20e4575b6ff401af45cfea150b34ba272a3410b78aa014e" dependencies = [ "k8s-openapi", "kube-client", @@ -1657,9 +1701,9 @@ dependencies = [ [[package]] name = "kube-client" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb276b85b6e94ded00ac8ea2c68fcf4697ea0553cb25fddc35d4a0ab718db8d" +checksum = "4987d57a184d2b5294fdad3d7fc7f278899469d21a4da39a8f6ca16426567a36" dependencies = [ "base64", "bytes", @@ -1671,7 +1715,6 @@ dependencies = [ "http-body", "http-body-util", "hyper", - "hyper-http-proxy", "hyper-rustls", "hyper-timeout", "hyper-util", @@ -1694,9 +1737,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c56ff45deb0031f2a476017eed60c06872251f271b8387ad8020b8fef60960" +checksum = "914bbb770e7bb721a06e3538c0edd2babed46447d128f7c21caa68747060ee73" dependencies = [ "chrono", "derive_more", @@ -1713,11 +1756,11 @@ dependencies = [ [[package]] name = "kube-derive" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079fc8c1c397538628309cfdee20696ebdcc26745f9fb17f89b78782205bd995" +checksum = "03dee8252be137772a6ab3508b81cd797dee62ee771112a2453bc85cbbe150d2" dependencies = [ - "darling 0.20.11", + "darling", "proc-macro2", "quote", "serde", @@ -1727,9 +1770,9 @@ dependencies = [ [[package]] name = "kube-runtime" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1326e946fadf6248febdf8a1c001809c3899ccf48cb9768cbc536b741040dc" +checksum = "6aea4de4b562c5cc89ab10300bb63474ae1fa57ff5a19275f2e26401a323e3fd" dependencies = [ "ahash", "async-broadcast", @@ -1757,6 +1800,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] [[package]] name = "lber" @@ -1856,6 +1902,12 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + [[package]] name = "libz-sys" version = "1.1.22" @@ -1870,9 +1922,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -1892,9 +1944,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "matchers" @@ -1992,12 +2044,49 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2005,6 +2094,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -2074,9 +2164,9 @@ dependencies = [ [[package]] name = "opentelemetry" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6" +checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0" dependencies = [ "futures-core", "futures-sink", @@ -2088,9 +2178,9 @@ dependencies = [ [[package]] name = "opentelemetry-appender-tracing" -version = "0.30.1" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68f63eca5fad47e570e00e893094fc17be959c80c79a7d6ec1abdd5ae6ffc16" +checksum = "ef6a1ac5ca3accf562b8c306fa8483c85f4390f768185ab775f242f7fe8fdcc2" dependencies = [ "opentelemetry", "tracing", @@ -2100,9 +2190,9 @@ dependencies = [ [[package]] name = "opentelemetry-http" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d" +checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d" dependencies = [ "async-trait", "bytes", @@ -2113,54 +2203,54 @@ dependencies = [ [[package]] name = "opentelemetry-otlp" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b" +checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" dependencies = [ "http", "opentelemetry", "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.13.5", + "prost", "reqwest", "thiserror 2.0.16", "tokio", - "tonic 0.13.1", + "tonic", "tracing", ] [[package]] name = "opentelemetry-proto" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" +checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f" dependencies = [ "opentelemetry", "opentelemetry_sdk", - "prost 0.13.5", - "tonic 0.13.1", + "prost", + "tonic", + "tonic-prost", ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d059a296a47436748557a353c5e6c5705b9470ef6c95cfc52c21a8814ddac2" +checksum = "e62e29dfe041afb8ed2a6c9737ab57db4907285d999ef8ad3a59092a36bdc846" [[package]] name = "opentelemetry_sdk" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b" +checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd" dependencies = [ "futures-channel", "futures-executor", "futures-util", "opentelemetry", "percent-encoding", - "rand", - "serde_json", + "rand 0.9.2", "thiserror 2.0.16", "tokio", "tokio-stream", @@ -2197,6 +2287,18 @@ dependencies = [ "yasna", ] +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + [[package]] name = "parking" version = "2.2.1" @@ -2236,6 +2338,15 @@ dependencies = [ "serde", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -2244,9 +2355,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" dependencies = [ "memchr", "thiserror 2.0.16", @@ -2255,9 +2366,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" dependencies = [ "pest", "pest_generator", @@ -2265,9 +2376,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" dependencies = [ "pest", "pest_meta", @@ -2278,9 +2389,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" dependencies = [ "pest", "sha2", @@ -2328,6 +2439,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.32" @@ -2336,9 +2468,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -2368,6 +2500,15 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "proc-macro2" version = "1.0.101" @@ -2379,8 +2520,8 @@ dependencies = [ [[package]] name = "product-config" -version = "0.7.0" -source = "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#d61d4c7542c942da2ba0e9af4e5e3c3113abb0cf" +version = "0.8.0" +source = "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#678fb7cf30af7d7b516c9a46698a1b661120d54a" dependencies = [ "fancy-regex", "java-properties", @@ -2389,18 +2530,8 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", - "xml-rs", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive 0.13.5", + "snafu 0.8.9", + "xml", ] [[package]] @@ -2410,7 +2541,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ "bytes", - "prost-derive 0.14.1", + "prost-derive", ] [[package]] @@ -2426,7 +2557,7 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost 0.14.1", + "prost", "prost-types", "pulldown-cmark", "pulldown-cmark-to-cmark", @@ -2435,19 +2566,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "prost-derive" version = "0.14.1" @@ -2467,7 +2585,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ - "prost 0.14.1", + "prost", ] [[package]] @@ -2505,14 +2623,34 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha", - "rand_core", + "rand_chacha 0.9.0", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] @@ -2522,7 +2660,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", ] [[package]] @@ -2552,6 +2699,26 @@ dependencies = [ "bitflags", ] +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "regex" version = "1.11.1" @@ -2630,6 +2797,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "ring" version = "0.17.14" @@ -2644,6 +2821,27 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "sha2", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rustc-demangle" version = "0.1.26" @@ -2658,15 +2856,15 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -2684,19 +2882,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -2706,16 +2891,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", + "security-framework 3.4.0", ] [[package]] @@ -2729,9 +2905,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" dependencies = [ "ring", "rustls-pki-types", @@ -2761,20 +2937,21 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] name = "schemars" -version = "0.8.22" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "dyn-clone", + "ref-cast", "schemars_derive", "serde", "serde_json", @@ -2783,9 +2960,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.22" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" dependencies = [ "proc-macro2", "quote", @@ -2799,6 +2976,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "secrecy" version = "0.10.3" @@ -2823,9 +3014,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ "bitflags", "core-foundation 0.10.1", @@ -2836,9 +3027,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -2846,16 +3037,17 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d" dependencies = [ + "serde_core", "serde_derive", ] @@ -2869,11 +3061,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.225" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516" dependencies = [ "proc-macro2", "quote", @@ -2893,24 +3094,26 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] @@ -2984,6 +3187,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + [[package]] name = "slab" version = "0.4.11" @@ -3019,11 +3232,11 @@ dependencies = [ [[package]] name = "snafu" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0062a372b26c4a6e9155d099a3416d732514fd47ae2f235b3695b820afcee74a" +checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" dependencies = [ - "snafu-derive 0.8.7", + "snafu-derive 0.8.9", ] [[package]] @@ -3039,9 +3252,9 @@ dependencies = [ [[package]] name = "snafu-derive" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5fd9e3263fc19d73abd5107dbd4d43e37949212d2b15d4d334ee5db53022b8" +checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ "heck", "proc-macro2", @@ -3059,12 +3272,52 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "stackable-certs" +version = "0.4.0" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +dependencies = [ + "const-oid", + "ecdsa", + "k8s-openapi", + "kube", + "p256", + "rand 0.9.2", + "rand_core 0.6.4", + "rsa", + "sha2", + "signature", + "snafu 0.8.9", + "stackable-shared", + "tokio", + "tokio-rustls", + "tracing", + "x509-cert", + "zeroize", +] + [[package]] name = "stackable-krb5-provision-keytab" version = "0.0.0-dev" @@ -3074,10 +3327,10 @@ dependencies = [ "krb5", "ldap3", "native-tls", - "rand", + "rand 0.9.2", "serde", "serde_json", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-operator", "stackable-secret-operator-crd-utils", "tokio", @@ -3087,8 +3340,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.95.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +version = "0.99.0" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ "chrono", "clap", @@ -3110,11 +3363,12 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-operator-derive", "stackable-shared", "stackable-telemetry", "stackable-versioned", + "stackable-webhook", "strum", "tokio", "tracing", @@ -3126,9 +3380,9 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ - "darling 0.21.2", + "darling", "proc-macro2", "quote", "syn 2.0.106", @@ -3150,13 +3404,13 @@ dependencies = [ "openssl", "p12", "pin-project", - "prost 0.14.1", + "prost", "prost-types", - "rand", + "rand 0.9.2", "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "socket2", "stackable-krb5-provision-keytab", "stackable-operator", @@ -3167,7 +3421,7 @@ dependencies = [ "time", "tokio", "tokio-stream", - "tonic 0.14.1", + "tonic", "tonic-prost", "tonic-prost-build", "tonic-reflection", @@ -3202,16 +3456,17 @@ dependencies = [ [[package]] name = "stackable-shared" -version = "0.0.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +version = "0.0.3" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ + "chrono", "k8s-openapi", "kube", "schemars", "semver", "serde", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "strum", "time", ] @@ -3219,7 +3474,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ "axum", "clap", @@ -3230,7 +3485,7 @@ dependencies = [ "opentelemetry-semantic-conventions", "opentelemetry_sdk", "pin-project", - "snafu 0.8.7", + "snafu 0.8.9", "strum", "tokio", "tower", @@ -3242,24 +3497,24 @@ dependencies = [ [[package]] name = "stackable-versioned" -version = "0.8.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +version = "0.8.2" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ "schemars", "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-versioned-macros", ] [[package]] name = "stackable-versioned-macros" -version = "0.8.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" +version = "0.8.2" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" dependencies = [ "convert_case", - "darling 0.21.2", + "darling", "indoc", "itertools 0.14.0", "k8s-openapi", @@ -3270,6 +3525,35 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "stackable-webhook" +version = "0.6.0" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +dependencies = [ + "arc-swap", + "axum", + "futures-util", + "hyper", + "hyper-util", + "k8s-openapi", + "kube", + "opentelemetry", + "opentelemetry-semantic-conventions", + "rand 0.9.2", + "serde_json", + "snafu 0.8.9", + "stackable-certs", + "stackable-shared", + "stackable-telemetry", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tracing", + "tracing-opentelemetry", + "x509-cert", +] + [[package]] name = "strsim" version = "0.11.1" @@ -3360,15 +3644,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -3422,12 +3706,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde", @@ -3437,15 +3720,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -3461,6 +3744,27 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "tokio" version = "1.47.1" @@ -3539,41 +3843,15 @@ dependencies = [ [[package]] name = "tonic" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" -dependencies = [ - "async-trait", - "base64", - "bytes", - "flate2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost 0.13.5", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac5a8627ada0968acec063a4746bf79588aa03ccb66db2f75d7dce26722a40" +checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" dependencies = [ "async-trait", "axum", "base64", "bytes", + "flate2", "h2", "http", "http-body", @@ -3595,9 +3873,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e323d8bba3be30833707e36d046deabf10a35ae8ad3cae576943ea8933e25d" +checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" dependencies = [ "prettyplease", "proc-macro2", @@ -3607,20 +3885,20 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9c511b9a96d40cb12b7d5d00464446acf3b9105fd3ce25437cfe41c92b1c87d" +checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" dependencies = [ "bytes", - "prost 0.14.1", - "tonic 0.14.1", + "prost", + "tonic", ] [[package]] name = "tonic-prost-build" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ef298fcd01b15e135440c4b8c974460ceca4e6a5af7f1c933b08e4d2875efa1" +checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" dependencies = [ "prettyplease", "proc-macro2", @@ -3634,15 +3912,15 @@ dependencies = [ [[package]] name = "tonic-reflection" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0267a0073385cd94996197d12acb1856a3a0a2367482c726a48a769f6fed8a3a" +checksum = "34da53e8387581d66db16ff01f98a70b426b091fdf76856e289d5c1bd386ed7b" dependencies = [ - "prost 0.14.1", + "prost", "prost-types", "tokio", "tokio-stream", - "tonic 0.14.1", + "tonic", "tonic-prost", ] @@ -3756,15 +4034,16 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c" +checksum = "1e6e5658463dd88089aba75c7791e1d3120633b1bfde22478b28f625a9bb1b8e" dependencies = [ "js-sys", - "once_cell", "opentelemetry", "opentelemetry_sdk", + "rustversion", "smallvec", + "thiserror 2.0.16", "tracing", "tracing-core", "tracing-log", @@ -3829,9 +4108,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-segmentation" @@ -3883,9 +4162,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -3937,30 +4216,40 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", @@ -3972,9 +4261,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -3985,9 +4274,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3995,9 +4284,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", @@ -4008,18 +4297,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -4053,11 +4342,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -4075,7 +4364,7 @@ dependencies = [ "windows-collections", "windows-core", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -4096,7 +4385,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -4108,7 +4397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core", - "windows-link", + "windows-link 0.1.3", "windows-threading", ] @@ -4140,6 +4429,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -4147,7 +4442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -4156,7 +4451,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -4165,7 +4460,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -4195,6 +4490,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -4217,7 +4521,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -4234,7 +4538,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -4334,13 +4638,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" @@ -4349,10 +4650,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] -name = "xml-rs" -version = "0.8.27" +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "sha1", + "signature", + "spki", + "tls_codec", +] + +[[package]] +name = "xml" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "72e6e0a83ae73d886ab66fc2f82b598fbbb8f373357d5f2f9f783e50e4d06435" [[package]] name = "yasna" @@ -4386,18 +4701,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -4430,6 +4745,20 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] [[package]] name = "zerotrie" diff --git a/Cargo.nix b/Cargo.nix index 3483c16a..7c06b33c 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -251,17 +251,6 @@ rec { }; resolvedDefaultFeatures = [ "alloc" ]; }; - "android-tzdata" = rec { - crateName = "android-tzdata"; - version = "0.1.1"; - edition = "2018"; - sha256 = "1w7ynjxrfs97xg3qlcdns4kgfpwcdv824g611fq32cag4cdr96g9"; - libName = "android_tzdata"; - authors = [ - "RumovZ" - ]; - - }; "android_system_properties" = rec { crateName = "android_system_properties"; version = "0.1.5"; @@ -408,6 +397,19 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "arc-swap" = rec { + crateName = "arc-swap"; + version = "1.7.1"; + edition = "2018"; + sha256 = "0mrl9a9r9p9bln74q6aszvf22q1ijiw089jkrmabfqkbj31zixv9"; + libName = "arc_swap"; + authors = [ + "Michal 'vorner' Vaner " + ]; + features = { + "serde" = [ "dep:serde" ]; + }; + }; "async-broadcast" = rec { crateName = "async-broadcast"; version = "0.7.2"; @@ -896,6 +898,19 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "base16ct" = rec { + crateName = "base16ct"; + version = "0.2.0"; + edition = "2021"; + sha256 = "1kylrjhdzk7qpknrvlphw8ywdnvvg39dizw9622w3wk5xba04zsc"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "base64" = rec { crateName = "base64"; version = "0.22.1"; @@ -910,6 +925,19 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "base64ct" = rec { + crateName = "base64ct"; + version = "1.8.0"; + edition = "2024"; + sha256 = "1fj4vc6ghy3j1120r7dwn4xw90crfy46b448g5pm9w6an13qn92m"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "bindgen" = rec { crateName = "bindgen"; version = "0.71.1"; @@ -994,9 +1022,9 @@ rec { }; "bit-set" = rec { crateName = "bit-set"; - version = "0.5.3"; + version = "0.8.0"; edition = "2015"; - sha256 = "1wcm9vxi00ma4rcxkl3pzzjli6ihrpn9cfdi0c5b4cvga2mxs007"; + sha256 = "18riaa10s6n59n39vix0cr7l2dgwdhcpbcm97x1xbyfp1q47x008"; libName = "bit_set"; authors = [ "Alexis Beingessner " @@ -1010,21 +1038,26 @@ rec { ]; features = { "default" = [ "std" ]; + "serde" = [ "dep:serde" "bit-vec/serde" ]; "std" = [ "bit-vec/std" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "bit-vec" = rec { crateName = "bit-vec"; - version = "0.6.3"; + version = "0.8.0"; edition = "2015"; - sha256 = "1ywqjnv60cdh1slhz67psnp422md6jdliji6alq0gmly2xm9p7rl"; + sha256 = "1xxa1s2cj291r7k1whbxq840jxvmdsq9xgh7bvrxl46m80fllxjy"; libName = "bit_vec"; authors = [ "Alexis Beingessner " ]; features = { + "borsh" = [ "dep:borsh" ]; + "borsh_std" = [ "borsh/std" ]; "default" = [ "std" ]; + "miniserde" = [ "dep:miniserde" ]; + "nanoserde" = [ "dep:nanoserde" ]; "serde" = [ "dep:serde" ]; "serde_no_std" = [ "serde/alloc" ]; "serde_std" = [ "std" "serde/std" ]; @@ -1033,9 +1066,9 @@ rec { }; "bitflags" = rec { crateName = "bitflags"; - version = "2.9.2"; + version = "2.9.4"; edition = "2021"; - sha256 = "0adahzd1i2kv86k0vzkaxdcw9zjm124x9698yp7qgmiimd2varba"; + sha256 = "157kkcv8s7vk6d17dar1pa5cqcz4c8pdrn16wm1ld7jnr86d2q92"; authors = [ "The Rust Project Developers" ]; @@ -1189,13 +1222,17 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.33"; + version = "1.2.37"; edition = "2018"; - sha256 = "0pwv1ql0gpvacwdn44643adr0s0q8p575pbp4xz5mfi26a0giq1y"; + sha256 = "0i5xlxsgd7jif1ry9k3ysnpsmbrckapqwq8d8l5vhkj0qs4ka6b5"; authors = [ "Alex Crichton " ]; dependencies = [ + { + name = "find-msvc-tools"; + packageId = "find-msvc-tools"; + } { name = "jobserver"; packageId = "jobserver"; @@ -1253,16 +1290,10 @@ rec { }; "chrono" = rec { crateName = "chrono"; - version = "0.4.41"; + version = "0.4.42"; edition = "2021"; - sha256 = "0k8wy2mph0mgipq28vv3wirivhb31pqs7jyid0dzjivz0i9djsf4"; + sha256 = "1lp8iz9js9jwxw0sj8yi59v54lgvwdvm49b9wch77f25sfym4l0l"; dependencies = [ - { - name = "android-tzdata"; - packageId = "android-tzdata"; - optional = true; - target = { target, features }: ("android" == target."os" or null); - } { name = "iana-time-zone"; packageId = "iana-time-zone"; @@ -1283,15 +1314,14 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.2.0"; optional = true; target = { target, features }: (target."windows" or false); } ]; features = { - "android-tzdata" = [ "dep:android-tzdata" ]; "arbitrary" = [ "dep:arbitrary" ]; - "clock" = [ "winapi" "iana-time-zone" "android-tzdata" "now" ]; + "clock" = [ "winapi" "iana-time-zone" "now" ]; "default" = [ "clock" "std" "oldtime" "wasmbind" ]; "iana-time-zone" = [ "dep:iana-time-zone" ]; "js-sys" = [ "dep:js-sys" ]; @@ -1310,7 +1340,7 @@ rec { "winapi" = [ "windows-link" ]; "windows-link" = [ "dep:windows-link" ]; }; - resolvedDefaultFeatures = [ "alloc" "android-tzdata" "clock" "iana-time-zone" "now" "serde" "std" "winapi" "windows-link" ]; + resolvedDefaultFeatures = [ "alloc" "clock" "iana-time-zone" "now" "serde" "std" "winapi" "windows-link" ]; }; "cipher" = rec { crateName = "cipher"; @@ -1405,10 +1435,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.45"; + version = "4.5.47"; edition = "2021"; crateBin = []; - sha256 = "0663m85dd0aq1g3mkwz5b8pkjv4f5k2smlz7bagib4iqf15fgh0z"; + sha256 = "0c99f6m4a7d4ffgahid49h0ci2pv4ccdf417f76nl4wx5n801b3y"; dependencies = [ { name = "clap_builder"; @@ -1447,9 +1477,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.44"; + version = "4.5.47"; edition = "2021"; - sha256 = "1a48x3c9q1l7r6wbgy71mq6kfsihpqzxsnbaaamcgwvp88hz9rxk"; + sha256 = "1mp1f0fz6wp9v87jc9372lg6r4514ja1l8cazf25hfz7a3vvpn9a"; dependencies = [ { name = "anstream"; @@ -1486,9 +1516,9 @@ rec { }; "clap_derive" = rec { crateName = "clap_derive"; - version = "4.5.45"; + version = "4.5.47"; edition = "2021"; - sha256 = "1xir8wn5d10wpmnzmzjf2k1ib7j5mmzsm6v3yap6qlvx1axk3jql"; + sha256 = "174z9g13s85la2nmi8gv8ssjwz77im3rqg5isiinw6hg1fp7xzdv"; procMacro = true; dependencies = [ { @@ -1555,6 +1585,20 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "const-oid" = rec { + crateName = "const-oid"; + version = "0.9.6"; + edition = "2021"; + sha256 = "1y0jnqaq7p2wvspnx7qj76m7hjcqpz73qzvr9l2p9n2s51vr6if2"; + libName = "const_oid"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + }; + resolvedDefaultFeatures = [ "db" "std" ]; + }; "const_format" = rec { crateName = "const_format"; version = "0.2.34"; @@ -1842,12 +1886,12 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "crypto-common" = rec { - crateName = "crypto-common"; - version = "0.1.6"; - edition = "2018"; - sha256 = "1cvby95a6xg7kxdz5ln3rl9xh66nz66w46mm3g56ri1z5x815yqv"; - libName = "crypto_common"; + "crypto-bigint" = rec { + crateName = "crypto-bigint"; + version = "0.5.5"; + edition = "2021"; + sha256 = "0xmbdff3g6ii5sbxjxc31xfkv9lrmyril4arh3dzckd4gjsjzj8d"; + libName = "crypto_bigint"; authors = [ "RustCrypto Developers" ]; @@ -1855,60 +1899,87 @@ rec { { name = "generic-array"; packageId = "generic-array"; - features = [ "more_lengths" ]; + optional = true; } { - name = "typenum"; - packageId = "typenum"; + name = "rand_core"; + packageId = "rand_core 0.6.4"; + optional = true; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + features = [ "std" ]; } ]; features = { - "getrandom" = [ "rand_core/getrandom" ]; + "alloc" = [ "serdect?/alloc" ]; + "default" = [ "rand" ]; + "der" = [ "dep:der" ]; + "generic-array" = [ "dep:generic-array" ]; + "rand" = [ "rand_core/std" ]; "rand_core" = [ "dep:rand_core" ]; + "rlp" = [ "dep:rlp" ]; + "serde" = [ "dep:serdect" ]; + "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "std" ]; + resolvedDefaultFeatures = [ "generic-array" "rand_core" "zeroize" ]; }; - "darling 0.20.11" = rec { - crateName = "darling"; - version = "0.20.11"; - edition = "2021"; - sha256 = "1vmlphlrlw4f50z16p4bc9p5qwdni1ba95qmxfrrmzs6dh8lczzw"; + "crypto-common" = rec { + crateName = "crypto-common"; + version = "0.1.6"; + edition = "2018"; + sha256 = "1cvby95a6xg7kxdz5ln3rl9xh66nz66w46mm3g56ri1z5x815yqv"; + libName = "crypto_common"; authors = [ - "Ted Driggs " + "RustCrypto Developers" ]; dependencies = [ { - name = "darling_core"; - packageId = "darling_core 0.20.11"; + name = "generic-array"; + packageId = "generic-array"; + features = [ "more_lengths" ]; } { - name = "darling_macro"; - packageId = "darling_macro 0.20.11"; + name = "typenum"; + packageId = "typenum"; } ]; features = { - "default" = [ "suggestions" ]; - "diagnostics" = [ "darling_core/diagnostics" ]; - "suggestions" = [ "darling_core/suggestions" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "rand_core" = [ "dep:rand_core" ]; }; - resolvedDefaultFeatures = [ "default" "suggestions" ]; + resolvedDefaultFeatures = [ "std" ]; }; - "darling 0.21.2" = rec { + "darling" = rec { crateName = "darling"; - version = "0.21.2"; + version = "0.21.3"; edition = "2021"; - sha256 = "0w05fq6kl16avbgkgwxg5c8myj397539gq337r1x1hr2s8yhni08"; + sha256 = "1h281ah78pz05450r71h3gwm2n24hy8yngbz58g426l4j1q37pww"; authors = [ "Ted Driggs " ]; dependencies = [ { name = "darling_core"; - packageId = "darling_core 0.21.2"; + packageId = "darling_core"; } { name = "darling_macro"; - packageId = "darling_macro 0.21.2"; + packageId = "darling_macro"; } ]; features = { @@ -1919,11 +1990,11 @@ rec { }; resolvedDefaultFeatures = [ "default" "suggestions" ]; }; - "darling_core 0.20.11" = rec { + "darling_core" = rec { crateName = "darling_core"; - version = "0.20.11"; + version = "0.21.3"; edition = "2021"; - sha256 = "0bj1af6xl4ablnqbgn827m43b8fiicgv180749f5cphqdmcvj00d"; + sha256 = "193ya45qgac0a4siwghk0bl8im8h89p3cald7kw8ag3yrmg1jiqj"; authors = [ "Ted Driggs " ]; @@ -1956,67 +2027,51 @@ rec { } ]; features = { + "serde" = [ "dep:serde" ]; "strsim" = [ "dep:strsim" ]; "suggestions" = [ "strsim" ]; }; resolvedDefaultFeatures = [ "strsim" "suggestions" ]; }; - "darling_core 0.21.2" = rec { - crateName = "darling_core"; - version = "0.21.2"; + "darling_macro" = rec { + crateName = "darling_macro"; + version = "0.21.3"; edition = "2021"; - sha256 = "0zmzz0czsc8590n4n6isnii5d8da0gm6hnkinyqlm818ph97jnyj"; + sha256 = "10ac85n4lnx3rmf5rw8lijl2c0sbl6ghcpgfmzh0s26ihbghi0yk"; + procMacro = true; authors = [ "Ted Driggs " ]; dependencies = [ { - name = "fnv"; - packageId = "fnv"; - } - { - name = "ident_case"; - packageId = "ident_case"; - } - { - name = "proc-macro2"; - packageId = "proc-macro2"; + name = "darling_core"; + packageId = "darling_core"; } { name = "quote"; packageId = "quote"; } - { - name = "strsim"; - packageId = "strsim"; - optional = true; - } { name = "syn"; packageId = "syn 2.0.106"; - features = [ "full" "extra-traits" ]; } ]; - features = { - "serde" = [ "dep:serde" ]; - "strsim" = [ "dep:strsim" ]; - "suggestions" = [ "strsim" ]; - }; - resolvedDefaultFeatures = [ "strsim" "suggestions" ]; + }; - "darling_macro 0.20.11" = rec { - crateName = "darling_macro"; - version = "0.20.11"; - edition = "2021"; - sha256 = "1bbfbc2px6sj1pqqq97bgqn6c8xdnb2fmz66f7f40nrqrcybjd7w"; + "delegate" = rec { + crateName = "delegate"; + version = "0.13.4"; + edition = "2018"; + sha256 = "0sz2gl4079alymdws9s3zakgm6y4n76kay8slqxnm0vcylnahy31"; procMacro = true; authors = [ - "Ted Driggs " + "Godfrey Chan " + "Jakub Beránek " ]; dependencies = [ { - name = "darling_core"; - packageId = "darling_core 0.20.11"; + name = "proc-macro2"; + packageId = "proc-macro2"; } { name = "quote"; @@ -2025,44 +2080,70 @@ rec { { name = "syn"; packageId = "syn 2.0.106"; + features = [ "full" "visit-mut" ]; } ]; }; - "darling_macro 0.21.2" = rec { - crateName = "darling_macro"; - version = "0.21.2"; + "der" = rec { + crateName = "der"; + version = "0.7.10"; edition = "2021"; - sha256 = "0cfmv5ks4fjfr2w23zvhjzkkc300ah1x0qkf6blcic3zxadln5ff"; - procMacro = true; + sha256 = "1jyxacyxdx6mxbkfw99jz59dzvcd9k17rq01a7xvn1dr6wl87hg7"; authors = [ - "Ted Driggs " + "RustCrypto Developers" ]; dependencies = [ { - name = "darling_core"; - packageId = "darling_core 0.21.2"; + name = "const-oid"; + packageId = "const-oid"; + optional = true; } { - name = "quote"; - packageId = "quote"; + name = "der_derive"; + packageId = "der_derive"; + optional = true; } { - name = "syn"; - packageId = "syn 2.0.106"; + name = "flagset"; + packageId = "flagset"; + optional = true; + } + { + name = "pem-rfc7468"; + packageId = "pem-rfc7468"; + optional = true; + features = [ "alloc" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; } ]; - + features = { + "alloc" = [ "zeroize?/alloc" ]; + "arbitrary" = [ "dep:arbitrary" "const-oid?/arbitrary" "std" ]; + "bytes" = [ "dep:bytes" "alloc" ]; + "derive" = [ "dep:der_derive" ]; + "flagset" = [ "dep:flagset" ]; + "oid" = [ "dep:const-oid" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "zeroize" ]; + "std" = [ "alloc" ]; + "time" = [ "dep:time" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "derive" "flagset" "oid" "pem" "std" "zeroize" ]; }; - "delegate" = rec { - crateName = "delegate"; - version = "0.13.4"; - edition = "2018"; - sha256 = "0sz2gl4079alymdws9s3zakgm6y4n76kay8slqxnm0vcylnahy31"; + "der_derive" = rec { + crateName = "der_derive"; + version = "0.7.3"; + edition = "2021"; + sha256 = "065d2wy7zd0dank99hh58l5x7lv50hxnr7j6f3sphlb7i4ihjd40"; procMacro = true; authors = [ - "Godfrey Chan " - "Jakub Beránek " + "RustCrypto Developers" ]; dependencies = [ { @@ -2076,16 +2157,16 @@ rec { { name = "syn"; packageId = "syn 2.0.106"; - features = [ "full" "visit-mut" ]; + features = [ "extra-traits" ]; } ]; }; "deranged" = rec { crateName = "deranged"; - version = "0.4.0"; + version = "0.5.3"; edition = "2021"; - sha256 = "13h6skwk411wzhf1l9l7d3yz5y6vg9d7s3dwhhb4a942r88nm7lw"; + sha256 = "1k473y8lzjac956dm3s1cs2rz364py9zd52y9fkbanws8b6vqc6n"; authors = [ "Jacob Pratt " ]; @@ -2098,7 +2179,6 @@ rec { } ]; features = { - "default" = [ "std" ]; "macros" = [ "dep:deranged-macros" ]; "num" = [ "dep:num-traits" ]; "powerfmt" = [ "dep:powerfmt" ]; @@ -2107,9 +2187,8 @@ rec { "rand08" = [ "dep:rand08" ]; "rand09" = [ "dep:rand09" ]; "serde" = [ "dep:serde" ]; - "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "powerfmt" "std" ]; + resolvedDefaultFeatures = [ "default" "powerfmt" ]; }; "derive_more" = rec { crateName = "derive_more"; @@ -2238,6 +2317,11 @@ rec { packageId = "block-buffer"; optional = true; } + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } { name = "crypto-common"; packageId = "crypto-common"; @@ -2262,7 +2346,7 @@ rec { "std" = [ "alloc" "crypto-common/std" ]; "subtle" = [ "dep:subtle" ]; }; - resolvedDefaultFeatures = [ "alloc" "block-buffer" "core-api" "default" "mac" "std" "subtle" ]; + resolvedDefaultFeatures = [ "alloc" "block-buffer" "const-oid" "core-api" "default" "mac" "oid" "std" "subtle" ]; }; "displaydoc" = rec { crateName = "displaydoc"; @@ -2351,6 +2435,79 @@ rec { ]; }; + "ecdsa" = rec { + crateName = "ecdsa"; + version = "0.16.9"; + edition = "2021"; + sha256 = "1jhb0bcbkaz4001sdmfyv8ajrv8a1cg7z7aa5myrd4jjbhmz69zf"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + optional = true; + } + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "digest" "sec1" ]; + } + { + name = "rfc6979"; + packageId = "rfc6979"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + features = [ "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "dev" ]; + } + ]; + features = { + "alloc" = [ "elliptic-curve/alloc" "signature/alloc" "spki/alloc" ]; + "arithmetic" = [ "elliptic-curve/arithmetic" ]; + "default" = [ "digest" ]; + "der" = [ "dep:der" ]; + "dev" = [ "arithmetic" "digest" "elliptic-curve/dev" "hazmat" ]; + "digest" = [ "dep:digest" "signature/digest" ]; + "pem" = [ "elliptic-curve/pem" "pkcs8" ]; + "pkcs8" = [ "digest" "elliptic-curve/pkcs8" "der" ]; + "rfc6979" = [ "dep:rfc6979" ]; + "serde" = [ "elliptic-curve/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "sha2" = [ "dep:sha2" ]; + "signing" = [ "arithmetic" "digest" "hazmat" "rfc6979" ]; + "spki" = [ "dep:spki" ]; + "std" = [ "alloc" "elliptic-curve/std" "signature/std" ]; + "verifying" = [ "arithmetic" "digest" "hazmat" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "der" "digest" "hazmat" "pem" "pkcs8" "rfc6979" "signing" "spki" "std" "verifying" ]; + }; "educe" = rec { crateName = "educe"; version = "0.6.0"; @@ -2408,31 +2565,129 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" "use_std" ]; }; - "encoding_rs" = rec { - crateName = "encoding_rs"; - version = "0.8.35"; - edition = "2018"; - sha256 = "1wv64xdrr9v37rqqdjsyb8l8wzlcbab80ryxhrszvnj59wy0y0vm"; + "elliptic-curve" = rec { + crateName = "elliptic-curve"; + version = "0.13.8"; + edition = "2021"; + sha256 = "0ixx4brgnzi61z29r3g1606nh2za88hzyz8c5r3p6ydzhqq09rmm"; + libName = "elliptic_curve"; authors = [ - "Henri Sivonen " + "RustCrypto Developers" ]; dependencies = [ { - name = "cfg-if"; - packageId = "cfg-if"; + name = "base16ct"; + packageId = "base16ct"; } - ]; - features = { - "any_all_workaround" = [ "dep:any_all_workaround" ]; - "default" = [ "alloc" ]; - "fast-legacy-encode" = [ "fast-hangul-encode" "fast-hanja-encode" "fast-kanji-encode" "fast-gb-hanzi-encode" "fast-big5-hanzi-encode" ]; - "serde" = [ "dep:serde" ]; - "simd-accel" = [ "any_all_workaround" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" ]; - }; - "enquote" = rec { - crateName = "enquote"; + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + usesDefaultFeatures = false; + features = [ "rand_core" "generic-array" "zeroize" ]; + } + { + name = "digest"; + packageId = "digest"; + optional = true; + } + { + name = "ff"; + packageId = "ff"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "generic-array"; + packageId = "generic-array"; + usesDefaultFeatures = false; + features = [ "zeroize" ]; + } + { + name = "group"; + packageId = "group"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "pem-rfc7468"; + packageId = "pem-rfc7468"; + optional = true; + features = [ "alloc" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sec1"; + packageId = "sec1"; + optional = true; + features = [ "subtle" "zeroize" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "base16ct/alloc" "ff?/alloc" "group?/alloc" "pkcs8?/alloc" "sec1?/alloc" "zeroize/alloc" ]; + "arithmetic" = [ "group" ]; + "bits" = [ "arithmetic" "ff/bits" "dep:tap" ]; + "default" = [ "arithmetic" ]; + "dev" = [ "arithmetic" "dep:hex-literal" "pem" "pkcs8" ]; + "digest" = [ "dep:digest" ]; + "ecdh" = [ "arithmetic" "digest" "dep:hkdf" ]; + "ff" = [ "dep:ff" ]; + "group" = [ "dep:group" "ff" ]; + "hash2curve" = [ "arithmetic" "digest" ]; + "jwk" = [ "dep:base64ct" "dep:serde_json" "alloc" "serde" "zeroize/alloc" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "arithmetic" "pkcs8" "sec1/pem" ]; + "pkcs8" = [ "dep:pkcs8" "sec1" ]; + "sec1" = [ "dep:sec1" ]; + "serde" = [ "dep:serdect" "alloc" "pkcs8" "sec1/serde" ]; + "std" = [ "alloc" "rand_core/std" "pkcs8?/std" "sec1?/std" ]; + "voprf" = [ "digest" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "digest" "ff" "group" "hazmat" "pem" "pkcs8" "sec1" "std" ]; + }; + "encoding_rs" = rec { + crateName = "encoding_rs"; + version = "0.8.35"; + edition = "2018"; + sha256 = "1wv64xdrr9v37rqqdjsyb8l8wzlcbab80ryxhrszvnj59wy0y0vm"; + authors = [ + "Henri Sivonen " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + ]; + features = { + "any_all_workaround" = [ "dep:any_all_workaround" ]; + "default" = [ "alloc" ]; + "fast-legacy-encode" = [ "fast-hangul-encode" "fast-hanja-encode" "fast-kanji-encode" "fast-gb-hanzi-encode" "fast-big5-hanzi-encode" ]; + "serde" = [ "dep:serde" ]; + "simd-accel" = [ "any_all_workaround" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" ]; + }; + "enquote" = rec { + crateName = "enquote"; version = "1.1.0"; edition = "2018"; sha256 = "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6"; @@ -2501,9 +2756,9 @@ rec { }; "errno" = rec { crateName = "errno"; - version = "0.3.13"; + version = "0.3.14"; edition = "2018"; - sha256 = "1bd5g3srn66zr3bspac0150bvpg1s7zi6zwhwhlayivciz12m3kp"; + sha256 = "1szgccmh8vgryqyadg8xd58mnwwicf39zmin3bsn63df2wbbgjir"; authors = [ "Chris Wong " "Dan Gohman " @@ -2529,7 +2784,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_System_Diagnostics_Debug" ]; } @@ -2609,13 +2864,14 @@ rec { }; "fancy-regex" = rec { crateName = "fancy-regex"; - version = "0.13.0"; + version = "0.16.2"; edition = "2018"; - sha256 = "1wjbqjsdj8fkq6z2i9llq25iaqzd9f208vxnwg8mdbr2ba1lc7jk"; + sha256 = "0vy4c012f82xcg3gs068mq110zhsrnajh58fmq1jxr7vaijhb2wr"; libName = "fancy_regex"; authors = [ "Raph Levien " "Robin Stocker " + "Keith Hall " ]; dependencies = [ { @@ -2659,6 +2915,48 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "ff" = rec { + crateName = "ff"; + version = "0.13.1"; + edition = "2021"; + sha256 = "14v3bc6q24gbcjnxjfbq2dddgf4as2z2gd4mj35gjlrncpxhpdf0"; + authors = [ + "Sean Bowe " + "Jack Grigg " + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + features = { + "bits" = [ "bitvec" ]; + "bitvec" = [ "dep:bitvec" ]; + "byteorder" = [ "dep:byteorder" ]; + "default" = [ "bits" "std" ]; + "derive" = [ "byteorder" "ff_derive" ]; + "derive_bits" = [ "bits" "ff_derive/bits" ]; + "ff_derive" = [ "dep:ff_derive" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; + "find-msvc-tools" = rec { + crateName = "find-msvc-tools"; + version = "0.1.1"; + edition = "2018"; + sha256 = "0b8rhghgjssjw9q8a3gg7f9kl8zhy9d7nqsc4s4nc52dyqq9knbz"; + libName = "find_msvc_tools"; + + }; "fixedbitset" = rec { crateName = "fixedbitset"; version = "0.5.7"; @@ -2672,6 +2970,18 @@ rec { "serde" = [ "dep:serde" ]; }; }; + "flagset" = rec { + crateName = "flagset"; + version = "0.4.7"; + edition = "2021"; + sha256 = "1zplx30g76kl5la3ayl9ns5p3diqd9zphbcggqcm4nm7411q5b5p"; + authors = [ + "Nathaniel McCallum " + ]; + features = { + "serde" = [ "dep:serde" ]; + }; + }; "flate2" = rec { crateName = "flate2"; version = "1.1.2"; @@ -3108,6 +3418,12 @@ rec { name = "typenum"; packageId = "typenum"; } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } ]; buildDependencies = [ { @@ -3119,7 +3435,7 @@ rec { "serde" = [ "dep:serde" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "more_lengths" ]; + resolvedDefaultFeatures = [ "more_lengths" "zeroize" ]; }; "getrandom 0.2.16" = rec { crateName = "getrandom"; @@ -3155,6 +3471,7 @@ rec { "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; "wasm-bindgen" = [ "dep:wasm-bindgen" ]; }; + resolvedDefaultFeatures = [ "std" ]; }; "getrandom 0.3.3" = rec { crateName = "getrandom"; @@ -3225,7 +3542,7 @@ rec { } { name = "wasi"; - packageId = "wasi 0.14.2+wasi-0.2.4"; + packageId = "wasi 0.14.7+wasi-0.2.4"; usesDefaultFeatures = false; target = { target, features }: (("wasm32" == target."arch" or null) && ("wasi" == target."os" or null) && ("p2" == target."env" or null)); } @@ -3341,6 +3658,42 @@ rec { }; resolvedDefaultFeatures = [ "default" "futures" "futures-channel" "futures-core" ]; }; + "group" = rec { + crateName = "group"; + version = "0.13.0"; + edition = "2021"; + sha256 = "0qqs2p5vqnv3zvq9mfjkmw3qlvgqb0c3cm6p33srkh7pc9sfzygh"; + authors = [ + "Sean Bowe " + "Jack Grigg " + ]; + dependencies = [ + { + name = "ff"; + packageId = "ff"; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "alloc" ]; + "memuse" = [ "dep:memuse" ]; + "rand" = [ "dep:rand" ]; + "rand_xorshift" = [ "dep:rand_xorshift" ]; + "tests" = [ "alloc" "rand" "rand_xorshift" ]; + "wnaf-memuse" = [ "alloc" "memuse" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "h2" = rec { crateName = "h2"; version = "0.4.12"; @@ -3456,64 +3809,6 @@ rec { }; resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; - "headers" = rec { - crateName = "headers"; - version = "0.4.1"; - edition = "2018"; - sha256 = "1sr4zygaq1b2f0k7b5l8vx5vp05wvd82w7vpavgvr52xvdd4scdk"; - authors = [ - "Sean McArthur " - ]; - dependencies = [ - { - name = "base64"; - packageId = "base64"; - } - { - name = "bytes"; - packageId = "bytes"; - } - { - name = "headers-core"; - packageId = "headers-core"; - } - { - name = "http"; - packageId = "http"; - } - { - name = "httpdate"; - packageId = "httpdate"; - } - { - name = "mime"; - packageId = "mime"; - } - { - name = "sha1"; - packageId = "sha1"; - } - ]; - features = { - }; - }; - "headers-core" = rec { - crateName = "headers-core"; - version = "0.3.0"; - edition = "2015"; - sha256 = "1r1w80i2bhmyh8s5mjr2dz6baqlrm6cak6yvzm4jq96lacjs5d2l"; - libName = "headers_core"; - authors = [ - "Sean McArthur " - ]; - dependencies = [ - { - name = "http"; - packageId = "http"; - } - ]; - - }; "heck" = rec { crateName = "heck"; version = "0.5.0"; @@ -3558,6 +3853,7 @@ rec { features = { "std" = [ "digest/std" ]; }; + resolvedDefaultFeatures = [ "reset" ]; }; "home" = rec { crateName = "home"; @@ -3594,7 +3890,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; target = { target, features }: ("windows" == target."os" or null); } ]; @@ -3825,31 +4121,15 @@ rec { "server" = [ "dep:httpdate" "dep:pin-project-lite" "dep:smallvec" ]; "tracing" = [ "dep:tracing" ]; }; - resolvedDefaultFeatures = [ "client" "default" "http1" "http2" "server" ]; + resolvedDefaultFeatures = [ "client" "default" "full" "http1" "http2" "server" ]; }; - "hyper-http-proxy" = rec { - crateName = "hyper-http-proxy"; - version = "1.1.0"; + "hyper-rustls" = rec { + crateName = "hyper-rustls"; + version = "0.27.7"; edition = "2021"; - sha256 = "023w7w9si4zs5phfj30g3dkkk713ipix10dsqj5h443mwfhv1m3s"; - libName = "hyper_http_proxy"; - authors = [ - "MetalBear Tech LTD " - ]; + sha256 = "0n6g8998szbzhnvcs1b7ibn745grxiqmlpg53xz206v826v3xjg3"; + libName = "hyper_rustls"; dependencies = [ - { - name = "bytes"; - packageId = "bytes"; - } - { - name = "futures-util"; - packageId = "futures-util"; - usesDefaultFeatures = false; - } - { - name = "headers"; - packageId = "headers"; - } { name = "http"; packageId = "http"; @@ -3857,37 +4137,41 @@ rec { { name = "hyper"; packageId = "hyper"; - features = [ "client" ]; - } - { - name = "hyper-rustls"; - packageId = "hyper-rustls"; - optional = true; usesDefaultFeatures = false; } { name = "hyper-util"; packageId = "hyper-util"; - features = [ "client" "client-legacy" "tokio" ]; + usesDefaultFeatures = false; + features = [ "client-legacy" "tokio" ]; } { - name = "pin-project-lite"; - packageId = "pin-project-lite"; + name = "log"; + packageId = "log"; + optional = true; + } + { + name = "rustls"; + packageId = "rustls"; + usesDefaultFeatures = false; } { name = "rustls-native-certs"; - packageId = "rustls-native-certs 0.7.3"; + packageId = "rustls-native-certs"; optional = true; } + { + name = "rustls-pki-types"; + packageId = "rustls-pki-types"; + rename = "pki-types"; + } { name = "tokio"; packageId = "tokio"; - features = [ "io-std" "io-util" ]; } { name = "tokio-rustls"; packageId = "tokio-rustls"; - optional = true; usesDefaultFeatures = false; } { @@ -3896,108 +4180,22 @@ rec { } ]; devDependencies = [ - { - name = "hyper"; - packageId = "hyper"; - features = [ "client" "http1" ]; - } { name = "hyper-util"; packageId = "hyper-util"; - features = [ "client" "client-legacy" "http1" "tokio" ]; + usesDefaultFeatures = false; + features = [ "server-auto" ]; + } + { + name = "rustls"; + packageId = "rustls"; + usesDefaultFeatures = false; + features = [ "tls12" ]; } { name = "tokio"; packageId = "tokio"; - features = [ "full" ]; - } - ]; - features = { - "__rustls" = [ "dep:hyper-rustls" "dep:tokio-rustls" "__tls" ]; - "default" = [ "default-tls" ]; - "default-tls" = [ "rustls-tls-native-roots" ]; - "hyper-tls" = [ "dep:hyper-tls" ]; - "native-tls" = [ "dep:native-tls" "tokio-native-tls" "hyper-tls" "__tls" ]; - "native-tls-vendored" = [ "native-tls" "tokio-native-tls?/vendored" ]; - "rustls-tls-native-roots" = [ "dep:rustls-native-certs" "__rustls" "hyper-rustls/rustls-native-certs" ]; - "rustls-tls-webpki-roots" = [ "dep:webpki-roots" "__rustls" "hyper-rustls/webpki-roots" ]; - "tokio-native-tls" = [ "dep:tokio-native-tls" ]; - }; - resolvedDefaultFeatures = [ "__rustls" "__tls" "rustls-tls-native-roots" ]; - }; - "hyper-rustls" = rec { - crateName = "hyper-rustls"; - version = "0.27.7"; - edition = "2021"; - sha256 = "0n6g8998szbzhnvcs1b7ibn745grxiqmlpg53xz206v826v3xjg3"; - libName = "hyper_rustls"; - dependencies = [ - { - name = "http"; - packageId = "http"; - } - { - name = "hyper"; - packageId = "hyper"; - usesDefaultFeatures = false; - } - { - name = "hyper-util"; - packageId = "hyper-util"; - usesDefaultFeatures = false; - features = [ "client-legacy" "tokio" ]; - } - { - name = "log"; - packageId = "log"; - optional = true; - } - { - name = "rustls"; - packageId = "rustls"; - usesDefaultFeatures = false; - } - { - name = "rustls-native-certs"; - packageId = "rustls-native-certs 0.8.1"; - optional = true; - } - { - name = "rustls-pki-types"; - packageId = "rustls-pki-types"; - rename = "pki-types"; - } - { - name = "tokio"; - packageId = "tokio"; - } - { - name = "tokio-rustls"; - packageId = "tokio-rustls"; - usesDefaultFeatures = false; - } - { - name = "tower-service"; - packageId = "tower-service"; - } - ]; - devDependencies = [ - { - name = "hyper-util"; - packageId = "hyper-util"; - usesDefaultFeatures = false; - features = [ "server-auto" ]; - } - { - name = "rustls"; - packageId = "rustls"; - usesDefaultFeatures = false; - features = [ "tls12" ]; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "io-std" "macros" "net" "rt-multi-thread" ]; + features = [ "io-std" "macros" "net" "rt-multi-thread" ]; } ]; features = { @@ -4071,9 +4269,9 @@ rec { }; "hyper-util" = rec { crateName = "hyper-util"; - version = "0.1.16"; + version = "0.1.17"; edition = "2021"; - sha256 = "0pmw8gqkqjnsdrxdy5wd5q8z1gh7caxqk2an7b4s53byghkhb6wd"; + sha256 = "1a5fcnz0alrg4lx9xf6ja66ihaab58jnm5msnky804wg39cras9w"; libName = "hyper_util"; authors = [ "Sean McArthur " @@ -4200,9 +4398,9 @@ rec { }; "iana-time-zone" = rec { crateName = "iana-time-zone"; - version = "0.1.63"; + version = "0.1.64"; edition = "2021"; - sha256 = "1n171f5lbc7bryzmp1h30zw86zbvl5480aq02z92lcdwvvjikjdh"; + sha256 = "1yz980fmhaq9bdkasz35z63az37ci6kzzfhya83kgdqba61pzr9k"; libName = "iana_time_zone"; authors = [ "Andrew Straw " @@ -4641,9 +4839,9 @@ rec { }; "indexmap" = rec { crateName = "indexmap"; - version = "2.10.0"; + version = "2.11.3"; edition = "2021"; - sha256 = "0qd6g26gxzl6dbf132w48fa8rr95glly3jhbk90i29726d9xhk7y"; + sha256 = "1hqs931f1sd3r92zj77ji9bs75f20amnj0s3aqas9zqkym29h4cj"; dependencies = [ { name = "equivalent"; @@ -4662,7 +4860,8 @@ rec { "default" = [ "std" ]; "quickcheck" = [ "dep:quickcheck" ]; "rayon" = [ "dep:rayon" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "dep:serde_core" "dep:serde" ]; + "sval" = [ "dep:sval" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; @@ -4896,9 +5095,9 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.77"; + version = "0.3.78"; edition = "2021"; - sha256 = "13x2qcky5l22z4xgivi59xhjjx4kxir1zg7gcj0f1ijzd4yg7yhw"; + sha256 = "0f17vdkpbarm0qlbqb0p1fyiy4l9bs62zvw3fv0ywb29g0shc2qc"; libName = "js_sys"; authors = [ "The wasm-bindgen Developers" @@ -5033,10 +5232,10 @@ rec { }; "k8s-openapi" = rec { crateName = "k8s-openapi"; - version = "0.25.0"; + version = "0.26.0"; edition = "2021"; - links = "k8s-openapi-0.25.0"; - sha256 = "1cphvicl9hq4nbp2pbzdcvz9r0f9kzwbqzgp383hl6mfawds8q5a"; + links = "k8s-openapi-0.26.0"; + sha256 = "14m6i7g6w8lh1rnc19f2c31cvf2ia2vzmggsmzn5p4ba6bahcgyi"; libName = "k8s_openapi"; authors = [ "Arnav Singh " @@ -5075,10 +5274,10 @@ rec { features = { "default" = [ "std" ]; "earliest" = [ "v1_30" ]; - "latest" = [ "v1_33" ]; + "latest" = [ "v1_34" ]; "schemars" = [ "dep:schemars" ]; }; - resolvedDefaultFeatures = [ "schemars" "v1_33" ]; + resolvedDefaultFeatures = [ "schemars" "v1_34" ]; }; "k8s-version" = rec { crateName = "k8s-version"; @@ -5086,9 +5285,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; libName = "k8s_version"; authors = [ @@ -5097,7 +5296,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.21.2"; + packageId = "darling"; optional = true; } { @@ -5106,7 +5305,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } ]; features = { @@ -5135,7 +5334,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } ]; @@ -5168,9 +5367,9 @@ rec { }; "kube" = rec { crateName = "kube"; - version = "1.1.0"; - edition = "2021"; - sha256 = "0lcz9sm83j06i77sp6idbq7y06hd64a1wwkj2g0w7x7a9dk9i3vp"; + version = "2.0.1"; + edition = "2024"; + sha256 = "0kh1m9w0nhd3fai4pcshl7z5rx0s83zvcxa51v12ql26d85vprs8"; authors = [ "clux " "Natalie Klestrup Röijezon " @@ -5241,9 +5440,9 @@ rec { }; "kube-client" = rec { crateName = "kube-client"; - version = "1.1.0"; - edition = "2021"; - sha256 = "13fv32vhljjxqgfmzciwanh7wsglzil2rsn81b8dx53fbfw7dckw"; + version = "2.0.1"; + edition = "2024"; + sha256 = "0dksaqk698bciyda6k8ss9lr92bqyb3pygddzna54asd31xdb1s9"; libName = "kube_client"; authors = [ "clux " @@ -5304,12 +5503,6 @@ rec { optional = true; features = [ "client" "http1" ]; } - { - name = "hyper-http-proxy"; - packageId = "hyper-http-proxy"; - optional = true; - usesDefaultFeatures = false; - } { name = "hyper-rustls"; packageId = "hyper-rustls"; @@ -5447,12 +5640,10 @@ rec { "home" = [ "dep:home" ]; "http-body" = [ "dep:http-body" ]; "http-body-util" = [ "dep:http-body-util" ]; - "http-proxy" = [ "hyper-http-proxy" ]; + "http-proxy" = [ "hyper-util/client-proxy" ]; "hyper" = [ "dep:hyper" ]; - "hyper-http-proxy" = [ "dep:hyper-http-proxy" ]; "hyper-openssl" = [ "dep:hyper-openssl" ]; "hyper-rustls" = [ "dep:hyper-rustls" ]; - "hyper-socks2" = [ "dep:hyper-socks2" ]; "hyper-timeout" = [ "dep:hyper-timeout" ]; "hyper-util" = [ "dep:hyper-util" ]; "jsonpatch" = [ "kube-core/jsonpatch" ]; @@ -5465,9 +5656,9 @@ rec { "pem" = [ "dep:pem" ]; "ring" = [ "hyper-rustls?/ring" ]; "rustls" = [ "dep:rustls" ]; - "rustls-tls" = [ "rustls" "hyper-rustls" "hyper-http-proxy?/rustls-tls-native-roots" ]; + "rustls-tls" = [ "rustls" "hyper-rustls" ]; "serde_yaml" = [ "dep:serde_yaml" ]; - "socks5" = [ "hyper-socks2" ]; + "socks5" = [ "hyper-util/client-proxy" ]; "tame-oauth" = [ "dep:tame-oauth" ]; "tokio" = [ "dep:tokio" ]; "tokio-tungstenite" = [ "dep:tokio-tungstenite" ]; @@ -5482,9 +5673,9 @@ rec { }; "kube-core" = rec { crateName = "kube-core"; - version = "1.1.0"; - edition = "2021"; - sha256 = "0q09yvzbh840mn3q66r73wjp4s60c3npw0bnlkr3207bbps6zig3"; + version = "2.0.1"; + edition = "2024"; + sha256 = "0wzfc1q78s5a3k1gfa6i8xjd9gmssbnw0f1mdsh23dvv1rvvnjwi"; libName = "kube_core"; authors = [ "clux " @@ -5564,9 +5755,9 @@ rec { }; "kube-derive" = rec { crateName = "kube-derive"; - version = "1.1.0"; - edition = "2021"; - sha256 = "15frbch851xpi5zv37szfhkcrgbfd4hfxzcw60l8clwpqg0wi7q7"; + version = "2.0.1"; + edition = "2024"; + sha256 = "1ljhw6xmrj1v8ni144bpxrifwzbrrn0qnl5kd8m7fdz15cjyiph3"; procMacro = true; libName = "kube_derive"; authors = [ @@ -5577,7 +5768,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.20.11"; + packageId = "darling"; } { name = "proc-macro2"; @@ -5613,9 +5804,9 @@ rec { }; "kube-runtime" = rec { crateName = "kube-runtime"; - version = "1.1.0"; - edition = "2021"; - sha256 = "1p2021s6nlxwiivbk37lrjcki740070a3y5xzr465pzs8vljc4rg"; + version = "2.0.1"; + edition = "2024"; + sha256 = "1zg34fih2r72y9sr58gmgyjizbkl6jv0nc0hmf4wrib2npj4vska"; libName = "kube_runtime"; authors = [ "clux " @@ -5739,10 +5930,20 @@ rec { authors = [ "Marvin Löbel " ]; + dependencies = [ + { + name = "spin"; + packageId = "spin"; + optional = true; + usesDefaultFeatures = false; + features = [ "once" ]; + } + ]; features = { "spin" = [ "dep:spin" ]; "spin_no_std" = [ "spin" ]; }; + resolvedDefaultFeatures = [ "spin" "spin_no_std" ]; }; "lber" = rec { crateName = "lber"; @@ -6045,6 +6246,20 @@ rec { ]; }; + "libm" = rec { + crateName = "libm"; + version = "0.2.15"; + edition = "2021"; + sha256 = "1plpzf0p829viazdj57yw5dhmlr8ywf3apayxc2f2bq5a6mvryzr"; + authors = [ + "Jorge Aparicio " + ]; + features = { + "default" = [ "arch" ]; + "unstable" = [ "unstable-intrinsics" "unstable-float" ]; + }; + resolvedDefaultFeatures = [ "arch" "default" ]; + }; "libz-sys" = rec { crateName = "libz-sys"; version = "1.1.22"; @@ -6089,20 +6304,19 @@ rec { }; "linux-raw-sys" = rec { crateName = "linux-raw-sys"; - version = "0.9.4"; + version = "0.11.0"; edition = "2021"; - sha256 = "04kyjdrq79lz9ibrf7czk6cv9d3jl597pb9738vzbsbzy1j5i56d"; + sha256 = "0fghx0nn8nvbz5yzgizfcwd6ap2pislp68j8c1bwyr6sacxkq7fz"; libName = "linux_raw_sys"; authors = [ "Dan Gohman " ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "std" "general" "errno" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" "no_std" ]; + "rustc-dep-of-std" = [ "core" "no_std" ]; }; - resolvedDefaultFeatures = [ "elf" "errno" "general" "ioctl" "no_std" ]; + resolvedDefaultFeatures = [ "auxvec" "elf" "errno" "general" "ioctl" "no_std" ]; }; "litemap" = rec { crateName = "litemap"; @@ -6151,9 +6365,9 @@ rec { }; "log" = rec { crateName = "log"; - version = "0.4.27"; + version = "0.4.28"; edition = "2021"; - sha256 = "150x589dqil307rv0rwj0jsgz5bjbwvl83gyl61jf873a7rjvp0k"; + sha256 = "0cklpzrpxafbaq1nyxarhnmcw9z3xcjrad3ch55mmr58xw2ha21l"; authors = [ "The Rust Project Developers" ]; @@ -6452,6 +6666,86 @@ rec { "serde" = [ "dep:serde" ]; }; }; + "num-bigint-dig" = rec { + crateName = "num-bigint-dig"; + version = "0.8.4"; + edition = "2021"; + sha256 = "0lb12df24wgxxbspz4gw1sf1kdqwvpdcpwq4fdlwg4gj41c1k16w"; + libName = "num_bigint_dig"; + authors = [ + "dignifiedquire " + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "byteorder"; + packageId = "byteorder"; + usesDefaultFeatures = false; + } + { + name = "lazy_static"; + packageId = "lazy_static"; + usesDefaultFeatures = false; + features = [ "spin_no_std" ]; + } + { + name = "libm"; + packageId = "libm"; + } + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + { + name = "num-iter"; + packageId = "num-iter"; + usesDefaultFeatures = false; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + { + name = "rand"; + packageId = "rand 0.8.5"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "smallvec"; + packageId = "smallvec"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "rand"; + packageId = "rand 0.8.5"; + features = [ "small_rng" ]; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + "default" = [ "std" "u64_digit" ]; + "fuzz" = [ "arbitrary" "smallvec/arbitrary" ]; + "prime" = [ "rand/std_rng" ]; + "rand" = [ "dep:rand" ]; + "serde" = [ "dep:serde" ]; + "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ]; + }; "num-conv" = rec { crateName = "num-conv"; version = "0.1.0"; @@ -6463,6 +6757,63 @@ rec { ]; }; + "num-integer" = rec { + crateName = "num-integer"; + version = "0.1.46"; + edition = "2018"; + sha256 = "13w5g54a9184cqlbsq80rnxw4jj4s0d8wv75jsq5r2lms8gncsbr"; + libName = "num_integer"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "num-traits/std" ]; + }; + resolvedDefaultFeatures = [ "i128" ]; + }; + "num-iter" = rec { + crateName = "num-iter"; + version = "0.1.45"; + edition = "2018"; + sha256 = "1gzm7vc5g9qsjjl3bqk9rz1h6raxhygbrcpbfl04swlh0i506a8l"; + libName = "num_iter"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg"; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "num-integer/std" "num-traits/std" ]; + }; + }; "num-traits" = rec { crateName = "num-traits"; version = "0.2.19"; @@ -6472,6 +6823,13 @@ rec { authors = [ "The Rust Project Developers" ]; + dependencies = [ + { + name = "libm"; + packageId = "libm"; + optional = true; + } + ]; buildDependencies = [ { name = "autocfg"; @@ -6482,7 +6840,7 @@ rec { "default" = [ "std" ]; "libm" = [ "dep:libm" ]; }; - resolvedDefaultFeatures = [ "std" ]; + resolvedDefaultFeatures = [ "i128" "libm" "std" ]; }; "object" = rec { crateName = "object"; @@ -6671,9 +7029,9 @@ rec { }; "opentelemetry" = rec { crateName = "opentelemetry"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "1rjjwlvhr7h01kl0768v9i7ng77l1axxfzbg29ancxbjrgj1dx5a"; + sha256 = "18629xsj4rsyiby9aj511q6wcw6s9m09gx3ymw1yjcvix1mcsjxq"; dependencies = [ { name = "futures-core"; @@ -6725,14 +7083,15 @@ rec { }; "opentelemetry-appender-tracing" = rec { crateName = "opentelemetry-appender-tracing"; - version = "0.30.1"; + version = "0.31.1"; edition = "2021"; - sha256 = "05pwdypdbg8sxkbafy8cr1cyjyy19w4r7s001rbpxm7slpn673z6"; + sha256 = "1hnwizzgfhpjfnvml638yy846py8hf2gl1n3p1igbk1srb2ilspg"; libName = "opentelemetry_appender_tracing"; dependencies = [ { name = "opentelemetry"; packageId = "opentelemetry"; + usesDefaultFeatures = false; features = [ "logs" ]; } { @@ -6778,9 +7137,9 @@ rec { }; "opentelemetry-http" = rec { crateName = "opentelemetry-http"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0vf3d9p733ms312hcbhy14h32imf22bl7qw6i3mdp5rahjg67xjh"; + sha256 = "0pc5nw1ds8v8w0nvyall39m92v8m1xl1p3vwvxk6nkhrffdd19np"; libName = "opentelemetry_http"; dependencies = [ { @@ -6800,6 +7159,7 @@ rec { { name = "opentelemetry"; packageId = "opentelemetry"; + usesDefaultFeatures = false; features = [ "trace" ]; } { @@ -6807,7 +7167,6 @@ rec { packageId = "reqwest"; optional = true; usesDefaultFeatures = false; - features = [ "blocking" ]; } ]; features = { @@ -6815,16 +7174,17 @@ rec { "hyper" = [ "dep:http-body-util" "dep:hyper" "dep:hyper-util" "dep:tokio" ]; "internal-logs" = [ "opentelemetry/internal-logs" ]; "reqwest" = [ "dep:reqwest" ]; - "reqwest-rustls" = [ "reqwest" "reqwest/rustls-tls-native-roots" ]; - "reqwest-rustls-webpki-roots" = [ "reqwest" "reqwest/rustls-tls-webpki-roots" ]; + "reqwest-blocking" = [ "dep:reqwest" "reqwest/blocking" ]; + "reqwest-rustls" = [ "dep:reqwest" "reqwest/rustls-tls-native-roots" ]; + "reqwest-rustls-webpki-roots" = [ "dep:reqwest" "reqwest/rustls-tls-webpki-roots" ]; }; - resolvedDefaultFeatures = [ "default" "internal-logs" "reqwest" ]; + resolvedDefaultFeatures = [ "internal-logs" "reqwest" "reqwest-blocking" ]; }; "opentelemetry-otlp" = rec { crateName = "opentelemetry-otlp"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0aw5amychdmwayfa0p724na1m7vd1jk9qlzw39riaxp08d56dvnv"; + sha256 = "1gv3h75z8c0p9b85mbq7f1rgsi18wip1xlfa6g82lkfa5pdnc8vs"; libName = "opentelemetry_otlp"; dependencies = [ { @@ -6843,6 +7203,7 @@ rec { name = "opentelemetry-http"; packageId = "opentelemetry-http"; optional = true; + usesDefaultFeatures = false; } { name = "opentelemetry-proto"; @@ -6856,7 +7217,7 @@ rec { } { name = "prost"; - packageId = "prost 0.13.5"; + packageId = "prost"; optional = true; } { @@ -6879,7 +7240,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.13.1"; + packageId = "tonic"; optional = true; usesDefaultFeatures = false; } @@ -6891,6 +7252,12 @@ rec { } ]; devDependencies = [ + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + usesDefaultFeatures = false; + features = [ "trace" "testing" ]; + } { name = "tokio"; packageId = "tokio"; @@ -6899,27 +7266,29 @@ rec { } { name = "tonic"; - packageId = "tonic 0.13.1"; + packageId = "tonic"; usesDefaultFeatures = false; features = [ "router" "server" ]; } ]; features = { "default" = [ "http-proto" "reqwest-blocking-client" "trace" "metrics" "logs" "internal-logs" ]; + "flate2" = [ "dep:flate2" ]; "grpc-tonic" = [ "tonic" "prost" "http" "tokio" "opentelemetry-proto/gen-tonic" ]; + "gzip-http" = [ "flate2" ]; "gzip-tonic" = [ "tonic/gzip" ]; "http" = [ "dep:http" ]; "http-json" = [ "serde_json" "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "opentelemetry-proto/with-serde" "http" "trace" "metrics" ]; "http-proto" = [ "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "http" "trace" "metrics" ]; "hyper-client" = [ "opentelemetry-http/hyper" ]; "integration-testing" = [ "tonic" "prost" "tokio/full" "trace" "logs" ]; - "internal-logs" = [ "tracing" "opentelemetry/internal-logs" ]; + "internal-logs" = [ "tracing" "opentelemetry_sdk/internal-logs" "opentelemetry-http/internal-logs" ]; "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" "opentelemetry-proto/logs" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "opentelemetry-proto/metrics" ]; "opentelemetry-http" = [ "dep:opentelemetry-http" ]; "prost" = [ "dep:prost" ]; "reqwest" = [ "dep:reqwest" ]; - "reqwest-blocking-client" = [ "reqwest/blocking" "opentelemetry-http/reqwest" ]; + "reqwest-blocking-client" = [ "reqwest/blocking" "opentelemetry-http/reqwest-blocking" ]; "reqwest-client" = [ "reqwest" "opentelemetry-http/reqwest" ]; "reqwest-rustls" = [ "reqwest" "opentelemetry-http/reqwest-rustls" ]; "reqwest-rustls-webpki-roots" = [ "reqwest" "opentelemetry-http/reqwest-rustls-webpki-roots" ]; @@ -6933,15 +7302,17 @@ rec { "tonic" = [ "dep:tonic" ]; "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" "opentelemetry-proto/trace" ]; "tracing" = [ "dep:tracing" ]; + "zstd" = [ "dep:zstd" ]; + "zstd-http" = [ "zstd" ]; "zstd-tonic" = [ "tonic/zstd" ]; }; resolvedDefaultFeatures = [ "default" "grpc-tonic" "gzip-tonic" "http" "http-proto" "internal-logs" "logs" "metrics" "opentelemetry-http" "prost" "reqwest" "reqwest-blocking-client" "tokio" "tonic" "trace" "tracing" ]; }; "opentelemetry-proto" = rec { crateName = "opentelemetry-proto"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "1p4d1s7p4z5a9xy4x4dsjifc3385v5q8wx780mdgw407cvbny11f"; + sha256 = "03xkjsjrsm7zkkx5gascqd9bg2z20wymm06l16cyxsp5dpq5s5x7"; libName = "opentelemetry_proto"; dependencies = [ { @@ -6956,44 +7327,59 @@ rec { } { name = "prost"; - packageId = "prost 0.13.5"; + packageId = "prost"; optional = true; } { name = "tonic"; - packageId = "tonic 0.13.1"; + packageId = "tonic"; + optional = true; + usesDefaultFeatures = false; + features = [ "codegen" ]; + } + { + name = "tonic-prost"; + packageId = "tonic-prost"; optional = true; + } + ]; + devDependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry"; usesDefaultFeatures = false; - features = [ "codegen" "prost" ]; + features = [ "testing" ]; } ]; features = { "base64" = [ "dep:base64" ]; + "const-hex" = [ "dep:const-hex" ]; "default" = [ "full" ]; "full" = [ "gen-tonic" "trace" "logs" "metrics" "zpages" "with-serde" "internal-logs" ]; "gen-tonic" = [ "gen-tonic-messages" "tonic/channel" ]; - "gen-tonic-messages" = [ "tonic" "prost" ]; - "hex" = [ "dep:hex" ]; + "gen-tonic-messages" = [ "tonic" "tonic-prost" "prost" ]; "internal-logs" = [ "opentelemetry/internal-logs" ]; "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" ]; "prost" = [ "dep:prost" ]; "schemars" = [ "dep:schemars" ]; "serde" = [ "dep:serde" ]; + "serde_json" = [ "dep:serde_json" ]; "testing" = [ "opentelemetry/testing" ]; "tonic" = [ "dep:tonic" ]; + "tonic-prost" = [ "dep:tonic-prost" ]; "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" ]; "with-schemars" = [ "schemars" ]; - "with-serde" = [ "serde" "hex" "base64" ]; + "with-serde" = [ "serde" "const-hex" "base64" "serde_json" ]; "zpages" = [ "trace" ]; }; - resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "trace" ]; + resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "tonic-prost" "trace" ]; }; "opentelemetry-semantic-conventions" = rec { crateName = "opentelemetry-semantic-conventions"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "1hns9n0sh89cqp7rav7gf2a5nw65wv2m78sphms3cx54jsi5kl43"; + sha256 = "0in8plv2l2ar7anzi7lrbll0fjfvaymkg5vc5bnvibs1w3gjjbp6"; libName = "opentelemetry_semantic_conventions"; features = { }; @@ -7001,9 +7387,9 @@ rec { }; "opentelemetry_sdk" = rec { crateName = "opentelemetry_sdk"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0jvsqhdrka9ppyfr3y6rhj4ai61wgrfk0970jqcd2cayksm49xhi"; + sha256 = "1gbjsggdxfpjbanjvaxa3nq32vfa37i3v13dvx4gsxhrk7sy8jp1"; dependencies = [ { name = "futures-channel"; @@ -7022,6 +7408,7 @@ rec { { name = "opentelemetry"; packageId = "opentelemetry"; + usesDefaultFeatures = false; } { name = "percent-encoding"; @@ -7030,16 +7417,11 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; optional = true; usesDefaultFeatures = false; features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; } - { - name = "serde_json"; - packageId = "serde_json"; - optional = true; - } { name = "thiserror"; packageId = "thiserror 2.0.16"; @@ -7050,7 +7432,6 @@ rec { packageId = "tokio"; optional = true; usesDefaultFeatures = false; - features = [ "rt" "time" ]; } { name = "tokio-stream"; @@ -7065,17 +7446,17 @@ rec { "experimental_metrics_custom_reader" = [ "metrics" ]; "experimental_metrics_disable_name_validation" = [ "metrics" ]; "experimental_metrics_periodicreader_with_async_runtime" = [ "metrics" "experimental_async_runtime" ]; - "experimental_trace_batch_span_processor_with_async_runtime" = [ "trace" "experimental_async_runtime" ]; + "experimental_trace_batch_span_processor_with_async_runtime" = [ "tokio/sync" "trace" "experimental_async_runtime" ]; "http" = [ "dep:http" ]; "internal-logs" = [ "opentelemetry/internal-logs" ]; "jaeger_remote_sampler" = [ "trace" "opentelemetry-http" "http" "serde" "serde_json" "url" "experimental_async_runtime" ]; - "logs" = [ "opentelemetry/logs" "serde_json" ]; + "logs" = [ "opentelemetry/logs" ]; "metrics" = [ "opentelemetry/metrics" ]; "opentelemetry-http" = [ "dep:opentelemetry-http" ]; "percent-encoding" = [ "dep:percent-encoding" ]; "rand" = [ "dep:rand" ]; - "rt-tokio" = [ "tokio" "tokio-stream" "experimental_async_runtime" ]; - "rt-tokio-current-thread" = [ "tokio" "tokio-stream" "experimental_async_runtime" ]; + "rt-tokio" = [ "tokio/rt" "tokio/time" "tokio-stream" "experimental_async_runtime" ]; + "rt-tokio-current-thread" = [ "tokio/rt" "tokio/time" "tokio-stream" "experimental_async_runtime" ]; "serde" = [ "dep:serde" ]; "serde_json" = [ "dep:serde_json" ]; "spec_unstable_logs_enabled" = [ "logs" "opentelemetry/spec_unstable_logs_enabled" ]; @@ -7086,7 +7467,7 @@ rec { "trace" = [ "opentelemetry/trace" "rand" "percent-encoding" ]; "url" = [ "dep:url" ]; }; - resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "serde_json" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" ]; + resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" ]; }; "ordered-float" = rec { crateName = "ordered-float"; @@ -7186,12 +7567,85 @@ rec { ]; }; - "parking" = rec { - crateName = "parking"; - version = "2.2.1"; - edition = "2018"; - sha256 = "1fnfgmzkfpjd69v4j9x737b1k8pnn054bvzcn5dm3pkgq595d3gk"; - authors = [ + "p256" = rec { + crateName = "p256"; + version = "0.13.2"; + edition = "2021"; + sha256 = "0jyd3c3k239ybs59ixpnl7dqkmm072fr1js8kh7ldx58bzc3m1n9"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "ecdsa"; + packageId = "ecdsa"; + rename = "ecdsa-core"; + optional = true; + usesDefaultFeatures = false; + features = [ "der" ]; + } + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "hazmat" "sec1" ]; + } + { + name = "primeorder"; + packageId = "primeorder"; + optional = true; + } + { + name = "sha2"; + packageId = "sha2"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "ecdsa"; + packageId = "ecdsa"; + rename = "ecdsa-core"; + usesDefaultFeatures = false; + features = [ "dev" ]; + } + { + name = "primeorder"; + packageId = "primeorder"; + features = [ "dev" ]; + } + ]; + features = { + "alloc" = [ "ecdsa-core?/alloc" "elliptic-curve/alloc" ]; + "arithmetic" = [ "dep:primeorder" "elliptic-curve/arithmetic" ]; + "bits" = [ "arithmetic" "elliptic-curve/bits" ]; + "default" = [ "arithmetic" "ecdsa" "pem" "std" ]; + "digest" = [ "ecdsa-core/digest" "ecdsa-core/hazmat" ]; + "ecdh" = [ "arithmetic" "elliptic-curve/ecdh" ]; + "ecdsa" = [ "arithmetic" "ecdsa-core/signing" "ecdsa-core/verifying" "sha256" ]; + "ecdsa-core" = [ "dep:ecdsa-core" ]; + "expose-field" = [ "arithmetic" ]; + "hash2curve" = [ "arithmetic" "elliptic-curve/hash2curve" ]; + "jwk" = [ "elliptic-curve/jwk" ]; + "pem" = [ "elliptic-curve/pem" "ecdsa-core/pem" "pkcs8" ]; + "pkcs8" = [ "ecdsa-core?/pkcs8" "elliptic-curve/pkcs8" ]; + "serde" = [ "ecdsa-core?/serde" "elliptic-curve/serde" "primeorder?/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "sha2" = [ "dep:sha2" ]; + "sha256" = [ "digest" "sha2" ]; + "std" = [ "alloc" "ecdsa-core?/std" "elliptic-curve/std" ]; + "test-vectors" = [ "dep:hex-literal" ]; + "voprf" = [ "elliptic-curve/voprf" "sha2" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "digest" "ecdsa" "ecdsa-core" "pem" "pkcs8" "sha2" "sha256" "std" ]; + }; + "parking" = rec { + crateName = "parking"; + version = "2.2.1"; + edition = "2018"; + sha256 = "1fnfgmzkfpjd69v4j9x737b1k8pnn054bvzcn5dm3pkgq595d3gk"; + authors = [ "Stjepan Glavina " "The Rust Project Developers" ]; @@ -7295,6 +7749,27 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "pem-rfc7468" = rec { + crateName = "pem-rfc7468"; + version = "0.7.0"; + edition = "2021"; + sha256 = "04l4852scl4zdva31c1z6jafbak0ni5pi0j38ml108zwzjdrrcw8"; + libName = "pem_rfc7468"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + } + ]; + features = { + "alloc" = [ "base64ct/alloc" ]; + "std" = [ "alloc" "base64ct/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "percent-encoding" = rec { crateName = "percent-encoding"; version = "2.3.1"; @@ -7312,9 +7787,9 @@ rec { }; "pest" = rec { crateName = "pest"; - version = "2.8.1"; + version = "2.8.2"; edition = "2021"; - sha256 = "08s342r6vv6ml5in4jk7pb97wgpf0frcnrvg0sqshn23sdb5zc0x"; + sha256 = "1a6g94pr4npsg0s6ljddwp4g127ks0nygzhxcpwfmyik6yis7q11"; authors = [ "Dragoș Tiselice " ]; @@ -7346,9 +7821,9 @@ rec { }; "pest_derive" = rec { crateName = "pest_derive"; - version = "2.8.1"; + version = "2.8.2"; edition = "2021"; - sha256 = "1g20ma4y29axbjhi3z64ihhpqzmiix71qjn7bs224yd7isg6s1dv"; + sha256 = "0qy6nv84q1m6m2rzw1qjfbxlcizz7h557rkk16yivjqafxpp0n5w"; procMacro = true; authors = [ "Dragoș Tiselice " @@ -7375,9 +7850,9 @@ rec { }; "pest_generator" = rec { crateName = "pest_generator"; - version = "2.8.1"; + version = "2.8.2"; edition = "2021"; - sha256 = "0rj9a20g4bjb4sl3zyzpxqg8mbn8c1kxp0nw08rfp0gp73k09r47"; + sha256 = "0bws5i6g3v1sldvy66p7qbzmz5mqbiflcqilaywgf1zy3n0kckvd"; authors = [ "Dragoș Tiselice " ]; @@ -7414,9 +7889,9 @@ rec { }; "pest_meta" = rec { crateName = "pest_meta"; - version = "2.8.1"; + version = "2.8.2"; edition = "2021"; - sha256 = "1mf01iln7shbnyxpdfnpf59gzn83nndqjkwiw3yh6n8g2wgi1lgd"; + sha256 = "0844iv71ibf414yid0bvhi9i0zfi0jrmyh6mvjjx1jws102rp4a2"; authors = [ "Dragoș Tiselice " ]; @@ -7527,6 +8002,74 @@ rec { ]; }; + "pkcs1" = rec { + crateName = "pkcs1"; + version = "0.7.5"; + edition = "2021"; + sha256 = "0zz4mil3nchnxljdfs2k5ab1cjqn7kq5lqp62n9qfix01zqvkzy8"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "alloc" = [ "der/alloc" "zeroize" "pkcs8?/alloc" ]; + "pem" = [ "alloc" "der/pem" "pkcs8?/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "std" = [ "der/std" "alloc" ]; + "zeroize" = [ "der/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "pkcs8" "std" "zeroize" ]; + }; + "pkcs8" = rec { + crateName = "pkcs8"; + version = "0.10.2"; + edition = "2021"; + sha256 = "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "3des" = [ "encryption" "pkcs5/3des" ]; + "alloc" = [ "der/alloc" "der/zeroize" "spki/alloc" ]; + "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; + "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "pem" = [ "alloc" "der/pem" "spki/pem" ]; + "pkcs5" = [ "dep:pkcs5" ]; + "rand_core" = [ "dep:rand_core" ]; + "sha1-insecure" = [ "encryption" "pkcs5/sha1-insecure" ]; + "std" = [ "alloc" "der/std" "spki/std" ]; + "subtle" = [ "dep:subtle" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "std" ]; + }; "pkg-config" = rec { crateName = "pkg-config"; version = "0.3.32"; @@ -7540,9 +8083,9 @@ rec { }; "potential_utf" = rec { crateName = "potential_utf"; - version = "0.1.2"; + version = "0.1.3"; edition = "2021"; - sha256 = "11dm6k3krx3drbvhgjw8z508giiv0m09wzl6ghza37176w4c79z5"; + sha256 = "12mhwvhpvvim6xqp6ifgkh1sniv9j2cmid6axn10fnjvpsnikpw4"; authors = [ "The ICU4X Project Developers" ]; @@ -7638,6 +8181,29 @@ rec { }; resolvedDefaultFeatures = [ "verbatim" ]; }; + "primeorder" = rec { + crateName = "primeorder"; + version = "0.13.6"; + edition = "2021"; + sha256 = "1rp16710mxksagcjnxqjjq9r9wf5vf72fs8wxffnvhb6i6hiqgim"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "arithmetic" "sec1" ]; + } + ]; + features = { + "alloc" = [ "elliptic-curve/alloc" ]; + "serde" = [ "elliptic-curve/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "std" = [ "alloc" "elliptic-curve/std" ]; + }; + }; "proc-macro2" = rec { crateName = "proc-macro2"; version = "1.0.101"; @@ -7661,13 +8227,13 @@ rec { }; "product-config" = rec { crateName = "product-config"; - version = "0.7.0"; + version = "0.8.0"; edition = "2021"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/product-config.git"; - rev = "d61d4c7542c942da2ba0e9af4e5e3c3113abb0cf"; - sha256 = "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny"; + rev = "678fb7cf30af7d7b516c9a46698a1b661120d54a"; + sha256 = "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987"; }; libName = "product_config"; authors = [ @@ -7705,46 +8271,16 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { - name = "xml-rs"; - packageId = "xml-rs"; + name = "xml"; + packageId = "xml"; } ]; }; - "prost 0.13.5" = rec { - crateName = "prost"; - version = "0.13.5"; - edition = "2021"; - sha256 = "1r8yi6zxxwv9gq5ia9p55nspgwmchs94sqpp64x33v5k3njgm5i7"; - authors = [ - "Dan Burkert " - "Lucio Franco " - "Casper Meijn " - "Tokio Contributors " - ]; - dependencies = [ - { - name = "bytes"; - packageId = "bytes"; - usesDefaultFeatures = false; - } - { - name = "prost-derive"; - packageId = "prost-derive 0.13.5"; - optional = true; - } - ]; - features = { - "default" = [ "derive" "std" ]; - "derive" = [ "dep:prost-derive" ]; - "prost-derive" = [ "derive" ]; - }; - resolvedDefaultFeatures = [ "default" "derive" "std" ]; - }; - "prost 0.14.1" = rec { + "prost" = rec { crateName = "prost"; version = "0.14.1"; edition = "2021"; @@ -7763,7 +8299,7 @@ rec { } { name = "prost-derive"; - packageId = "prost-derive 0.14.1"; + packageId = "prost-derive"; optional = true; } ]; @@ -7821,7 +8357,7 @@ rec { } { name = "prost"; - packageId = "prost 0.14.1"; + packageId = "prost"; usesDefaultFeatures = false; } { @@ -7864,45 +8400,7 @@ rec { }; resolvedDefaultFeatures = [ "cleanup-markdown" "default" "format" ]; }; - "prost-derive 0.13.5" = rec { - crateName = "prost-derive"; - version = "0.13.5"; - edition = "2021"; - sha256 = "0kgc9gbzsa998xixblfi3kfydka64zqf6rmpm53b761cjxbxfmla"; - procMacro = true; - libName = "prost_derive"; - authors = [ - "Dan Burkert " - "Lucio Franco " - "Casper Meijn " - "Tokio Contributors " - ]; - dependencies = [ - { - name = "anyhow"; - packageId = "anyhow"; - } - { - name = "itertools"; - packageId = "itertools 0.14.0"; - } - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn 2.0.106"; - features = [ "extra-traits" ]; - } - ]; - - }; - "prost-derive 0.14.1" = rec { + "prost-derive" = rec { crateName = "prost-derive"; version = "0.14.1"; edition = "2021"; @@ -7955,7 +8453,7 @@ rec { dependencies = [ { name = "prost"; - packageId = "prost 0.14.1"; + packageId = "prost"; usesDefaultFeatures = false; features = [ "derive" ]; } @@ -8057,7 +8555,44 @@ rec { "rustc-dep-of-std" = [ "core" ]; }; }; - "rand" = rec { + "rand 0.8.5" = rec { + crateName = "rand"; + version = "0.8.5"; + edition = "2018"; + sha256 = "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_chacha"; + packageId = "rand_chacha 0.3.1"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + } + ]; + features = { + "alloc" = [ "rand_core/alloc" ]; + "default" = [ "std" "std_rng" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "libc" = [ "dep:libc" ]; + "log" = [ "dep:log" ]; + "packed_simd" = [ "dep:packed_simd" ]; + "rand_chacha" = [ "dep:rand_chacha" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" "rand_core/serde1" ]; + "simd_support" = [ "packed_simd" ]; + "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; + "std_rng" = [ "rand_chacha" ]; + }; + resolvedDefaultFeatures = [ "rand_chacha" "std_rng" ]; + }; + "rand 0.9.2" = rec { crateName = "rand"; version = "0.9.2"; edition = "2021"; @@ -8069,13 +8604,13 @@ rec { dependencies = [ { name = "rand_chacha"; - packageId = "rand_chacha"; + packageId = "rand_chacha 0.9.0"; optional = true; usesDefaultFeatures = false; } { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; usesDefaultFeatures = false; } ]; @@ -8090,7 +8625,36 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "os_rng" "small_rng" "std" "std_rng" "thread_rng" ]; }; - "rand_chacha" = rec { + "rand_chacha 0.3.1" = rec { + crateName = "rand_chacha"; + version = "0.3.1"; + edition = "2018"; + sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + "The CryptoCorrosion Contributors" + ]; + dependencies = [ + { + name = "ppv-lite86"; + packageId = "ppv-lite86"; + usesDefaultFeatures = false; + features = [ "simd" ]; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + } + ]; + features = { + "default" = [ "std" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" ]; + "std" = [ "ppv-lite86/std" ]; + }; + }; + "rand_chacha 0.9.0" = rec { crateName = "rand_chacha"; version = "0.9.0"; edition = "2021"; @@ -8109,13 +8673,13 @@ rec { } { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; } ]; devDependencies = [ { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; features = [ "os_rng" ]; } ]; @@ -8127,7 +8691,31 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "rand_core" = rec { + "rand_core 0.6.4" = rec { + crateName = "rand_core"; + version = "0.6.4"; + edition = "2018"; + sha256 = "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "getrandom"; + packageId = "getrandom 0.2.16"; + optional = true; + } + ]; + features = { + "getrandom" = [ "dep:getrandom" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" ]; + "std" = [ "alloc" "getrandom" "getrandom/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; + }; + "rand_core 0.9.3" = rec { crateName = "rand_core"; version = "0.9.3"; edition = "2021"; @@ -8197,26 +8785,69 @@ rec { }; resolvedDefaultFeatures = [ "default" "userspace" ]; }; - "regex" = rec { - crateName = "regex"; - version = "1.11.1"; + "ref-cast" = rec { + crateName = "ref-cast"; + version = "1.0.25"; edition = "2021"; - sha256 = "148i41mzbx8bmq32hsj1q4karkzzx5m60qza6gdw4pdc9qdyyi5m"; + sha256 = "0zdzc34qjva9xxgs889z5iz787g81hznk12zbk4g2xkgwq530m7k"; + libName = "ref_cast"; authors = [ - "The Rust Project Developers" - "Andrew Gallant " + "David Tolnay " ]; dependencies = [ { - name = "aho-corasick"; - packageId = "aho-corasick"; - optional = true; - usesDefaultFeatures = false; + name = "ref-cast-impl"; + packageId = "ref-cast-impl"; } + ]; + + }; + "ref-cast-impl" = rec { + crateName = "ref-cast-impl"; + version = "1.0.25"; + edition = "2021"; + sha256 = "1nkhn1fklmn342z5c4mzfzlxddv3x8yhxwwk02cj06djvh36065p"; + procMacro = true; + libName = "ref_cast_impl"; + authors = [ + "David Tolnay " + ]; + dependencies = [ { - name = "memchr"; - packageId = "memchr"; - optional = true; + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.106"; + } + ]; + + }; + "regex" = rec { + crateName = "regex"; + version = "1.11.1"; + edition = "2021"; + sha256 = "148i41mzbx8bmq32hsj1q4karkzzx5m60qza6gdw4pdc9qdyyi5m"; + authors = [ + "The Rust Project Developers" + "Andrew Gallant " + ]; + dependencies = [ + { + name = "aho-corasick"; + packageId = "aho-corasick"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "memchr"; + packageId = "memchr"; + optional = true; usesDefaultFeatures = false; } { @@ -8605,6 +9236,29 @@ rec { }; resolvedDefaultFeatures = [ "blocking" ]; }; + "rfc6979" = rec { + crateName = "rfc6979"; + version = "0.4.0"; + edition = "2021"; + sha256 = "1chw95jgcfrysyzsq6a10b1j5qb7bagkx8h0wda4lv25in02mpgq"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "hmac"; + packageId = "hmac"; + usesDefaultFeatures = false; + features = [ "reset" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + ]; + + }; "ring" = rec { crateName = "ring"; version = "0.17.14"; @@ -8666,6 +9320,119 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" ]; }; + "rsa" = rec { + crateName = "rsa"; + version = "0.9.8"; + edition = "2021"; + sha256 = "06v9zl604jsqjajm647l9jjirn7k4lc8lmvys6hmqshpxp0qm4kq"; + authors = [ + "RustCrypto Developers" + "dignifiedquire " + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + usesDefaultFeatures = false; + } + { + name = "digest"; + packageId = "digest"; + usesDefaultFeatures = false; + features = [ "alloc" "oid" ]; + } + { + name = "num-bigint-dig"; + packageId = "num-bigint-dig"; + rename = "num-bigint"; + usesDefaultFeatures = false; + features = [ "i128" "prime" "zeroize" ]; + } + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "libm" ]; + } + { + name = "pkcs1"; + packageId = "pkcs1"; + usesDefaultFeatures = false; + features = [ "alloc" "pkcs8" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + optional = true; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + features = [ "alloc" "digest" "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + features = [ "alloc" ]; + } + ]; + devDependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + ]; + features = { + "default" = [ "std" "pem" "u64_digit" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "nightly" = [ "num-bigint/nightly" ]; + "pem" = [ "pkcs1/pem" "pkcs8/pem" ]; + "pkcs5" = [ "pkcs8/encryption" ]; + "serde" = [ "dep:serde" "num-bigint/serde" ]; + "sha1" = [ "dep:sha1" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "digest/std" "pkcs1/std" "pkcs8/std" "rand_core/std" "signature/std" ]; + "u64_digit" = [ "num-bigint/u64_digit" ]; + }; + resolvedDefaultFeatures = [ "default" "pem" "sha2" "std" "u64_digit" ]; + }; "rustc-demangle" = rec { crateName = "rustc-demangle"; version = "0.1.26"; @@ -8697,9 +9464,9 @@ rec { }; "rustix" = rec { crateName = "rustix"; - version = "1.0.8"; + version = "1.1.2"; edition = "2021"; - sha256 = "1j6ajqi61agdnh1avr4bplrsgydjw1n4mycdxw3v8g94pyx1y60i"; + sha256 = "0gpz343xfzx16x82s1x336n0kr49j02cvhgxdvaq86jmqnigh5fd"; authors = [ "Dan Gohman " "Jakub Konka " @@ -8749,7 +9516,7 @@ rec { name = "linux-raw-sys"; packageId = "linux-raw-sys"; usesDefaultFeatures = false; - target = { target, features }: ((("android" == target."os" or null) || ("linux" == target."os" or null)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("little" == target."endian" or null) || (("s390x" == target."arch" or null) || ("powerpc" == target."arch" or null))) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("s390x" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); + target = { target, features }: ((("linux" == target."os" or null)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("little" == target."endian" or null) || (("s390x" == target."arch" or null) || ("powerpc" == target."arch" or null))) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("s390x" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); features = [ "general" "ioctl" "no_std" ]; } { @@ -8757,11 +9524,11 @@ rec { packageId = "linux-raw-sys"; usesDefaultFeatures = false; target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && (("little" == target."endian" or null) || (("s390x" == target."arch" or null) || ("powerpc" == target."arch" or null))) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("s390x" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)))); - features = [ "general" "errno" "ioctl" "no_std" "elf" ]; + features = [ "auxvec" "general" "errno" "ioctl" "no_std" "elf" ]; } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Networking_WinSock" ]; } @@ -8871,41 +9638,7 @@ rec { }; resolvedDefaultFeatures = [ "log" "logging" "ring" "std" "tls12" ]; }; - "rustls-native-certs 0.7.3" = rec { - crateName = "rustls-native-certs"; - version = "0.7.3"; - edition = "2021"; - sha256 = "1r9ib5gwkfci2wbqnbh44nigvrfgxs4n1x89js82w97dxsab7gz5"; - libName = "rustls_native_certs"; - dependencies = [ - { - name = "openssl-probe"; - packageId = "openssl-probe"; - target = { target, features }: ((target."unix" or false) && (!("macos" == target."os" or null))); - } - { - name = "rustls-pemfile"; - packageId = "rustls-pemfile"; - } - { - name = "rustls-pki-types"; - packageId = "rustls-pki-types"; - rename = "pki-types"; - } - { - name = "schannel"; - packageId = "schannel"; - target = { target, features }: (target."windows" or false); - } - { - name = "security-framework"; - packageId = "security-framework 2.11.1"; - target = { target, features }: ("macos" == target."os" or null); - } - ]; - - }; - "rustls-native-certs 0.8.1" = rec { + "rustls-native-certs" = rec { crateName = "rustls-native-certs"; version = "0.8.1"; edition = "2021"; @@ -8930,31 +9663,12 @@ rec { } { name = "security-framework"; - packageId = "security-framework 3.3.0"; + packageId = "security-framework 3.4.0"; target = { target, features }: ("macos" == target."os" or null); } ]; }; - "rustls-pemfile" = rec { - crateName = "rustls-pemfile"; - version = "2.2.0"; - edition = "2018"; - sha256 = "0l3f3mrfkgdjrava7ibwzgwc4h3dljw3pdkbsi9rkwz3zvji9qyw"; - libName = "rustls_pemfile"; - dependencies = [ - { - name = "rustls-pki-types"; - packageId = "rustls-pki-types"; - rename = "pki-types"; - } - ]; - features = { - "default" = [ "std" ]; - "std" = [ "pki-types/std" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; "rustls-pki-types" = rec { crateName = "rustls-pki-types"; version = "1.12.0"; @@ -8979,9 +9693,9 @@ rec { }; "rustls-webpki" = rec { crateName = "rustls-webpki"; - version = "0.103.4"; + version = "0.103.6"; edition = "2021"; - sha256 = "1z4jmmgasjgk9glb160a66bshvgifa64mgfjrkqp7dy1w158h5qa"; + sha256 = "1szqh1g2cwx89f21mf6zkxc8rxg187y9jm5law8j6d4rrg1g6wl5"; libName = "webpki"; dependencies = [ { @@ -9056,9 +9770,9 @@ rec { }; "schannel" = rec { crateName = "schannel"; - version = "0.1.27"; + version = "0.1.28"; edition = "2018"; - sha256 = "0gbbhy28v72kd5iina0z2vcdl3vz63mk5idvkzn5r52z6jmfna8z"; + sha256 = "1qb6s5gyxfz2inz753a4z3mc1d266mwvz0c5w7ppd3h44swq27c9"; authors = [ "Steven Fackler " "Steffen Butzer " @@ -9066,14 +9780,14 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.0"; features = [ "Win32_Foundation" "Win32_Security_Cryptography" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" ]; } ]; devDependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.0"; features = [ "Win32_System_SystemInformation" "Win32_System_Time" ]; } ]; @@ -9081,9 +9795,9 @@ rec { }; "schemars" = rec { crateName = "schemars"; - version = "0.8.22"; + version = "1.0.4"; edition = "2021"; - sha256 = "05an9nbi18ynyxv1rjmwbg6j08j0496hd64mjggh53mwp3hjmgrz"; + sha256 = "1l7w773jfk6mz0v8wpahp60aslksjijlbm65ysi4y5mwj520rll2"; authors = [ "Graham Esau " ]; @@ -9092,6 +9806,10 @@ rec { name = "dyn-clone"; packageId = "dyn-clone"; } + { + name = "ref-cast"; + packageId = "ref-cast"; + } { name = "schemars_derive"; packageId = "schemars_derive"; @@ -9100,56 +9818,64 @@ rec { { name = "serde"; packageId = "serde"; - features = [ "derive" ]; + usesDefaultFeatures = false; + features = [ "alloc" ]; } { name = "serde_json"; packageId = "serde_json"; + usesDefaultFeatures = false; + features = [ "alloc" ]; } { name = "url"; packageId = "url"; + rename = "url2"; optional = true; usesDefaultFeatures = false; } ]; + devDependencies = [ + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + { + name = "url"; + packageId = "url"; + rename = "url2"; + usesDefaultFeatures = false; + features = [ "serde" "std" ]; + } + ]; features = { - "arrayvec" = [ "arrayvec05" ]; - "arrayvec05" = [ "dep:arrayvec05" ]; "arrayvec07" = [ "dep:arrayvec07" ]; - "bigdecimal" = [ "bigdecimal03" ]; - "bigdecimal03" = [ "dep:bigdecimal03" ]; "bigdecimal04" = [ "dep:bigdecimal04" ]; - "bytes" = [ "dep:bytes" ]; - "chrono" = [ "dep:chrono" ]; - "default" = [ "derive" ]; + "bytes1" = [ "dep:bytes1" ]; + "chrono04" = [ "dep:chrono04" ]; + "default" = [ "derive" "std" ]; "derive" = [ "schemars_derive" ]; - "derive_json_schema" = [ "impl_json_schema" ]; - "either" = [ "dep:either" ]; - "enumset" = [ "dep:enumset" ]; - "impl_json_schema" = [ "derive" ]; - "indexmap" = [ "dep:indexmap" ]; - "indexmap1" = [ "indexmap" ]; + "either1" = [ "dep:either1" ]; "indexmap2" = [ "dep:indexmap2" ]; - "preserve_order" = [ "indexmap" ]; + "jiff02" = [ "dep:jiff02" ]; + "preserve_order" = [ "serde_json/preserve_order" ]; "raw_value" = [ "serde_json/raw_value" ]; - "rust_decimal" = [ "dep:rust_decimal" ]; + "rust_decimal1" = [ "dep:rust_decimal1" ]; "schemars_derive" = [ "dep:schemars_derive" ]; - "semver" = [ "dep:semver" ]; - "smallvec" = [ "dep:smallvec" ]; - "smol_str" = [ "dep:smol_str" ]; - "url" = [ "dep:url" ]; - "uuid" = [ "uuid08" ]; - "uuid08" = [ "dep:uuid08" ]; + "semver1" = [ "dep:semver1" ]; + "smallvec1" = [ "dep:smallvec1" ]; + "smol_str02" = [ "dep:smol_str02" ]; + "url2" = [ "dep:url2" ]; "uuid1" = [ "dep:uuid1" ]; }; - resolvedDefaultFeatures = [ "default" "derive" "schemars_derive" "url" ]; + resolvedDefaultFeatures = [ "default" "derive" "schemars_derive" "std" "url2" ]; }; "schemars_derive" = rec { crateName = "schemars_derive"; - version = "0.8.22"; + version = "1.0.4"; edition = "2021"; - sha256 = "0kakyzrp5801s4i043l4ilv96lzimnlh01pap958h66n99w6bqij"; + sha256 = "107sprdfa5kacifxq41qv5ccv7a78msxyr8ikz0qs4qxdlwj1l1k"; procMacro = true; authors = [ "Graham Esau " @@ -9167,6 +9893,12 @@ rec { name = "serde_derive_internals"; packageId = "serde_derive_internals"; } + { + name = "syn"; + packageId = "syn 2.0.106"; + } + ]; + devDependencies = [ { name = "syn"; packageId = "syn 2.0.106"; @@ -9187,6 +9919,66 @@ rec { "default" = [ "use_std" ]; }; }; + "sec1" = rec { + crateName = "sec1"; + version = "0.7.3"; + edition = "2021"; + sha256 = "1p273j8c87pid6a1iyyc7vxbvifrw55wbxgr0dh3l8vnbxb7msfk"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base16ct"; + packageId = "base16ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + optional = true; + features = [ "oid" ]; + } + { + name = "generic-array"; + packageId = "generic-array"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "der?/alloc" "pkcs8?/alloc" "zeroize?/alloc" ]; + "default" = [ "der" "point" ]; + "der" = [ "dep:der" "zeroize" ]; + "pem" = [ "alloc" "der/pem" "pkcs8/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "point" = [ "dep:base16ct" "dep:generic-array" ]; + "serde" = [ "dep:serdect" ]; + "std" = [ "alloc" "der?/std" ]; + "subtle" = [ "dep:subtle" ]; + "zeroize" = [ "dep:zeroize" "der?/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "der" "pem" "pkcs8" "point" "std" "subtle" "zeroize" ]; + }; "secrecy" = rec { crateName = "secrecy"; version = "0.10.3"; @@ -9254,11 +10046,11 @@ rec { }; resolvedDefaultFeatures = [ "OSX_10_10" "OSX_10_11" "OSX_10_12" "OSX_10_9" "default" ]; }; - "security-framework 3.3.0" = rec { + "security-framework 3.4.0" = rec { crateName = "security-framework"; - version = "3.3.0"; + version = "3.4.0"; edition = "2021"; - sha256 = "037f0h06p00gg7ycczx3jsz4ikxzll177gdqnhca72h2qn91vyw0"; + sha256 = "0h4n11pqr0idh5sx4wdfcpbbg69wjq3h1p04b0s8nf4ki38nkcv0"; libName = "security_framework"; authors = [ "Steven Fackler " @@ -9300,9 +10092,9 @@ rec { }; "security-framework-sys" = rec { crateName = "security-framework-sys"; - version = "2.14.0"; + version = "2.15.0"; edition = "2021"; - sha256 = "0chwn01qrnvs59i5220bymd38iddy4krbnmfnhf4k451aqfj7ns9"; + sha256 = "1h6mijxnfrwvl1y4dzwn3m877j6dqp9qn3g37i954j5czazhq7yc"; libName = "security_framework_sys"; authors = [ "Steven Fackler " @@ -9331,9 +10123,9 @@ rec { }; "semver" = rec { crateName = "semver"; - version = "1.0.26"; + version = "1.0.27"; edition = "2018"; - sha256 = "1l5q2vb8fjkby657kdyfpvv40x2i2xqq9bg57pxqakfj92fgmrjn"; + sha256 = "1qmi3akfrnqc2hfkdgcxhld5bv961wbk8my3ascv5068mc5fnryp"; authors = [ "David Tolnay " ]; @@ -9345,35 +10137,34 @@ rec { }; "serde" = rec { crateName = "serde"; - version = "1.0.219"; - edition = "2018"; - sha256 = "1dl6nyxnsi82a197sd752128a4avm6mxnscywas1jq30srp2q3jz"; + version = "1.0.225"; + edition = "2021"; + sha256 = "07dxpjh0g1mq3md9yvn7jbgssgcizcircf23f04xml1mwbg28v7x"; authors = [ "Erick Tryzelaar " "David Tolnay " ]; dependencies = [ { - name = "serde_derive"; - packageId = "serde_derive"; - optional = true; + name = "serde_core"; + packageId = "serde_core"; + usesDefaultFeatures = false; + features = [ "result" ]; } { name = "serde_derive"; packageId = "serde_derive"; - target = { target, features }: false; - } - ]; - devDependencies = [ - { - name = "serde_derive"; - packageId = "serde_derive"; + optional = true; } ]; features = { + "alloc" = [ "serde_core/alloc" ]; "default" = [ "std" ]; "derive" = [ "serde_derive" ]; + "rc" = [ "serde_core/rc" ]; "serde_derive" = [ "dep:serde_derive" ]; + "std" = [ "serde_core/std" ]; + "unstable" = [ "serde_core/unstable" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "derive" "serde_derive" "std" ]; }; @@ -9398,11 +10189,38 @@ rec { ]; }; + "serde_core" = rec { + crateName = "serde_core"; + version = "1.0.225"; + edition = "2021"; + sha256 = "10v3z58j5k6xhdxh90xgrv20wlnz5fnl67n04jdm47nbl3wmd4v5"; + authors = [ + "Erick Tryzelaar " + "David Tolnay " + ]; + dependencies = [ + { + name = "serde_derive"; + packageId = "serde_derive"; + target = { target, features }: false; + } + ]; + devDependencies = [ + { + name = "serde_derive"; + packageId = "serde_derive"; + } + ]; + features = { + "default" = [ "std" "result" ]; + }; + resolvedDefaultFeatures = [ "alloc" "result" "std" ]; + }; "serde_derive" = rec { crateName = "serde_derive"; - version = "1.0.219"; - edition = "2015"; - sha256 = "001azhjmj7ya52pmfiw4ppxm16nd44y15j2pf5gkcwrcgz7pc0jv"; + version = "1.0.225"; + edition = "2021"; + sha256 = "05j5zj2jdba3jnm7kh3fpljmhngmsa8pp5x495lpc7wbyynkda8f"; procMacro = true; authors = [ "Erick Tryzelaar " @@ -9464,9 +10282,9 @@ rec { }; "serde_json" = rec { crateName = "serde_json"; - version = "1.0.143"; + version = "1.0.145"; edition = "2021"; - sha256 = "0njabwzldvj13ykrf1aaf4gh5cgl25kf9hzbpafbv3qh3ppsn0fl"; + sha256 = "1767y6kxjf7gwpbv8bkhgwc50nhg46mqwm9gy9n122f7v1k6yaj0"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -9489,6 +10307,12 @@ rec { name = "serde"; packageId = "serde"; usesDefaultFeatures = false; + target = { target, features }: false; + } + { + name = "serde_core"; + packageId = "serde_core"; + usesDefaultFeatures = false; } ]; devDependencies = [ @@ -9499,19 +10323,19 @@ rec { } ]; features = { - "alloc" = [ "serde/alloc" ]; + "alloc" = [ "serde_core/alloc" ]; "default" = [ "std" ]; "indexmap" = [ "dep:indexmap" ]; "preserve_order" = [ "indexmap" "std" ]; - "std" = [ "memchr/std" "serde/std" ]; + "std" = [ "memchr/std" "serde_core/std" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "raw_value" "std" ]; }; "serde_path_to_error" = rec { crateName = "serde_path_to_error"; - version = "0.1.17"; + version = "0.1.20"; edition = "2021"; - sha256 = "0alb447z25dvczd6ll3vfjbf51pypn23mgs5hv8978vzjczv3yjr"; + sha256 = "0mxls44p2ycmnxh03zpnlxxygq42w61ws7ir7r0ba6rp5s1gza8h"; authors = [ "David Tolnay " ]; @@ -9520,6 +10344,20 @@ rec { name = "itoa"; packageId = "itoa"; } + { + name = "serde"; + packageId = "serde"; + usesDefaultFeatures = false; + target = { target, features }: false; + } + { + name = "serde_core"; + packageId = "serde_core"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + ]; + devDependencies = [ { name = "serde"; packageId = "serde"; @@ -9664,6 +10502,7 @@ rec { "sha2-asm" = [ "dep:sha2-asm" ]; "std" = [ "digest/std" ]; }; + resolvedDefaultFeatures = [ "default" "oid" "std" ]; }; "sharded-slab" = rec { crateName = "sharded-slab"; @@ -9720,6 +10559,36 @@ rec { ]; }; + "signature" = rec { + crateName = "signature"; + version = "2.2.0"; + edition = "2021"; + sha256 = "1pi9hd5vqfr3q3k49k37z06p7gs5si0in32qia4mmr1dancr6m3p"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "derive" = [ "dep:derive" ]; + "digest" = [ "dep:digest" ]; + "rand_core" = [ "dep:rand_core" ]; + "std" = [ "alloc" "rand_core?/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "digest" "rand_core" "std" ]; + }; "slab" = rec { crateName = "slab"; version = "0.4.11"; @@ -9815,18 +10684,18 @@ rec { }; resolvedDefaultFeatures = [ "default" "guide" "std" ]; }; - "snafu 0.8.7" = rec { + "snafu 0.8.9" = rec { crateName = "snafu"; - version = "0.8.7"; + version = "0.8.9"; edition = "2018"; - sha256 = "0jp7rspj1f4m6rdj6bxf8zyi89bkdm0s76fhan8nwjkcn9ra6qh0"; + sha256 = "18p1y5qxwjn5j902wqsdr75n17b29lxpdipa0p7a3wybxbsb713f"; authors = [ "Jake Goulding " ]; dependencies = [ { name = "snafu-derive"; - packageId = "snafu-derive 0.8.7"; + packageId = "snafu-derive 0.8.9"; } ]; features = { @@ -9874,11 +10743,11 @@ rec { features = { }; }; - "snafu-derive 0.8.7" = rec { + "snafu-derive 0.8.9" = rec { crateName = "snafu-derive"; - version = "0.8.7"; + version = "0.8.9"; edition = "2018"; - sha256 = "1f1262smvvilsga1aard454pkqs39nyps46mmdrrvh9z4vixjpvy"; + sha256 = "0lg4s58jzx6w48ig4qp8jasrrs886pifqqd58k5b2jzlvd3pgjf1"; procMacro = true; libName = "snafu_derive"; authors = [ @@ -9934,6 +10803,63 @@ rec { }; resolvedDefaultFeatures = [ "all" ]; }; + "spin" = rec { + crateName = "spin"; + version = "0.9.8"; + edition = "2015"; + sha256 = "0rvam5r0p3a6qhc18scqpvpgb3ckzyqxpgdfyjnghh8ja7byi039"; + authors = [ + "Mathijs van de Nes " + "John Ericson " + "Joshua Barretto " + ]; + features = { + "barrier" = [ "mutex" ]; + "default" = [ "lock_api" "mutex" "spin_mutex" "rwlock" "once" "lazy" "barrier" ]; + "fair_mutex" = [ "mutex" ]; + "lazy" = [ "once" ]; + "lock_api" = [ "lock_api_crate" ]; + "lock_api_crate" = [ "dep:lock_api_crate" ]; + "portable-atomic" = [ "dep:portable-atomic" ]; + "portable_atomic" = [ "portable-atomic" ]; + "spin_mutex" = [ "mutex" ]; + "ticket_mutex" = [ "mutex" ]; + "use_ticket_mutex" = [ "mutex" "ticket_mutex" ]; + }; + resolvedDefaultFeatures = [ "once" ]; + }; + "spki" = rec { + crateName = "spki"; + version = "0.7.3"; + edition = "2021"; + sha256 = "17fj8k5fmx4w9mp27l970clrh5qa7r5sjdvbsln987xhb34dc7nr"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + ]; + features = { + "alloc" = [ "base64ct?/alloc" "der/alloc" ]; + "arbitrary" = [ "std" "dep:arbitrary" "der/arbitrary" ]; + "base64" = [ "dep:base64ct" ]; + "fingerprint" = [ "sha2" ]; + "pem" = [ "alloc" "der/pem" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "der/std" "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "std" ]; + }; "stable_deref_trait" = rec { crateName = "stable_deref_trait"; version = "1.2.0"; @@ -9948,6 +10874,109 @@ rec { }; resolvedDefaultFeatures = [ "alloc" ]; }; + "stackable-certs" = rec { + crateName = "stackable-certs"; + version = "0.4.0"; + edition = "2024"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + }; + libName = "stackable_certs"; + authors = [ + "Stackable GmbH " + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + features = [ "db" ]; + } + { + name = "ecdsa"; + packageId = "ecdsa"; + features = [ "digest" "pem" ]; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + } + { + name = "p256"; + packageId = "p256"; + features = [ "ecdsa" ]; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + } + { + name = "rsa"; + packageId = "rsa"; + features = [ "sha2" ]; + } + { + name = "sha2"; + packageId = "sha2"; + features = [ "oid" ]; + } + { + name = "signature"; + packageId = "signature"; + } + { + name = "snafu"; + packageId = "snafu 0.8.9"; + } + { + name = "stackable-shared"; + packageId = "stackable-shared"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" "fs" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + optional = true; + usesDefaultFeatures = false; + features = [ "ring" "logging" "tls12" ]; + } + { + name = "tracing"; + packageId = "tracing"; + } + { + name = "x509-cert"; + packageId = "x509-cert"; + features = [ "builder" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + } + ]; + features = { + "rustls" = [ "dep:tokio-rustls" ]; + }; + resolvedDefaultFeatures = [ "default" "rustls" ]; + }; "stackable-krb5-provision-keytab" = rec { crateName = "stackable-krb5-provision-keytab"; version = "0.0.0-dev"; @@ -9990,7 +11019,7 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; } { name = "serde"; @@ -10003,12 +11032,12 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "stackable-secret-operator-crd-utils"; @@ -10032,13 +11061,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.95.0"; + version = "0.99.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; libName = "stackable_operator"; authors = [ @@ -10097,7 +11126,7 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } { name = "kube"; @@ -10116,7 +11145,7 @@ rec { { name = "schemars"; packageId = "schemars"; - features = [ "url" ]; + features = [ "url2" ]; } { name = "semver"; @@ -10137,7 +11166,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-operator-derive"; @@ -10146,6 +11175,7 @@ rec { { name = "stackable-shared"; packageId = "stackable-shared"; + features = [ "chrono" "time" ]; } { name = "stackable-telemetry"; @@ -10158,6 +11188,11 @@ rec { packageId = "stackable-versioned"; optional = true; } + { + name = "stackable-webhook"; + packageId = "stackable-webhook"; + optional = true; + } { name = "strum"; packageId = "strum"; @@ -10189,14 +11224,14 @@ rec { ]; features = { "certs" = [ "dep:stackable-certs" ]; - "default" = [ "telemetry" "versioned" ]; - "full" = [ "certs" "telemetry" "versioned" "time" "webhook" ]; + "default" = [ "telemetry" "versioned" "clap" ]; + "full" = [ "certs" "telemetry" "versioned" "time" "webhook" "clap" ]; "telemetry" = [ "dep:stackable-telemetry" ]; "time" = [ "stackable-shared/time" ]; "versioned" = [ "dep:stackable-versioned" ]; "webhook" = [ "dep:stackable-webhook" ]; }; - resolvedDefaultFeatures = [ "default" "telemetry" "time" "versioned" ]; + resolvedDefaultFeatures = [ "clap" "default" "telemetry" "time" "versioned" "webhook" ]; }; "stackable-operator-derive" = rec { crateName = "stackable-operator-derive"; @@ -10204,9 +11239,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -10216,7 +11251,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.21.2"; + packageId = "darling"; } { name = "proc-macro2"; @@ -10297,7 +11332,7 @@ rec { } { name = "prost"; - packageId = "prost 0.14.1"; + packageId = "prost"; } { name = "prost-types"; @@ -10305,7 +11340,7 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; } { name = "serde"; @@ -10316,9 +11351,13 @@ rec { name = "serde_json"; packageId = "serde_json"; } + { + name = "serde_yaml"; + packageId = "serde_yaml"; + } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "socket2"; @@ -10332,7 +11371,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "stackable-secret-operator-crd-utils"; @@ -10369,7 +11408,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic"; } { name = "tonic-prost"; @@ -10430,7 +11469,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } ]; @@ -10475,7 +11514,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "tokio"; @@ -10502,24 +11541,30 @@ rec { }; "stackable-shared" = rec { crateName = "stackable-shared"; - version = "0.0.2"; + version = "0.0.3"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; libName = "stackable_shared"; authors = [ "Stackable GmbH " ]; dependencies = [ + { + name = "chrono"; + packageId = "chrono"; + optional = true; + usesDefaultFeatures = false; + } { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } { name = "kube"; @@ -10530,7 +11575,7 @@ rec { { name = "schemars"; packageId = "schemars"; - features = [ "url" ]; + features = [ "url2" ]; } { name = "semver"; @@ -10547,7 +11592,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -10565,15 +11610,16 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } ]; features = { + "chrono" = [ "dep:chrono" ]; "default" = [ "time" ]; - "full" = [ "time" ]; + "full" = [ "chrono" "time" ]; "time" = [ "dep:time" ]; }; - resolvedDefaultFeatures = [ "default" "time" ]; + resolvedDefaultFeatures = [ "chrono" "default" "time" ]; }; "stackable-telemetry" = rec { crateName = "stackable-telemetry"; @@ -10581,9 +11627,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; libName = "stackable_telemetry"; authors = [ @@ -10634,7 +11680,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -10687,13 +11733,13 @@ rec { }; "stackable-versioned" = rec { crateName = "stackable-versioned"; - version = "0.8.1"; + version = "0.8.2"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; libName = "stackable_versioned"; authors = [ @@ -10703,7 +11749,7 @@ rec { { name = "schemars"; packageId = "schemars"; - features = [ "url" ]; + features = [ "url2" ]; } { name = "serde"; @@ -10720,7 +11766,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-versioned-macros"; @@ -10731,13 +11777,13 @@ rec { }; "stackable-versioned-macros" = rec { crateName = "stackable-versioned-macros"; - version = "0.8.1"; + version = "0.8.2"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "20659fe864c643fe48c7ff70ed417f0ed05ccf45"; - sha256 = "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -10751,7 +11797,7 @@ rec { } { name = "darling"; - packageId = "darling 0.21.2"; + packageId = "darling"; } { name = "indoc"; @@ -10765,7 +11811,7 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } { name = "k8s-version"; @@ -10792,6 +11838,125 @@ rec { } ]; + }; + "stackable-webhook" = rec { + crateName = "stackable-webhook"; + version = "0.6.0"; + edition = "2024"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + }; + libName = "stackable_webhook"; + authors = [ + "Stackable GmbH " + ]; + dependencies = [ + { + name = "arc-swap"; + packageId = "arc-swap"; + } + { + name = "axum"; + packageId = "axum"; + features = [ "http2" ]; + } + { + name = "futures-util"; + packageId = "futures-util"; + } + { + name = "hyper"; + packageId = "hyper"; + features = [ "full" ]; + } + { + name = "hyper-util"; + packageId = "hyper-util"; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + } + { + name = "opentelemetry"; + packageId = "opentelemetry"; + } + { + name = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions"; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + } + { + name = "serde_json"; + packageId = "serde_json"; + } + { + name = "snafu"; + packageId = "snafu 0.8.9"; + } + { + name = "stackable-certs"; + packageId = "stackable-certs"; + features = [ "rustls" ]; + } + { + name = "stackable-shared"; + packageId = "stackable-shared"; + } + { + name = "stackable-telemetry"; + packageId = "stackable-telemetry"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" "fs" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + usesDefaultFeatures = false; + features = [ "ring" "logging" "tls12" ]; + } + { + name = "tower"; + packageId = "tower"; + features = [ "util" ]; + } + { + name = "tower-http"; + packageId = "tower-http"; + features = [ "trace" ]; + } + { + name = "tracing"; + packageId = "tracing"; + } + { + name = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry"; + } + { + name = "x509-cert"; + packageId = "x509-cert"; + features = [ "builder" ]; + } + ]; + }; "strsim" = rec { crateName = "strsim"; @@ -10869,6 +12034,7 @@ rec { features = { "default" = [ "std" "i128" ]; }; + resolvedDefaultFeatures = [ "i128" ]; }; "syn 1.0.109" = rec { crateName = "syn"; @@ -11030,9 +12196,9 @@ rec { }; "tempfile" = rec { crateName = "tempfile"; - version = "3.21.0"; + version = "3.22.0"; edition = "2021"; - sha256 = "07kx58ibjk3ydq1gcb7q637fs5zkxaa550lxckhgg9p3427izdhm"; + sha256 = "0lza9r7dzm4k9fghw24yql6iz59wq8xgs46a7i29ir6xz88lvyl4"; authors = [ "Steven Allen " "The Rust Project Developers" @@ -11065,7 +12231,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Storage_FileSystem" "Win32_Foundation" ]; } @@ -11182,9 +12348,9 @@ rec { }; "time" = rec { crateName = "time"; - version = "0.3.41"; + version = "0.3.43"; edition = "2021"; - sha256 = "0h0cpiyya8cjlrh00d2r72bmgg4lsdcncs76qpwy0rn2kghijxla"; + sha256 = "0c90pxn59zccwdyvh8pn9ql04c32ky9kqqli7mc2vrqhxkqydgc3"; authors = [ "Jacob Pratt " "Time contributors" @@ -11193,14 +12359,8 @@ rec { { name = "deranged"; packageId = "deranged"; - usesDefaultFeatures = false; features = [ "powerfmt" ]; } - { - name = "itoa"; - packageId = "itoa"; - optional = true; - } { name = "num-conv"; packageId = "num-conv"; @@ -11245,26 +12405,28 @@ rec { features = { "alloc" = [ "serde?/alloc" ]; "default" = [ "std" ]; - "formatting" = [ "dep:itoa" "std" "time-macros?/formatting" ]; + "formatting" = [ "std" "time-macros?/formatting" ]; "large-dates" = [ "time-macros?/large-dates" ]; "local-offset" = [ "std" "dep:libc" "dep:num_threads" ]; "macros" = [ "dep:time-macros" ]; "parsing" = [ "time-macros?/parsing" ]; "quickcheck" = [ "dep:quickcheck" "alloc" "deranged/quickcheck" ]; - "rand" = [ "dep:rand" "deranged/rand" ]; + "rand" = [ "rand08" "rand09" ]; + "rand08" = [ "dep:rand08" "deranged/rand08" ]; + "rand09" = [ "dep:rand09" "deranged/rand09" ]; "serde" = [ "dep:serde" "time-macros?/serde" "deranged/serde" ]; "serde-human-readable" = [ "serde" "formatting" "parsing" ]; "serde-well-known" = [ "serde" "formatting" "parsing" ]; - "std" = [ "alloc" "deranged/std" ]; + "std" = [ "alloc" ]; "wasm-bindgen" = [ "dep:js-sys" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "formatting" "parsing" "std" ]; }; "time-core" = rec { crateName = "time-core"; - version = "0.1.4"; + version = "0.1.6"; edition = "2021"; - sha256 = "0z5h9fknvdvbs2k2s1chpi3ab3jvgkfhdnqwrvixjngm263s7sf9"; + sha256 = "0sqwhg7n47gbffyr0zhipqcnskxgcgzz1ix8wirqs2rg3my8x1j0"; libName = "time_core"; authors = [ "Jacob Pratt " @@ -11274,9 +12436,9 @@ rec { }; "time-macros" = rec { crateName = "time-macros"; - version = "0.2.22"; + version = "0.2.24"; edition = "2021"; - sha256 = "0jcaxpw220han2bzbrdlpqhy1s5k9i8ri3lw6n5zv4zcja9p69im"; + sha256 = "1wzb6hnl35856f58cx259q7ijc4c7yis0qsnydvw5n8jbw9b1krh"; procMacro = true; libName = "time_macros"; authors = [ @@ -11327,6 +12489,68 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "zerovec" ]; }; + "tls_codec" = rec { + crateName = "tls_codec"; + version = "0.4.2"; + edition = "2021"; + sha256 = "0sxzj0pdinn7fsc8aihqgfylsqi7z9jca0aqy3b8kfz28l9f1qhd"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "tls_codec_derive"; + packageId = "tls_codec_derive"; + optional = true; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + features = [ "alloc" "zeroize_derive" ]; + } + ]; + features = { + "arbitrary" = [ "std" "dep:arbitrary" ]; + "conditional_deserialization" = [ "derive" "tls_codec_derive/conditional_deserialization" ]; + "default" = [ "std" ]; + "derive" = [ "tls_codec_derive" ]; + "serde" = [ "std" "dep:serde" ]; + "std" = [ "tls_codec_derive?/std" ]; + "tls_codec_derive" = [ "dep:tls_codec_derive" ]; + }; + resolvedDefaultFeatures = [ "derive" "std" "tls_codec_derive" ]; + }; + "tls_codec_derive" = rec { + crateName = "tls_codec_derive"; + version = "0.4.2"; + edition = "2021"; + sha256 = "1gglj5cxkpv7i3jazffksrfy5h5242kdvsqawjm2yh1915lpcbid"; + procMacro = true; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.106"; + features = [ "parsing" ]; + } + ]; + features = { + "conditional_deserialization" = [ "syn/full" ]; + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "tokio" = rec { crateName = "tokio"; version = "1.47.1"; @@ -11545,7 +12769,7 @@ rec { "ring" = [ "rustls/ring" ]; "tls12" = [ "rustls/tls12" ]; }; - resolvedDefaultFeatures = [ "logging" "tls12" ]; + resolvedDefaultFeatures = [ "logging" "ring" "tls12" ]; }; "tokio-stream" = rec { crateName = "tokio-stream"; @@ -11562,233 +12786,101 @@ rec { packageId = "futures-core"; } { - name = "pin-project-lite"; - packageId = "pin-project-lite"; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "sync" ]; - } - ]; - devDependencies = [ - { - name = "tokio"; - packageId = "tokio"; - features = [ "full" "test-util" ]; - } - ]; - features = { - "default" = [ "time" ]; - "fs" = [ "tokio/fs" ]; - "full" = [ "time" "net" "io-util" "fs" "sync" "signal" ]; - "io-util" = [ "tokio/io-util" ]; - "net" = [ "tokio/net" ]; - "signal" = [ "tokio/signal" ]; - "sync" = [ "tokio/sync" "tokio-util" ]; - "time" = [ "tokio/time" ]; - "tokio-util" = [ "dep:tokio-util" ]; - }; - resolvedDefaultFeatures = [ "default" "net" "time" ]; - }; - "tokio-util" = rec { - crateName = "tokio-util"; - version = "0.7.16"; - edition = "2021"; - sha256 = "1r9wdrg1k5hna3m0kc8kcb8jdb6n52g7vnw93kw2xxw4cyc7qc0l"; - libName = "tokio_util"; - authors = [ - "Tokio Contributors " - ]; - dependencies = [ - { - name = "bytes"; - packageId = "bytes"; - } - { - name = "futures-core"; - packageId = "futures-core"; - } - { - name = "futures-sink"; - packageId = "futures-sink"; - } - { - name = "pin-project-lite"; - packageId = "pin-project-lite"; - } - { - name = "slab"; - packageId = "slab"; - optional = true; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "sync" ]; - } - ]; - devDependencies = [ - { - name = "tokio"; - packageId = "tokio"; - features = [ "full" ]; - } - ]; - features = { - "__docs_rs" = [ "futures-util" ]; - "compat" = [ "futures-io" ]; - "full" = [ "codec" "compat" "io-util" "time" "net" "rt" "join-map" ]; - "futures-io" = [ "dep:futures-io" ]; - "futures-util" = [ "dep:futures-util" ]; - "hashbrown" = [ "dep:hashbrown" ]; - "io-util" = [ "io" "tokio/rt" "tokio/io-util" ]; - "join-map" = [ "rt" "hashbrown" ]; - "net" = [ "tokio/net" ]; - "rt" = [ "tokio/rt" "tokio/sync" "futures-util" ]; - "slab" = [ "dep:slab" ]; - "time" = [ "tokio/time" "slab" ]; - "tracing" = [ "dep:tracing" ]; - }; - resolvedDefaultFeatures = [ "codec" "default" "io" "slab" "time" ]; - }; - "tonic 0.13.1" = rec { - crateName = "tonic"; - version = "0.13.1"; - edition = "2021"; - sha256 = "1acvnjzh61y0m829mijj6z2nzqnwshdsnmbcl2g4spw3bahinn3y"; - authors = [ - "Lucio Franco " - ]; - dependencies = [ - { - name = "async-trait"; - packageId = "async-trait"; - optional = true; - } - { - name = "base64"; - packageId = "base64"; - } - { - name = "bytes"; - packageId = "bytes"; - } - { - name = "flate2"; - packageId = "flate2"; - optional = true; - } - { - name = "http"; - packageId = "http"; - } - { - name = "http-body"; - packageId = "http-body"; - } - { - name = "http-body-util"; - packageId = "http-body-util"; - } - { - name = "hyper"; - packageId = "hyper"; - optional = true; - features = [ "http1" "http2" ]; - } - { - name = "hyper-timeout"; - packageId = "hyper-timeout"; - optional = true; - } - { - name = "hyper-util"; - packageId = "hyper-util"; - optional = true; - features = [ "tokio" ]; - } - { - name = "percent-encoding"; - packageId = "percent-encoding"; - } - { - name = "pin-project"; - packageId = "pin-project"; + name = "pin-project-lite"; + packageId = "pin-project-lite"; } { - name = "prost"; - packageId = "prost 0.13.5"; - optional = true; - usesDefaultFeatures = false; - features = [ "std" ]; + name = "tokio"; + packageId = "tokio"; + features = [ "sync" ]; } + ]; + devDependencies = [ { name = "tokio"; packageId = "tokio"; - optional = true; - usesDefaultFeatures = false; + features = [ "full" "test-util" ]; } + ]; + features = { + "default" = [ "time" ]; + "fs" = [ "tokio/fs" ]; + "full" = [ "time" "net" "io-util" "fs" "sync" "signal" ]; + "io-util" = [ "tokio/io-util" ]; + "net" = [ "tokio/net" ]; + "signal" = [ "tokio/signal" ]; + "sync" = [ "tokio/sync" "tokio-util" ]; + "time" = [ "tokio/time" ]; + "tokio-util" = [ "dep:tokio-util" ]; + }; + resolvedDefaultFeatures = [ "default" "net" "time" ]; + }; + "tokio-util" = rec { + crateName = "tokio-util"; + version = "0.7.16"; + edition = "2021"; + sha256 = "1r9wdrg1k5hna3m0kc8kcb8jdb6n52g7vnw93kw2xxw4cyc7qc0l"; + libName = "tokio_util"; + authors = [ + "Tokio Contributors " + ]; + dependencies = [ { - name = "tokio-stream"; - packageId = "tokio-stream"; - usesDefaultFeatures = false; + name = "bytes"; + packageId = "bytes"; } { - name = "tower"; - packageId = "tower"; - optional = true; - usesDefaultFeatures = false; + name = "futures-core"; + packageId = "futures-core"; } { - name = "tower-layer"; - packageId = "tower-layer"; + name = "futures-sink"; + packageId = "futures-sink"; } { - name = "tower-service"; - packageId = "tower-service"; + name = "pin-project-lite"; + packageId = "pin-project-lite"; } { - name = "tracing"; - packageId = "tracing"; + name = "slab"; + packageId = "slab"; + optional = true; } - ]; - devDependencies = [ { name = "tokio"; packageId = "tokio"; - features = [ "rt-multi-thread" "macros" ]; + features = [ "sync" ]; } + ]; + devDependencies = [ { - name = "tower"; - packageId = "tower"; + name = "tokio"; + packageId = "tokio"; features = [ "full" ]; } ]; features = { - "_tls-any" = [ "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; - "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; - "codegen" = [ "dep:async-trait" ]; - "default" = [ "router" "transport" "codegen" "prost" ]; - "deflate" = [ "dep:flate2" ]; - "gzip" = [ "dep:flate2" ]; - "prost" = [ "dep:prost" ]; - "router" = [ "dep:axum" "dep:tower" "tower?/util" ]; - "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" ]; - "tls-aws-lc" = [ "_tls-any" "tokio-rustls/aws-lc-rs" ]; - "tls-native-roots" = [ "_tls-any" "channel" "dep:rustls-native-certs" ]; - "tls-ring" = [ "_tls-any" "tokio-rustls/ring" ]; - "tls-webpki-roots" = [ "_tls-any" "channel" "dep:webpki-roots" ]; - "transport" = [ "server" "channel" ]; - "zstd" = [ "dep:zstd" ]; + "__docs_rs" = [ "futures-util" ]; + "compat" = [ "futures-io" ]; + "full" = [ "codec" "compat" "io-util" "time" "net" "rt" "join-map" ]; + "futures-io" = [ "dep:futures-io" ]; + "futures-util" = [ "dep:futures-util" ]; + "hashbrown" = [ "dep:hashbrown" ]; + "io-util" = [ "io" "tokio/rt" "tokio/io-util" ]; + "join-map" = [ "rt" "hashbrown" ]; + "net" = [ "tokio/net" ]; + "rt" = [ "tokio/rt" "tokio/sync" "futures-util" ]; + "slab" = [ "dep:slab" ]; + "time" = [ "tokio/time" "slab" ]; + "tracing" = [ "dep:tracing" ]; }; - resolvedDefaultFeatures = [ "channel" "codegen" "gzip" "prost" ]; + resolvedDefaultFeatures = [ "codec" "default" "io" "slab" "time" ]; }; - "tonic 0.14.1" = rec { + "tonic" = rec { crateName = "tonic"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0h1af8kcwzaxyyr6vdnc0fm8i5gpddsa8qy0rs59d85d4y35mb37"; + sha256 = "00vjbvccmyzjbi0j0ydi1l8psd0lb1nb4p8qzrdxzxz9ihc16xpb"; authors = [ "Lucio Franco " ]; @@ -11812,6 +12904,11 @@ rec { name = "bytes"; packageId = "bytes"; } + { + name = "flate2"; + packageId = "flate2"; + optional = true; + } { name = "h2"; packageId = "h2"; @@ -11907,7 +13004,7 @@ rec { } ]; features = { - "_tls-any" = [ "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; + "_tls-any" = [ "dep:tokio" "tokio?/rt" "tokio?/macros" "tls-connect-info" ]; "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/load-shed" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; "codegen" = [ "dep:async-trait" ]; "default" = [ "router" "transport" "codegen" ]; @@ -11916,19 +13013,20 @@ rec { "router" = [ "dep:axum" "dep:tower" "tower?/util" ]; "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" "tower?/load-shed" ]; "tls-aws-lc" = [ "_tls-any" "tokio-rustls/aws-lc-rs" ]; + "tls-connect-info" = [ "dep:tokio-rustls" ]; "tls-native-roots" = [ "_tls-any" "channel" "dep:rustls-native-certs" ]; "tls-ring" = [ "_tls-any" "tokio-rustls/ring" ]; "tls-webpki-roots" = [ "_tls-any" "channel" "dep:webpki-roots" ]; "transport" = [ "server" "channel" ]; "zstd" = [ "dep:zstd" ]; }; - resolvedDefaultFeatures = [ "channel" "codegen" "default" "router" "server" "transport" ]; + resolvedDefaultFeatures = [ "channel" "codegen" "default" "gzip" "router" "server" "transport" ]; }; "tonic-build" = rec { crateName = "tonic-build"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0pg26f4ylhv9ayp3rbg8baii1gzadl26vqq76y1k1gm3pgc27qs9"; + sha256 = "1qwx0hvddld5rz4ln947x0ihs0qkvhd13g1fv0nczv7rr76alh2c"; libName = "tonic_build"; authors = [ "Lucio Franco " @@ -11958,9 +13056,9 @@ rec { }; "tonic-prost" = rec { crateName = "tonic-prost"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0zf8n691rr6g6xaf4g7x0n8kpkva8ij09l6mnw9cnh3dm6wi3idr"; + sha256 = "0rxamvbxxl7x673g97pvhr5gag2czrj3sjq2xy3js9g1djnm1gb6"; libName = "tonic_prost"; authors = [ "Lucio Franco " @@ -11972,11 +13070,11 @@ rec { } { name = "prost"; - packageId = "prost 0.14.1"; + packageId = "prost"; } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic"; usesDefaultFeatures = false; } ]; @@ -11984,9 +13082,9 @@ rec { }; "tonic-prost-build" = rec { crateName = "tonic-prost-build"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "18ggfll4v3mh6g4z3xssd97cmkk08jbqqjqc8hsy258vs3y9iwlf"; + sha256 = "18jqs18s9imj5b78vjhqpm6ccm61qns9cgyb7zs3zp2382x6r8dl"; libName = "tonic_prost_build"; authors = [ "Lucio Franco " @@ -12035,9 +13133,9 @@ rec { }; "tonic-reflection" = rec { crateName = "tonic-reflection"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0flaxmpryxlalhkcg0kl6sia18sn335jmlcpc6cr9kc56c3s0rq2"; + sha256 = "0yzdhv9inp4x51p8axnz3w4nnhhblyc1zw3gn5nxd0bm73l57nil"; libName = "tonic_reflection"; authors = [ "James Nugent " @@ -12046,7 +13144,7 @@ rec { dependencies = [ { name = "prost"; - packageId = "prost 0.14.1"; + packageId = "prost"; } { name = "prost-types"; @@ -12067,7 +13165,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic"; usesDefaultFeatures = false; features = [ "codegen" ]; } @@ -12086,7 +13184,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic"; usesDefaultFeatures = false; features = [ "transport" ]; } @@ -12549,9 +13647,9 @@ rec { }; "tracing-opentelemetry" = rec { crateName = "tracing-opentelemetry"; - version = "0.31.0"; + version = "0.32.0"; edition = "2021"; - sha256 = "171scb8d5ynxvnyvq7lm9wzn4fzk0jf124v49p8d01wmydcmkkyx"; + sha256 = "13hvpfljbxi8id3j5pmzn4rhc4nkw68pfp57mf4q1n1x8rc5cvhy"; libName = "tracing_opentelemetry"; dependencies = [ { @@ -12559,10 +13657,6 @@ rec { packageId = "js-sys"; target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); } - { - name = "once_cell"; - packageId = "once_cell"; - } { name = "opentelemetry"; packageId = "opentelemetry"; @@ -12575,11 +13669,20 @@ rec { usesDefaultFeatures = false; features = [ "trace" ]; } + { + name = "rustversion"; + packageId = "rustversion"; + } { name = "smallvec"; packageId = "smallvec"; optional = true; } + { + name = "thiserror"; + packageId = "thiserror 2.0.16"; + usesDefaultFeatures = false; + } { name = "tracing"; packageId = "tracing"; @@ -12618,7 +13721,7 @@ rec { name = "opentelemetry_sdk"; packageId = "opentelemetry_sdk"; usesDefaultFeatures = false; - features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" ]; + features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" "testing" ]; } { name = "tracing"; @@ -12634,14 +13737,10 @@ rec { } ]; features = { - "async-trait" = [ "dep:async-trait" ]; "default" = [ "tracing-log" "metrics" ]; - "futures-util" = [ "dep:futures-util" ]; "lazy_static" = [ "dep:lazy_static" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "smallvec" ]; "smallvec" = [ "dep:smallvec" ]; - "thiserror" = [ "dep:thiserror" ]; - "thiserror-1" = [ "dep:thiserror-1" ]; "tracing-log" = [ "dep:tracing-log" ]; }; resolvedDefaultFeatures = [ "default" "metrics" "smallvec" "tracing-log" ]; @@ -12852,9 +13951,9 @@ rec { }; "unicode-ident" = rec { crateName = "unicode-ident"; - version = "1.0.18"; + version = "1.0.19"; edition = "2018"; - sha256 = "04k5r6sijkafzljykdq26mhjpmhdx4jwzvn1lh90g9ax9903jpss"; + sha256 = "17bx1j1zf6b9j3kpyf74mraary7ava3984km0n8kh499h5a58fpn"; libName = "unicode_ident"; authors = [ "David Tolnay " @@ -12984,9 +14083,9 @@ rec { }; "uuid" = rec { crateName = "uuid"; - version = "1.18.0"; + version = "1.18.1"; edition = "2018"; - sha256 = "1gn1vlggiwrdpizqcpc5hyxsqz9s5215bbay1b182mqn7rj9ccgk"; + sha256 = "18kh01qmfayn4psap52x8xdjkzw2q8bcbpnhhxjs05dr22mbi1rg"; authors = [ "Ashley Mannix" "Dylan DPC" @@ -13136,34 +14235,49 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "wasi 0.14.2+wasi-0.2.4" = rec { + "wasi 0.14.7+wasi-0.2.4" = rec { crateName = "wasi"; - version = "0.14.2+wasi-0.2.4"; + version = "0.14.7+wasi-0.2.4"; edition = "2021"; - sha256 = "1cwcqjr3dgdq8j325awgk8a715h0hg0f7jqzsb077n4qm6jzk0wn"; - authors = [ - "The Cranelift Project Developers" + sha256 = "133fq3mq7h65mzrsphcm7bbbx1gsz7srrbwh01624zin43g7hd48"; + dependencies = [ + { + name = "wasip2"; + packageId = "wasip2"; + usesDefaultFeatures = false; + } ]; + features = { + "bitflags" = [ "wasip2/bitflags" ]; + "default" = [ "wasip2/default" ]; + "std" = [ "wasip2/std" ]; + }; + }; + "wasip2" = rec { + crateName = "wasip2"; + version = "1.0.1+wasi-0.2.4"; + edition = "2021"; + sha256 = "1rsqmpspwy0zja82xx7kbkbg9fv34a4a2if3sbd76dy64a244qh5"; dependencies = [ { - name = "wit-bindgen-rt"; - packageId = "wit-bindgen-rt"; - features = [ "bitflags" ]; + name = "wit-bindgen"; + packageId = "wit-bindgen"; + usesDefaultFeatures = false; } ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; + "alloc" = [ "dep:alloc" ]; + "bitflags" = [ "wit-bindgen/bitflags" ]; "core" = [ "dep:core" ]; - "default" = [ "std" ]; - "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ]; - "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ]; + "default" = [ "std" "bitflags" ]; + "rustc-dep-of-std" = [ "core" "alloc" "wit-bindgen/rustc-dep-of-std" ]; }; }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.100"; + version = "0.2.101"; edition = "2021"; - sha256 = "1x8ymcm6yi3i1rwj78myl1agqv2m86i648myy3lc97s9swlqkp0y"; + sha256 = "0fv0yrfx170gf7i4dds4c69dxh8axp247wyip2dm4nylmmf9253y"; libName = "wasm_bindgen"; authors = [ "The wasm-bindgen Developers" @@ -13187,6 +14301,10 @@ rec { name = "wasm-bindgen-macro"; packageId = "wasm-bindgen-macro"; } + { + name = "wasm-bindgen-shared"; + packageId = "wasm-bindgen-shared"; + } ]; devDependencies = [ { @@ -13203,15 +14321,14 @@ rec { "serde-serialize" = [ "serde" "serde_json" "std" ]; "serde_json" = [ "dep:serde_json" ]; "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ]; - "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ]; }; resolvedDefaultFeatures = [ "default" "msrv" "rustversion" "std" ]; }; "wasm-bindgen-backend" = rec { crateName = "wasm-bindgen-backend"; - version = "0.2.100"; + version = "0.2.101"; edition = "2021"; - sha256 = "1ihbf1hq3y81c4md9lyh6lcwbx6a5j0fw4fygd423g62lm8hc2ig"; + sha256 = "1fwkzc2z701g2rm2jq4m20a0lkc6qqq5r3a407yj6yfahalip3g2"; libName = "wasm_bindgen_backend"; authors = [ "The wasm-bindgen Developers" @@ -13249,9 +14366,9 @@ rec { }; "wasm-bindgen-futures" = rec { crateName = "wasm-bindgen-futures"; - version = "0.4.50"; + version = "0.4.51"; edition = "2021"; - sha256 = "0q8ymi6i9r3vxly551dhxcyai7nc491mspj0j1wbafxwq074fpam"; + sha256 = "1znz8i8kyrlpq6q2fals223zrwwixmn6s7a16s1v6sdlm4wm1a0c"; libName = "wasm_bindgen_futures"; authors = [ "The wasm-bindgen Developers" @@ -13294,9 +14411,9 @@ rec { }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.100"; + version = "0.2.101"; edition = "2021"; - sha256 = "01xls2dvzh38yj17jgrbiib1d3nyad7k2yw9s0mpklwys333zrkz"; + sha256 = "038vxk2yg11c3qv9iyasqcm70dw8sr2xmyaxqjq7bxzgwcx4cgbw"; procMacro = true; libName = "wasm_bindgen_macro"; authors = [ @@ -13318,9 +14435,9 @@ rec { }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.100"; + version = "0.2.101"; edition = "2021"; - sha256 = "1plm8dh20jg2id0320pbmrlsv6cazfv6b6907z19ys4z1jj7xs4a"; + sha256 = "1ajjqmdbi7ybdpw41avskjfdqnxpc9v547gmr8izj4c2n24wxd3v"; libName = "wasm_bindgen_macro_support"; authors = [ "The wasm-bindgen Developers" @@ -13354,10 +14471,10 @@ rec { }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.100"; + version = "0.2.101"; edition = "2021"; links = "wasm_bindgen"; - sha256 = "0gffxvqgbh9r9xl36gprkfnh3w9gl8wgia6xrin7v11sjcxxf18s"; + sha256 = "1h94nvm5p8zyr3718x4zhdz7rcmd0rir0b46a1ljqx8k7d58ahzi"; libName = "wasm_bindgen_shared"; authors = [ "The wasm-bindgen Developers" @@ -13372,9 +14489,9 @@ rec { }; "web-sys" = rec { crateName = "web-sys"; - version = "0.3.77"; + version = "0.3.78"; edition = "2021"; - sha256 = "1lnmc1ffbq34qw91nndklqqm75rasaffj2g4f8h1yvqqz4pdvdik"; + sha256 = "04lbcdr74pilsrf1g76lbw9bwg7zghgslqxdiwmxkw4zfhvvdr3p"; libName = "web_sys"; authors = [ "The wasm-bindgen Developers" @@ -13489,6 +14606,7 @@ rec { "FontFaceSetLoadEvent" = [ "Event" ]; "GainNode" = [ "AudioNode" "EventTarget" ]; "GamepadEvent" = [ "Event" ]; + "GestureEvent" = [ "Event" "UiEvent" ]; "GpuDevice" = [ "EventTarget" ]; "GpuInternalError" = [ "GpuError" ]; "GpuOutOfMemoryError" = [ "GpuError" ]; @@ -13643,6 +14761,8 @@ rec { "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ]; "PerformanceResourceTiming" = [ "PerformanceEntry" ]; "PermissionStatus" = [ "EventTarget" ]; + "PictureInPictureEvent" = [ "Event" ]; + "PictureInPictureWindow" = [ "EventTarget" ]; "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ]; "PopStateEvent" = [ "Event" ]; "PopupBlockedEvent" = [ "Event" ]; @@ -13913,9 +15033,9 @@ rec { }; "winapi-util" = rec { crateName = "winapi-util"; - version = "0.1.10"; + version = "0.1.11"; edition = "2021"; - sha256 = "08hb8rj3aq9lcrfmliqs4l7v9zh6srbcn0376yn0pndkf5qvyy09"; + sha256 = "08hdl7mkll7pz8whg869h58c1r9y7in0w0pk8fm24qc77k0b39y2"; libName = "winapi_util"; authors = [ "Andrew Gallant " @@ -13923,7 +15043,7 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Storage_FileSystem" "Win32_System_Console" "Win32_System_SystemInformation" ]; } @@ -13967,7 +15087,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } { @@ -14711,7 +15831,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } { @@ -14745,7 +15865,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } { @@ -14818,7 +15938,7 @@ rec { ]; }; - "windows-link" = rec { + "windows-link 0.1.3" = rec { crateName = "windows-link"; version = "0.1.3"; edition = "2021"; @@ -14828,6 +15948,14 @@ rec { "Microsoft" ]; + }; + "windows-link 0.2.0" = rec { + crateName = "windows-link"; + version = "0.2.0"; + edition = "2021"; + sha256 = "0r9w2z96d5phmm185aq92z54jp9h2nqisa4wgc71idxbc436rr25"; + libName = "windows_link"; + }; "windows-numerics" = rec { crateName = "windows-numerics"; @@ -14843,7 +15971,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } ]; @@ -14863,7 +15991,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } ]; @@ -14884,20 +16012,268 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; }; - resolvedDefaultFeatures = [ "std" ]; + resolvedDefaultFeatures = [ "std" ]; + }; + "windows-sys 0.52.0" = rec { + crateName = "windows-sys"; + version = "0.52.0"; + edition = "2021"; + sha256 = "0gd3v4ji88490zgb6b5mq5zgbvwv7zx1ibn8v3x83rwcdbryaar8"; + libName = "windows_sys"; + authors = [ + "Microsoft" + ]; + dependencies = [ + { + name = "windows-targets"; + packageId = "windows-targets 0.52.6"; + } + ]; + features = { + "Wdk_Foundation" = [ "Wdk" ]; + "Wdk_Graphics" = [ "Wdk" ]; + "Wdk_Graphics_Direct3D" = [ "Wdk_Graphics" ]; + "Wdk_Storage" = [ "Wdk" ]; + "Wdk_Storage_FileSystem" = [ "Wdk_Storage" ]; + "Wdk_Storage_FileSystem_Minifilters" = [ "Wdk_Storage_FileSystem" ]; + "Wdk_System" = [ "Wdk" ]; + "Wdk_System_IO" = [ "Wdk_System" ]; + "Wdk_System_OfflineRegistry" = [ "Wdk_System" ]; + "Wdk_System_Registry" = [ "Wdk_System" ]; + "Wdk_System_SystemInformation" = [ "Wdk_System" ]; + "Wdk_System_SystemServices" = [ "Wdk_System" ]; + "Wdk_System_Threading" = [ "Wdk_System" ]; + "Win32_Data" = [ "Win32" ]; + "Win32_Data_HtmlHelp" = [ "Win32_Data" ]; + "Win32_Data_RightsManagement" = [ "Win32_Data" ]; + "Win32_Devices" = [ "Win32" ]; + "Win32_Devices_AllJoyn" = [ "Win32_Devices" ]; + "Win32_Devices_BiometricFramework" = [ "Win32_Devices" ]; + "Win32_Devices_Bluetooth" = [ "Win32_Devices" ]; + "Win32_Devices_Communication" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceAndDriverInstallation" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceQuery" = [ "Win32_Devices" ]; + "Win32_Devices_Display" = [ "Win32_Devices" ]; + "Win32_Devices_Enumeration" = [ "Win32_Devices" ]; + "Win32_Devices_Enumeration_Pnp" = [ "Win32_Devices_Enumeration" ]; + "Win32_Devices_Fax" = [ "Win32_Devices" ]; + "Win32_Devices_HumanInterfaceDevice" = [ "Win32_Devices" ]; + "Win32_Devices_PortableDevices" = [ "Win32_Devices" ]; + "Win32_Devices_Properties" = [ "Win32_Devices" ]; + "Win32_Devices_Pwm" = [ "Win32_Devices" ]; + "Win32_Devices_Sensors" = [ "Win32_Devices" ]; + "Win32_Devices_SerialCommunication" = [ "Win32_Devices" ]; + "Win32_Devices_Tapi" = [ "Win32_Devices" ]; + "Win32_Devices_Usb" = [ "Win32_Devices" ]; + "Win32_Devices_WebServicesOnDevices" = [ "Win32_Devices" ]; + "Win32_Foundation" = [ "Win32" ]; + "Win32_Gaming" = [ "Win32" ]; + "Win32_Globalization" = [ "Win32" ]; + "Win32_Graphics" = [ "Win32" ]; + "Win32_Graphics_Dwm" = [ "Win32_Graphics" ]; + "Win32_Graphics_Gdi" = [ "Win32_Graphics" ]; + "Win32_Graphics_GdiPlus" = [ "Win32_Graphics" ]; + "Win32_Graphics_Hlsl" = [ "Win32_Graphics" ]; + "Win32_Graphics_OpenGL" = [ "Win32_Graphics" ]; + "Win32_Graphics_Printing" = [ "Win32_Graphics" ]; + "Win32_Graphics_Printing_PrintTicket" = [ "Win32_Graphics_Printing" ]; + "Win32_Management" = [ "Win32" ]; + "Win32_Management_MobileDeviceManagementRegistration" = [ "Win32_Management" ]; + "Win32_Media" = [ "Win32" ]; + "Win32_Media_Audio" = [ "Win32_Media" ]; + "Win32_Media_DxMediaObjects" = [ "Win32_Media" ]; + "Win32_Media_KernelStreaming" = [ "Win32_Media" ]; + "Win32_Media_Multimedia" = [ "Win32_Media" ]; + "Win32_Media_Streaming" = [ "Win32_Media" ]; + "Win32_Media_WindowsMediaFormat" = [ "Win32_Media" ]; + "Win32_NetworkManagement" = [ "Win32" ]; + "Win32_NetworkManagement_Dhcp" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Dns" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_InternetConnectionWizard" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_IpHelper" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Multicast" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Ndis" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetBios" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetManagement" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetShell" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetworkDiagnosticsFramework" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_P2P" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_QoS" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Rras" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Snmp" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WNet" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WebDav" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WiFi" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsConnectionManager" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsFilteringPlatform" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsFirewall" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsNetworkVirtualization" = [ "Win32_NetworkManagement" ]; + "Win32_Networking" = [ "Win32" ]; + "Win32_Networking_ActiveDirectory" = [ "Win32_Networking" ]; + "Win32_Networking_Clustering" = [ "Win32_Networking" ]; + "Win32_Networking_HttpServer" = [ "Win32_Networking" ]; + "Win32_Networking_Ldap" = [ "Win32_Networking" ]; + "Win32_Networking_WebSocket" = [ "Win32_Networking" ]; + "Win32_Networking_WinHttp" = [ "Win32_Networking" ]; + "Win32_Networking_WinInet" = [ "Win32_Networking" ]; + "Win32_Networking_WinSock" = [ "Win32_Networking" ]; + "Win32_Networking_WindowsWebServices" = [ "Win32_Networking" ]; + "Win32_Security" = [ "Win32" ]; + "Win32_Security_AppLocker" = [ "Win32_Security" ]; + "Win32_Security_Authentication" = [ "Win32_Security" ]; + "Win32_Security_Authentication_Identity" = [ "Win32_Security_Authentication" ]; + "Win32_Security_Authorization" = [ "Win32_Security" ]; + "Win32_Security_Credentials" = [ "Win32_Security" ]; + "Win32_Security_Cryptography" = [ "Win32_Security" ]; + "Win32_Security_Cryptography_Catalog" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_Certificates" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_Sip" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_UI" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_DiagnosticDataQuery" = [ "Win32_Security" ]; + "Win32_Security_DirectoryServices" = [ "Win32_Security" ]; + "Win32_Security_EnterpriseData" = [ "Win32_Security" ]; + "Win32_Security_ExtensibleAuthenticationProtocol" = [ "Win32_Security" ]; + "Win32_Security_Isolation" = [ "Win32_Security" ]; + "Win32_Security_LicenseProtection" = [ "Win32_Security" ]; + "Win32_Security_NetworkAccessProtection" = [ "Win32_Security" ]; + "Win32_Security_WinTrust" = [ "Win32_Security" ]; + "Win32_Security_WinWlx" = [ "Win32_Security" ]; + "Win32_Storage" = [ "Win32" ]; + "Win32_Storage_Cabinets" = [ "Win32_Storage" ]; + "Win32_Storage_CloudFilters" = [ "Win32_Storage" ]; + "Win32_Storage_Compression" = [ "Win32_Storage" ]; + "Win32_Storage_DistributedFileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_FileHistory" = [ "Win32_Storage" ]; + "Win32_Storage_FileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_Imapi" = [ "Win32_Storage" ]; + "Win32_Storage_IndexServer" = [ "Win32_Storage" ]; + "Win32_Storage_InstallableFileSystems" = [ "Win32_Storage" ]; + "Win32_Storage_IscsiDisc" = [ "Win32_Storage" ]; + "Win32_Storage_Jet" = [ "Win32_Storage" ]; + "Win32_Storage_Nvme" = [ "Win32_Storage" ]; + "Win32_Storage_OfflineFiles" = [ "Win32_Storage" ]; + "Win32_Storage_OperationRecorder" = [ "Win32_Storage" ]; + "Win32_Storage_Packaging" = [ "Win32_Storage" ]; + "Win32_Storage_Packaging_Appx" = [ "Win32_Storage_Packaging" ]; + "Win32_Storage_ProjectedFileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_StructuredStorage" = [ "Win32_Storage" ]; + "Win32_Storage_Vhd" = [ "Win32_Storage" ]; + "Win32_Storage_Xps" = [ "Win32_Storage" ]; + "Win32_System" = [ "Win32" ]; + "Win32_System_AddressBook" = [ "Win32_System" ]; + "Win32_System_Antimalware" = [ "Win32_System" ]; + "Win32_System_ApplicationInstallationAndServicing" = [ "Win32_System" ]; + "Win32_System_ApplicationVerifier" = [ "Win32_System" ]; + "Win32_System_ClrHosting" = [ "Win32_System" ]; + "Win32_System_Com" = [ "Win32_System" ]; + "Win32_System_Com_Marshal" = [ "Win32_System_Com" ]; + "Win32_System_Com_StructuredStorage" = [ "Win32_System_Com" ]; + "Win32_System_Com_Urlmon" = [ "Win32_System_Com" ]; + "Win32_System_ComponentServices" = [ "Win32_System" ]; + "Win32_System_Console" = [ "Win32_System" ]; + "Win32_System_CorrelationVector" = [ "Win32_System" ]; + "Win32_System_DataExchange" = [ "Win32_System" ]; + "Win32_System_DeploymentServices" = [ "Win32_System" ]; + "Win32_System_DeveloperLicensing" = [ "Win32_System" ]; + "Win32_System_Diagnostics" = [ "Win32_System" ]; + "Win32_System_Diagnostics_Ceip" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_Debug" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_Debug_Extensions" = [ "Win32_System_Diagnostics_Debug" ]; + "Win32_System_Diagnostics_Etw" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ProcessSnapshotting" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ToolHelp" = [ "Win32_System_Diagnostics" ]; + "Win32_System_DistributedTransactionCoordinator" = [ "Win32_System" ]; + "Win32_System_Environment" = [ "Win32_System" ]; + "Win32_System_ErrorReporting" = [ "Win32_System" ]; + "Win32_System_EventCollector" = [ "Win32_System" ]; + "Win32_System_EventLog" = [ "Win32_System" ]; + "Win32_System_EventNotificationService" = [ "Win32_System" ]; + "Win32_System_GroupPolicy" = [ "Win32_System" ]; + "Win32_System_HostCompute" = [ "Win32_System" ]; + "Win32_System_HostComputeNetwork" = [ "Win32_System" ]; + "Win32_System_HostComputeSystem" = [ "Win32_System" ]; + "Win32_System_Hypervisor" = [ "Win32_System" ]; + "Win32_System_IO" = [ "Win32_System" ]; + "Win32_System_Iis" = [ "Win32_System" ]; + "Win32_System_Ioctl" = [ "Win32_System" ]; + "Win32_System_JobObjects" = [ "Win32_System" ]; + "Win32_System_Js" = [ "Win32_System" ]; + "Win32_System_Kernel" = [ "Win32_System" ]; + "Win32_System_LibraryLoader" = [ "Win32_System" ]; + "Win32_System_Mailslots" = [ "Win32_System" ]; + "Win32_System_Mapi" = [ "Win32_System" ]; + "Win32_System_Memory" = [ "Win32_System" ]; + "Win32_System_Memory_NonVolatile" = [ "Win32_System_Memory" ]; + "Win32_System_MessageQueuing" = [ "Win32_System" ]; + "Win32_System_MixedReality" = [ "Win32_System" ]; + "Win32_System_Ole" = [ "Win32_System" ]; + "Win32_System_PasswordManagement" = [ "Win32_System" ]; + "Win32_System_Performance" = [ "Win32_System" ]; + "Win32_System_Performance_HardwareCounterProfiling" = [ "Win32_System_Performance" ]; + "Win32_System_Pipes" = [ "Win32_System" ]; + "Win32_System_Power" = [ "Win32_System" ]; + "Win32_System_ProcessStatus" = [ "Win32_System" ]; + "Win32_System_Recovery" = [ "Win32_System" ]; + "Win32_System_Registry" = [ "Win32_System" ]; + "Win32_System_RemoteDesktop" = [ "Win32_System" ]; + "Win32_System_RemoteManagement" = [ "Win32_System" ]; + "Win32_System_RestartManager" = [ "Win32_System" ]; + "Win32_System_Restore" = [ "Win32_System" ]; + "Win32_System_Rpc" = [ "Win32_System" ]; + "Win32_System_Search" = [ "Win32_System" ]; + "Win32_System_Search_Common" = [ "Win32_System_Search" ]; + "Win32_System_SecurityCenter" = [ "Win32_System" ]; + "Win32_System_Services" = [ "Win32_System" ]; + "Win32_System_SetupAndMigration" = [ "Win32_System" ]; + "Win32_System_Shutdown" = [ "Win32_System" ]; + "Win32_System_StationsAndDesktops" = [ "Win32_System" ]; + "Win32_System_SubsystemForLinux" = [ "Win32_System" ]; + "Win32_System_SystemInformation" = [ "Win32_System" ]; + "Win32_System_SystemServices" = [ "Win32_System" ]; + "Win32_System_Threading" = [ "Win32_System" ]; + "Win32_System_Time" = [ "Win32_System" ]; + "Win32_System_TpmBaseServices" = [ "Win32_System" ]; + "Win32_System_UserAccessLogging" = [ "Win32_System" ]; + "Win32_System_Variant" = [ "Win32_System" ]; + "Win32_System_VirtualDosMachines" = [ "Win32_System" ]; + "Win32_System_WindowsProgramming" = [ "Win32_System" ]; + "Win32_System_Wmi" = [ "Win32_System" ]; + "Win32_UI" = [ "Win32" ]; + "Win32_UI_Accessibility" = [ "Win32_UI" ]; + "Win32_UI_ColorSystem" = [ "Win32_UI" ]; + "Win32_UI_Controls" = [ "Win32_UI" ]; + "Win32_UI_Controls_Dialogs" = [ "Win32_UI_Controls" ]; + "Win32_UI_HiDpi" = [ "Win32_UI" ]; + "Win32_UI_Input" = [ "Win32_UI" ]; + "Win32_UI_Input_Ime" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_KeyboardAndMouse" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Pointer" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Touch" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_XboxController" = [ "Win32_UI_Input" ]; + "Win32_UI_InteractionContext" = [ "Win32_UI" ]; + "Win32_UI_Magnification" = [ "Win32_UI" ]; + "Win32_UI_Shell" = [ "Win32_UI" ]; + "Win32_UI_Shell_PropertiesSystem" = [ "Win32_UI_Shell" ]; + "Win32_UI_TabletPC" = [ "Win32_UI" ]; + "Win32_UI_TextServices" = [ "Win32_UI" ]; + "Win32_UI_WindowsAndMessaging" = [ "Win32_UI" ]; + "Win32_Web" = [ "Win32" ]; + "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; + }; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; }; - "windows-sys 0.52.0" = rec { + "windows-sys 0.59.0" = rec { crateName = "windows-sys"; - version = "0.52.0"; + version = "0.59.0"; edition = "2021"; - sha256 = "0gd3v4ji88490zgb6b5mq5zgbvwv7zx1ibn8v3x83rwcdbryaar8"; + sha256 = "0fw5672ziw8b3zpmnbp9pdv1famk74f1l9fcbc3zsrzdg56vqf0y"; libName = "windows_sys"; authors = [ "Microsoft" @@ -14909,19 +16285,28 @@ rec { } ]; features = { + "Wdk" = [ "Win32_Foundation" ]; + "Wdk_Devices" = [ "Wdk" ]; + "Wdk_Devices_Bluetooth" = [ "Wdk_Devices" ]; + "Wdk_Devices_HumanInterfaceDevice" = [ "Wdk_Devices" ]; "Wdk_Foundation" = [ "Wdk" ]; "Wdk_Graphics" = [ "Wdk" ]; "Wdk_Graphics_Direct3D" = [ "Wdk_Graphics" ]; + "Wdk_NetworkManagement" = [ "Wdk" ]; + "Wdk_NetworkManagement_Ndis" = [ "Wdk_NetworkManagement" ]; + "Wdk_NetworkManagement_WindowsFilteringPlatform" = [ "Wdk_NetworkManagement" ]; "Wdk_Storage" = [ "Wdk" ]; "Wdk_Storage_FileSystem" = [ "Wdk_Storage" ]; "Wdk_Storage_FileSystem_Minifilters" = [ "Wdk_Storage_FileSystem" ]; "Wdk_System" = [ "Wdk" ]; "Wdk_System_IO" = [ "Wdk_System" ]; + "Wdk_System_Memory" = [ "Wdk_System" ]; "Wdk_System_OfflineRegistry" = [ "Wdk_System" ]; "Wdk_System_Registry" = [ "Wdk_System" ]; "Wdk_System_SystemInformation" = [ "Wdk_System" ]; "Wdk_System_SystemServices" = [ "Wdk_System" ]; "Wdk_System_Threading" = [ "Wdk_System" ]; + "Win32" = [ "Win32_Foundation" ]; "Win32_Data" = [ "Win32" ]; "Win32_Data_HtmlHelp" = [ "Win32_Data" ]; "Win32_Data_RightsManagement" = [ "Win32_Data" ]; @@ -15061,6 +16446,7 @@ rec { "Win32_System_Diagnostics_Etw" = [ "Win32_System_Diagnostics" ]; "Win32_System_Diagnostics_ProcessSnapshotting" = [ "Win32_System_Diagnostics" ]; "Win32_System_Diagnostics_ToolHelp" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_TraceLogging" = [ "Win32_System_Diagnostics" ]; "Win32_System_DistributedTransactionCoordinator" = [ "Win32_System" ]; "Win32_System_Environment" = [ "Win32_System" ]; "Win32_System_ErrorReporting" = [ "Win32_System" ]; @@ -15132,6 +16518,7 @@ rec { "Win32_UI_InteractionContext" = [ "Win32_UI" ]; "Win32_UI_Magnification" = [ "Win32_UI" ]; "Win32_UI_Shell" = [ "Win32_UI" ]; + "Win32_UI_Shell_Common" = [ "Win32_UI_Shell" ]; "Win32_UI_Shell_PropertiesSystem" = [ "Win32_UI_Shell" ]; "Win32_UI_TabletPC" = [ "Win32_UI" ]; "Win32_UI_TextServices" = [ "Win32_UI" ]; @@ -15139,13 +16526,13 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; }; - "windows-sys 0.59.0" = rec { + "windows-sys 0.60.2" = rec { crateName = "windows-sys"; - version = "0.59.0"; + version = "0.60.2"; edition = "2021"; - sha256 = "0fw5672ziw8b3zpmnbp9pdv1famk74f1l9fcbc3zsrzdg56vqf0y"; + sha256 = "1jrbc615ihqnhjhxplr2kw7rasrskv9wj3lr80hgfd42sbj01xgj"; libName = "windows_sys"; authors = [ "Microsoft" @@ -15153,7 +16540,8 @@ rec { dependencies = [ { name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + packageId = "windows-targets 0.53.3"; + usesDefaultFeatures = false; } ]; features = { @@ -15184,16 +16572,21 @@ rec { "Win32_Data_RightsManagement" = [ "Win32_Data" ]; "Win32_Devices" = [ "Win32" ]; "Win32_Devices_AllJoyn" = [ "Win32_Devices" ]; + "Win32_Devices_Beep" = [ "Win32_Devices" ]; "Win32_Devices_BiometricFramework" = [ "Win32_Devices" ]; "Win32_Devices_Bluetooth" = [ "Win32_Devices" ]; + "Win32_Devices_Cdrom" = [ "Win32_Devices" ]; "Win32_Devices_Communication" = [ "Win32_Devices" ]; "Win32_Devices_DeviceAndDriverInstallation" = [ "Win32_Devices" ]; "Win32_Devices_DeviceQuery" = [ "Win32_Devices" ]; "Win32_Devices_Display" = [ "Win32_Devices" ]; + "Win32_Devices_Dvd" = [ "Win32_Devices" ]; "Win32_Devices_Enumeration" = [ "Win32_Devices" ]; "Win32_Devices_Enumeration_Pnp" = [ "Win32_Devices_Enumeration" ]; "Win32_Devices_Fax" = [ "Win32_Devices" ]; "Win32_Devices_HumanInterfaceDevice" = [ "Win32_Devices" ]; + "Win32_Devices_Nfc" = [ "Win32_Devices" ]; + "Win32_Devices_Nfp" = [ "Win32_Devices" ]; "Win32_Devices_PortableDevices" = [ "Win32_Devices" ]; "Win32_Devices_Properties" = [ "Win32_Devices" ]; "Win32_Devices_Pwm" = [ "Win32_Devices" ]; @@ -15398,21 +16791,18 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Console" "default" ]; }; - "windows-sys 0.60.2" = rec { + "windows-sys 0.61.0" = rec { crateName = "windows-sys"; - version = "0.60.2"; + version = "0.61.0"; edition = "2021"; - sha256 = "1jrbc615ihqnhjhxplr2kw7rasrskv9wj3lr80hgfd42sbj01xgj"; + sha256 = "1ajpwsmzfcsa1r7i0dxzvfn24dp3525rcd7aq95ydvdj8171h0g2"; libName = "windows_sys"; - authors = [ - "Microsoft" - ]; dependencies = [ { - name = "windows-targets"; - packageId = "windows-targets 0.53.3"; + name = "windows-link"; + packageId = "windows-link 0.2.0"; usesDefaultFeatures = false; } ]; @@ -15663,7 +17053,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_SystemInformation" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" "default" ]; }; "windows-targets 0.52.6" = rec { crateName = "windows-targets"; @@ -15730,7 +17120,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; target = { target, features }: (target."windows_raw_dylib" or false); } @@ -15789,7 +17179,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } ]; @@ -15955,24 +17345,22 @@ rec { ]; }; - "wit-bindgen-rt" = rec { - crateName = "wit-bindgen-rt"; - version = "0.39.0"; + "wit-bindgen" = rec { + crateName = "wit-bindgen"; + version = "0.46.0"; edition = "2021"; - sha256 = "1hd65pa5hp0nl664m94bg554h4zlhrzmkjsf6lsgsb7yc4734hkg"; - libName = "wit_bindgen_rt"; - dependencies = [ - { - name = "bitflags"; - packageId = "bitflags"; - optional = true; - } + sha256 = "0ngysw50gp2wrrfxbwgp6dhw1g6sckknsn3wm7l00vaf7n48aypi"; + libName = "wit_bindgen"; + authors = [ + "Alex Crichton " ]; features = { - "async" = [ "dep:futures" "dep:once_cell" ]; + "async" = [ "macros" "std" "dep:futures" "dep:once_cell" "wit-bindgen-rust-macro/async" ]; "bitflags" = [ "dep:bitflags" ]; + "default" = [ "macros" "realloc" "async" "std" "bitflags" ]; + "macros" = [ "dep:wit-bindgen-rust-macro" ]; + "rustc-dep-of-std" = [ "dep:core" "dep:alloc" ]; }; - resolvedDefaultFeatures = [ "bitflags" ]; }; "writeable" = rec { crateName = "writeable"; @@ -15986,15 +17374,70 @@ rec { "either" = [ "dep:either" ]; }; }; - "xml-rs" = rec { - crateName = "xml-rs"; - version = "0.8.27"; + "x509-cert" = rec { + crateName = "x509-cert"; + version = "0.2.5"; edition = "2021"; - crateBin = []; - sha256 = "1irplg223x6w3lvj0yig6czbiwci06495wc9xg3660kh6cvl1n3g"; - libName = "xml"; + sha256 = "155f42vm6m7phn8w7s2wmk9vli3ws45dqpk5z3jilw0a04syj08k"; + libName = "x509_cert"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + features = [ "db" ]; + } + { + name = "der"; + packageId = "der"; + features = [ "alloc" "derive" "flagset" "oid" ]; + } + { + name = "sha1"; + packageId = "sha1"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + optional = true; + features = [ "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + features = [ "alloc" ]; + } + { + name = "tls_codec"; + packageId = "tls_codec"; + optional = true; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" "std" "der/arbitrary" "spki/arbitrary" ]; + "builder" = [ "std" "sha1/default" "signature" ]; + "default" = [ "pem" "std" ]; + "pem" = [ "der/pem" "spki/pem" ]; + "sct" = [ "dep:tls_codec" ]; + "sha1" = [ "dep:sha1" ]; + "signature" = [ "dep:signature" ]; + "std" = [ "const-oid/std" "der/std" "spki/std" "tls_codec?/std" ]; + }; + resolvedDefaultFeatures = [ "builder" "default" "pem" "sha1" "signature" "std" ]; + }; + "xml" = rec { + crateName = "xml"; + version = "1.0.0"; + edition = "2021"; + sha256 = "0db4s3j50gkqkwpmyz9mfgrvifwgb4mzihkgnrm8hgg77alf1rkj"; authors = [ "Vladimir Matveev " + "Kornel (https://github.com/kornelski)" ]; }; @@ -16095,9 +17538,9 @@ rec { }; "zerocopy" = rec { crateName = "zerocopy"; - version = "0.8.26"; + version = "0.8.27"; edition = "2021"; - sha256 = "0bvsj0qzq26zc6nlrm3z10ihvjspyngs7n0jw1fz031i7h6xsf8h"; + sha256 = "0b1870gf2zzlckca69v2k4mqwmf8yh2li37qldnzvvd3by58g508"; authors = [ "Joshua Liebow-Feeser " "Jack Wrenn " @@ -16131,9 +17574,9 @@ rec { }; "zerocopy-derive" = rec { crateName = "zerocopy-derive"; - version = "0.8.26"; + version = "0.8.27"; edition = "2021"; - sha256 = "10aiywi5qkha0mpsnb1zjwi44wl2rhdncaf3ykbp4i9nqm65pkwy"; + sha256 = "0c9qrylm2p55dvaplxsl24ma48add9qk4y0d6kjbkllaqvcvill8"; procMacro = true; libName = "zerocopy_derive"; authors = [ @@ -16218,6 +17661,13 @@ rec { authors = [ "The RustCrypto Project Developers" ]; + dependencies = [ + { + name = "zeroize_derive"; + packageId = "zeroize_derive"; + optional = true; + } + ]; features = { "default" = [ "alloc" ]; "derive" = [ "zeroize_derive" ]; @@ -16225,7 +17675,33 @@ rec { "std" = [ "alloc" ]; "zeroize_derive" = [ "dep:zeroize_derive" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" ]; + resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ]; + }; + "zeroize_derive" = rec { + crateName = "zeroize_derive"; + version = "1.4.2"; + edition = "2021"; + sha256 = "0sczjlqjdmrp3wn62g7mw6p438c9j4jgp2f9zamd56991mdycdnf"; + procMacro = true; + authors = [ + "The RustCrypto Project Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.106"; + features = [ "full" "extra-traits" "visit" ]; + } + ]; + }; "zerotrie" = rec { crateName = "zerotrie"; diff --git a/Cargo.toml b/Cargo.toml index 4bc8ff6f..29b73960 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" repository = "https://github.com/stackabletech/secret-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry"], tag = "stackable-operator-0.95.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry", "versioned", "webhook"], tag = "stackable-operator-0.99.0" } krb5 = { git = "https://github.com/stackabletech/krb5-rs.git", tag = "v0.1.0" } anyhow = "1.0" @@ -22,7 +22,8 @@ clap = "4.5" const_format = "0.2.34" futures = { version = "0.3", features = ["compat"] } h2 = "0.4" -kube-runtime = { version = "1.0", features = ["unstable-runtime-stream-control"] } +hex = "0.4" +kube-runtime = { version = "2.0.1", features = ["unstable-runtime-stream-control"] } ldap3 = { version = "0.11", default-features = false, features = ["gssapi", "tls"] } libc = "0.2" native-tls = "0.2" @@ -54,4 +55,4 @@ yasna = "0.5" [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } diff --git a/crate-hashes.json b/crate-hashes.json index b6cd8c14..7878d689 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,12 +1,14 @@ { + "git+https://github.com/stackabletech//operator-rs.git?branch=main#k8s-version@0.1.3": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-certs@0.4.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-operator-derive@0.3.1": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-operator@0.99.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-shared@0.0.3": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-versioned-macros@0.8.2": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-versioned@0.8.2": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-webhook@0.6.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#k8s-version@0.1.3": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#stackable-operator-derive@0.3.1": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#stackable-operator@0.95.0": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#stackable-shared@0.0.2": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#stackable-telemetry@0.6.1": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#stackable-versioned-macros@0.8.1": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#stackable-versioned@0.8.1": "0db745j2nz5kz5mp8sh8af26gh9wx3cdad7ggl9f9jki1ms534z0", - "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#product-config@0.7.0": "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny" + "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file diff --git a/rust/operator-binary/Cargo.toml b/rust/operator-binary/Cargo.toml index f325c501..badcc684 100644 --- a/rust/operator-binary/Cargo.toml +++ b/rust/operator-binary/Cargo.toml @@ -25,6 +25,7 @@ pin-project.workspace = true prost-types.workspace = true prost.workspace = true serde_json.workspace = true +serde_yaml.workspace = true serde.workspace = true snafu.workspace = true socket2.workspace = true From b12fbf2e2dc4527a30986c396a536f739bada6ab Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 11:20:15 +0200 Subject: [PATCH 08/23] chore: Mark extra/crds.yaml as generated --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 53c7506b..2b8e36d2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ nix/** linguist-generated Cargo.nix linguist-generated crate-hashes.json linguist-generated +extra/crds.yaml linguist-generated From 42d3b8a7af73ac62009000ec6544a53396e87f76 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 11:52:13 +0200 Subject: [PATCH 09/23] chore: Revert accidental reformat of Cargo.toml --- Cargo.toml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0f5bb21e..e232478f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,12 +11,7 @@ edition = "2021" repository = "https://github.com/stackabletech/secret-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = [ - "time", - "telemetry", - "versioned", - "webhook", -], tag = "stackable-operator-0.99.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry", "versioned", "webhook"], tag = "stackable-operator-0.99.0" } krb5 = { git = "https://github.com/stackabletech/krb5-rs.git", tag = "v0.1.0" } anyhow = "1.0" @@ -28,13 +23,8 @@ const_format = "0.2.34" futures = { version = "0.3", features = ["compat"] } h2 = "0.4" hex = "0.4" -kube-runtime = { version = "2.0.1", features = [ - "unstable-runtime-stream-control", -] } -ldap3 = { version = "0.11", default-features = false, features = [ - "gssapi", - "tls", -] } +kube-runtime = { version = "2.0.1", features = ["unstable-runtime-stream-control",] } +ldap3 = { version = "0.11", default-features = false, features = ["gssapi", "tls"] } libc = "0.2" native-tls = "0.2" openssl = "0.10" From 2eb9f243a6190a75b71626bb66311bbc32ff63ee Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Oct 2025 12:04:53 +0200 Subject: [PATCH 10/23] chore: Update Cargo.nix --- Cargo.nix | 2025 +++++++++++++++++++++++++++------------------ crate-hashes.json | 1 + 2 files changed, 1226 insertions(+), 800 deletions(-) diff --git a/Cargo.nix b/Cargo.nix index bae50147..ec11a400 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -126,36 +126,6 @@ rec { # inject test dependencies into the build crates = { - "addr2line" = rec { - crateName = "addr2line"; - version = "0.24.2"; - edition = "2018"; - crateBin = []; - sha256 = "1hd1i57zxgz08j6h5qrhsnm2fi0bcqvsh389fw400xm3arz2ggnz"; - dependencies = [ - { - name = "gimli"; - packageId = "gimli"; - usesDefaultFeatures = false; - features = [ "read" ]; - } - ]; - features = { - "all" = [ "bin" ]; - "alloc" = [ "dep:alloc" ]; - "bin" = [ "loader" "rustc-demangle" "cpp_demangle" "fallible-iterator" "smallvec" "dep:clap" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "cpp_demangle" = [ "dep:cpp_demangle" ]; - "default" = [ "rustc-demangle" "cpp_demangle" "loader" "fallible-iterator" "smallvec" ]; - "fallible-iterator" = [ "dep:fallible-iterator" ]; - "loader" = [ "std" "dep:object" "dep:memmap2" "dep:typed-arena" ]; - "rustc-demangle" = [ "dep:rustc-demangle" ]; - "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "gimli/rustc-dep-of-std" ]; - "smallvec" = [ "dep:smallvec" ]; - "std" = [ "gimli/std" ]; - }; - }; "adler2" = rec { crateName = "adler2"; version = "2.0.1"; @@ -186,7 +156,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; } { @@ -279,9 +249,9 @@ rec { }; "anstream" = rec { crateName = "anstream"; - version = "0.6.20"; + version = "0.6.21"; edition = "2021"; - sha256 = "14k1iqdf3dx7hdjllmql0j9sjxkwr1lfdddi3adzff0r7mjn7r9s"; + sha256 = "0jjgixms4qjj58dzr846h2s29p8w7ynwr9b9x6246m1pwy0v5ma3"; dependencies = [ { name = "anstyle"; @@ -324,9 +294,9 @@ rec { }; "anstyle" = rec { crateName = "anstyle"; - version = "1.0.11"; + version = "1.0.13"; edition = "2021"; - sha256 = "1gbbzi0zbgff405q14v8hhpi1kz2drzl9a75r3qhks47lindjbl6"; + sha256 = "0y2ynjqajpny6q0amvfzzgw0gfw3l47z85km4gvx87vg02lcr4ji"; features = { "default" = [ "std" ]; }; @@ -395,9 +365,9 @@ rec { }; "anyhow" = rec { crateName = "anyhow"; - version = "1.0.99"; + version = "1.0.100"; edition = "2018"; - sha256 = "001icqvkfl28rxxmk99rm4gvdzxqngj5v50yg2bh3dzcvqfllrxh"; + sha256 = "0qbfmw4hhv2ampza1csyvf1jqjs2dgrj29cv3h3sh623c6qvcgm2"; authors = [ "David Tolnay " ]; @@ -557,9 +527,9 @@ rec { }; "axum" = rec { crateName = "axum"; - version = "0.8.4"; + version = "0.8.6"; edition = "2021"; - sha256 = "1d99kb3vcjnhbgrf6hysllf25hzagw7m1i1nidjpgsaa30n8c7h2"; + sha256 = "0w9qyxcp77gwswc9sz3pf2rzpm4jycpxvd70yh8i60sjccrys64a"; dependencies = [ { name = "axum-core"; @@ -628,12 +598,8 @@ rec { packageId = "pin-project-lite"; } { - name = "rustversion"; - packageId = "rustversion"; - } - { - name = "serde"; - packageId = "serde"; + name = "serde_core"; + packageId = "serde_core"; } { name = "serde_json"; @@ -689,11 +655,6 @@ rec { packageId = "hyper"; features = [ "client" ]; } - { - name = "serde"; - packageId = "serde"; - features = [ "derive" ]; - } { name = "serde_json"; packageId = "serde_json"; @@ -718,7 +679,7 @@ rec { ]; features = { "__private" = [ "tokio" "http1" "dep:reqwest" ]; - "__private_docs" = [ "axum-core/__private_docs" "tower/full" "dep:tower-http" ]; + "__private_docs" = [ "axum-core/__private_docs" "tower/full" "dep:serde" "dep:tower-http" ]; "default" = [ "form" "http1" "json" "matched-path" "original-uri" "query" "tokio" "tower-log" "tracing" ]; "form" = [ "dep:form_urlencoded" "dep:serde_urlencoded" "dep:serde_path_to_error" ]; "http1" = [ "dep:hyper" "hyper?/http1" "hyper-util?/http1" ]; @@ -736,9 +697,9 @@ rec { }; "axum-core" = rec { crateName = "axum-core"; - version = "0.5.2"; + version = "0.5.5"; edition = "2021"; - sha256 = "19kwzksb4hwr3qfbrhjbqf83z6fjyng14wrkzck6fj1g8784qik8"; + sha256 = "08pa4752h96pai7j5avr2hnq35xh7qgv6vl57y1zhhnikkhnqi2r"; libName = "axum_core"; dependencies = [ { @@ -769,10 +730,6 @@ rec { name = "pin-project-lite"; packageId = "pin-project-lite"; } - { - name = "rustversion"; - packageId = "rustversion"; - } { name = "sync_wrapper"; packageId = "sync_wrapper"; @@ -851,63 +808,6 @@ rec { }; resolvedDefaultFeatures = [ "default" "gloo-timers" "gloo-timers-sleep" "std" "std-blocking-sleep" "tokio" "tokio-sleep" ]; }; - "backtrace" = rec { - crateName = "backtrace"; - version = "0.3.75"; - edition = "2021"; - sha256 = "00hhizz29mvd7cdqyz5wrj98vqkihgcxmv2vl7z0d0f53qrac1k8"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "addr2line"; - packageId = "addr2line"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - } - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - } - { - name = "miniz_oxide"; - packageId = "miniz_oxide"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - } - { - name = "object"; - packageId = "object"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - features = [ "read_core" "elf" "macho" "pe" "xcoff" "unaligned" "archive" ]; - } - { - name = "rustc-demangle"; - packageId = "rustc-demangle"; - } - { - name = "windows-targets"; - packageId = "windows-targets 0.52.6"; - target = { target, features }: ((target."windows" or false) || ("cygwin" == target."os" or null)); - } - ]; - features = { - "cpp_demangle" = [ "dep:cpp_demangle" ]; - "default" = [ "std" ]; - "ruzstd" = [ "dep:ruzstd" ]; - "serde" = [ "dep:serde" ]; - "serialize-serde" = [ "serde" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; "base16ct" = rec { crateName = "base16ct"; version = "0.2.0"; @@ -1232,9 +1132,9 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.37"; + version = "1.2.41"; edition = "2018"; - sha256 = "0i5xlxsgd7jif1ry9k3ysnpsmbrckapqwq8d8l5vhkj0qs4ka6b5"; + sha256 = "1dvwli6fljqc7kgmihb249rmdfs5irla1h0n6vkavdi4pg6yd7xc"; authors = [ "Alex Crichton " ]; @@ -1302,7 +1202,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-secret-operator-utils"; @@ -1340,9 +1240,9 @@ rec { }; "cfg-if" = rec { crateName = "cfg-if"; - version = "1.0.3"; + version = "1.0.4"; edition = "2018"; - sha256 = "1afg7146gbxjvkbjx7i5sdrpqp9q5akmk9004fr8rsm90jf2il9g"; + sha256 = "008q28ajc546z5p2hcwdnckmg0hia7rnx52fni04bwqkzyrghc4k"; libName = "cfg_if"; authors = [ "Alex Crichton " @@ -1378,7 +1278,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link 0.2.0"; + packageId = "windows-link 0.2.1"; optional = true; target = { target, features }: (target."windows" or false); } @@ -1499,10 +1399,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.47"; + version = "4.5.49"; edition = "2021"; crateBin = []; - sha256 = "0c99f6m4a7d4ffgahid49h0ci2pv4ccdf417f76nl4wx5n801b3y"; + sha256 = "13sha7m7slskx12nsw6z45chy82xgh0q8lga5j9sklv8za82nlgl"; dependencies = [ { name = "clap_builder"; @@ -1541,9 +1441,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.47"; + version = "4.5.49"; edition = "2021"; - sha256 = "1mp1f0fz6wp9v87jc9372lg6r4514ja1l8cazf25hfz7a3vvpn9a"; + sha256 = "0c37pnanfm3jlh0av6jn36x1wyl8b9lz8gx1gg36drqjma5yj980"; dependencies = [ { name = "anstream"; @@ -1580,9 +1480,9 @@ rec { }; "clap_derive" = rec { crateName = "clap_derive"; - version = "4.5.47"; + version = "4.5.49"; edition = "2021"; - sha256 = "174z9g13s85la2nmi8gv8ssjwz77im3rqg5isiinw6hg1fp7xzdv"; + sha256 = "0wbngw649138v3jwx8pm5x9sq0qsml3sh0sfzyrdxcpamy3m82ra"; procMacro = true; dependencies = [ { @@ -1612,9 +1512,9 @@ rec { }; "clap_lex" = rec { crateName = "clap_lex"; - version = "0.7.5"; + version = "0.7.6"; edition = "2021"; - sha256 = "0xb6pjza43irrl99axbhs12pxq4sr8x7xd36p703j57f5i3n2kxr"; + sha256 = "13cxw9m2rqvplgazgkq2awms0rgf34myc19bz6gywfngi762imx1"; }; "colorchoice" = rec { @@ -1665,9 +1565,9 @@ rec { }; "const_format" = rec { crateName = "const_format"; - version = "0.2.34"; + version = "0.2.35"; edition = "2021"; - sha256 = "1pb3vx4k0bl3cy45fmba36hzds1jhkr8y9k3j5nnvm4abjb9fvqj"; + sha256 = "1b9h03z3k76ail1ldqxcqmsc4raa7dwgwwqwrjf6wmism5lp9akz"; authors = [ "rodrimati1992 " ]; @@ -2228,9 +2128,9 @@ rec { }; "deranged" = rec { crateName = "deranged"; - version = "0.5.3"; + version = "0.5.4"; edition = "2021"; - sha256 = "1k473y8lzjac956dm3s1cs2rz364py9zd52y9fkbanws8b6vqc6n"; + sha256 = "0wch36gpg2crz2f72p7c0i5l4bzxjkwxw96sdj57c1cadzw566d4"; authors = [ "Jacob Pratt " ]; @@ -2250,7 +2150,7 @@ rec { "rand" = [ "rand08" "rand09" ]; "rand08" = [ "dep:rand08" ]; "rand09" = [ "dep:rand09" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "dep:serde_core" ]; }; resolvedDefaultFeatures = [ "default" "powerfmt" ]; }; @@ -2848,7 +2748,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.61.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_System_Diagnostics_Debug" ]; } @@ -3015,9 +2915,9 @@ rec { }; "find-msvc-tools" = rec { crateName = "find-msvc-tools"; - version = "0.1.1"; + version = "0.1.4"; edition = "2018"; - sha256 = "0b8rhghgjssjw9q8a3gg7f9kl8zhy9d7nqsc4s4nc52dyqq9knbz"; + sha256 = "09x1sfinrz86bkm6i2d85lpsfnxn0w797g5zisv1nwhaz1w1h1aj"; libName = "find_msvc_tools"; }; @@ -3048,9 +2948,9 @@ rec { }; "flate2" = rec { crateName = "flate2"; - version = "1.1.2"; + version = "1.1.4"; edition = "2018"; - sha256 = "07abz7v50lkdr5fjw8zaw2v8gm2vbppc0f7nqm8x3v3gb6wpsgaa"; + sha256 = "1a8a3pk2r2dxays4ikc47ygydhpd1dcxlgqdi3r9kiiq9rb4wnnw"; authors = [ "Alex Crichton " "Josh Triplett " @@ -3065,14 +2965,14 @@ rec { packageId = "miniz_oxide"; optional = true; usesDefaultFeatures = false; - features = [ "with-alloc" ]; + features = [ "with-alloc" "simd" ]; } { name = "miniz_oxide"; packageId = "miniz_oxide"; usesDefaultFeatures = false; target = { target, features }: (("wasm32" == target."arch" or null) && (!("emscripten" == target."os" or null))); - features = [ "with-alloc" ]; + features = [ "with-alloc" "simd" ]; } ]; features = { @@ -3469,9 +3369,9 @@ rec { }; "generic-array" = rec { crateName = "generic-array"; - version = "0.14.7"; + version = "0.14.9"; edition = "2015"; - sha256 = "16lyyrzrljfq424c3n8kfwkqihlimmsg5nhshbbp48np3yjrqr45"; + sha256 = "1wpdn5ngpqkkyyibbg7wa4cfg0y8zjc57spaia2h47jkk0qp9djb"; libName = "generic_array"; authors = [ "Bartłomiej Kamiński " @@ -3522,7 +3422,7 @@ rec { } { name = "wasi"; - packageId = "wasi 0.11.1+wasi-snapshot-preview1"; + packageId = "wasi"; usesDefaultFeatures = false; target = { target, features }: ("wasi" == target."os" or null); } @@ -3537,11 +3437,11 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "getrandom 0.3.3" = rec { + "getrandom 0.3.4" = rec { crateName = "getrandom"; - version = "0.3.3"; + version = "0.3.4"; edition = "2021"; - sha256 = "1x6jl875zp6b2b6qp9ghc84b0l76bvng2lvm8zfcmwjl7rb5w516"; + sha256 = "1zbpvpicry9lrbjmkd4msgj3ihff1q92i334chk7pzf46xffz7c9"; authors = [ "The Rand Project Developers" ]; @@ -3605,44 +3505,26 @@ rec { target = { target, features }: (("uefi" == target."os" or null) && ("efi_rng" == target."getrandom_backend" or null)); } { - name = "wasi"; - packageId = "wasi 0.14.7+wasi-0.2.4"; + name = "wasip2"; + packageId = "wasip2"; usesDefaultFeatures = false; target = { target, features }: (("wasm32" == target."arch" or null) && ("wasi" == target."os" or null) && ("p2" == target."env" or null)); } ]; features = { - "rustc-dep-of-std" = [ "dep:compiler_builtins" "dep:core" ]; "wasm_js" = [ "dep:wasm-bindgen" "dep:js-sys" ]; }; resolvedDefaultFeatures = [ "std" ]; }; - "gimli" = rec { - crateName = "gimli"; - version = "0.31.1"; - edition = "2018"; - sha256 = "0gvqc0ramx8szv76jhfd4dms0zyamvlg4whhiz11j34hh3dqxqh7"; - features = { - "default" = [ "read-all" "write" ]; - "endian-reader" = [ "read" "dep:stable_deref_trait" ]; - "fallible-iterator" = [ "dep:fallible-iterator" ]; - "read" = [ "read-core" ]; - "read-all" = [ "read" "std" "fallible-iterator" "endian-reader" ]; - "rustc-dep-of-std" = [ "dep:core" "dep:alloc" "dep:compiler_builtins" ]; - "std" = [ "fallible-iterator?/std" "stable_deref_trait?/std" ]; - "write" = [ "dep:indexmap" ]; - }; - resolvedDefaultFeatures = [ "read" "read-core" ]; - }; - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-telemetry@0.6.1" = rec { + "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1" = rec { crateName = "stackable-telemetry"; version = "0.6.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; + sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; }; libName = "stackable_telemetry"; authors = [ @@ -3666,25 +3548,25 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; features = [ "logs" ]; } { name = "opentelemetry-appender-tracing"; - packageId = "opentelemetry-appender-tracing"; + packageId = "opentelemetry-appender-tracing 0.31.1"; } { name = "opentelemetry-otlp"; - packageId = "opentelemetry-otlp"; + packageId = "opentelemetry-otlp 0.31.0"; features = [ "grpc-tonic" "gzip-tonic" "logs" ]; } { name = "opentelemetry-semantic-conventions"; - packageId = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions 0.31.0"; } { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.31.0"; features = [ "rt-tokio" "logs" "rt-tokio" "spec_unstable_logs_enabled" ]; } { @@ -3693,7 +3575,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -3720,7 +3602,7 @@ rec { } { name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry 0.32.0"; } { name = "tracing-subscriber"; @@ -3736,7 +3618,7 @@ rec { } { name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry 0.32.0"; } ]; features = { @@ -3776,25 +3658,25 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; features = [ "logs" ]; } { name = "opentelemetry-appender-tracing"; - packageId = "opentelemetry-appender-tracing"; + packageId = "opentelemetry-appender-tracing 0.30.1"; } { name = "opentelemetry-otlp"; - packageId = "opentelemetry-otlp"; + packageId = "opentelemetry-otlp 0.30.0"; features = [ "grpc-tonic" "gzip-tonic" "logs" ]; } { name = "opentelemetry-semantic-conventions"; - packageId = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions 0.30.0"; } { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.30.0"; features = [ "rt-tokio" "logs" "rt-tokio" "spec_unstable_logs_enabled" ]; } { @@ -3803,7 +3685,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -3830,7 +3712,7 @@ rec { } { name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry 0.31.0"; } { name = "tracing-subscriber"; @@ -3846,7 +3728,7 @@ rec { } { name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry 0.31.0"; } ]; features = { @@ -4050,7 +3932,7 @@ rec { features = { }; }; - "hashbrown" = rec { + "hashbrown 0.15.5" = rec { crateName = "hashbrown"; version = "0.15.5"; edition = "2021"; @@ -4093,6 +3975,27 @@ rec { }; resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; + "hashbrown 0.16.0" = rec { + crateName = "hashbrown"; + version = "0.16.0"; + edition = "2021"; + sha256 = "13blh9j2yv77a6ni236ixiwdzbc1sh2bc4bdpaz7y859yv2bs6al"; + authors = [ + "Amanieu d'Antras " + ]; + features = { + "alloc" = [ "dep:alloc" ]; + "allocator-api2" = [ "dep:allocator-api2" ]; + "core" = [ "dep:core" ]; + "default" = [ "default-hasher" "inline-more" "allocator-api2" "equivalent" "raw-entry" ]; + "default-hasher" = [ "dep:foldhash" ]; + "equivalent" = [ "dep:equivalent" ]; + "nightly" = [ "foldhash?/nightly" "bumpalo/allocator_api" ]; + "rayon" = [ "dep:rayon" ]; + "rustc-dep-of-std" = [ "nightly" "core" "alloc" "rustc-internal-api" ]; + "serde" = [ "dep:serde" ]; + }; + }; "heck" = rec { crateName = "heck"; version = "0.5.0"; @@ -4739,7 +4642,7 @@ rec { } { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.62.2"; target = { target, features }: ("windows" == target."os" or null); } ]; @@ -5138,9 +5041,9 @@ rec { }; "indexmap" = rec { crateName = "indexmap"; - version = "2.11.3"; + version = "2.11.4"; edition = "2021"; - sha256 = "1hqs931f1sd3r92zj77ji9bs75f20amnj0s3aqas9zqkym29h4cj"; + sha256 = "1rc8bgcjzfcskz1zipjjm7s3m1jskzhnhr9jxmsafhdk1xv863sb"; dependencies = [ { name = "equivalent"; @@ -5149,7 +5052,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown"; + packageId = "hashbrown 0.16.0"; usesDefaultFeatures = false; } ]; @@ -5200,37 +5103,6 @@ rec { }; resolvedDefaultFeatures = [ "block-padding" ]; }; - "io-uring" = rec { - crateName = "io-uring"; - version = "0.7.10"; - edition = "2021"; - sha256 = "0yvjyygwdcqjcgw8zp254hvjbm7as1c075dl50spdshas3aa4vq4"; - libName = "io_uring"; - authors = [ - "quininer " - ]; - dependencies = [ - { - name = "bitflags"; - packageId = "bitflags"; - } - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - } - ]; - features = { - "bindgen" = [ "dep:bindgen" ]; - "direct-syscall" = [ "sc" ]; - "overwrite" = [ "bindgen" ]; - "sc" = [ "dep:sc" ]; - }; - }; "ipnet" = rec { crateName = "ipnet"; version = "2.11.0"; @@ -5380,7 +5252,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; target = { target, features }: (target."windows" or false); features = [ "std" ]; } @@ -5394,9 +5266,9 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.78"; + version = "0.3.81"; edition = "2021"; - sha256 = "0f17vdkpbarm0qlbqb0p1fyiy4l9bs62zvw3fv0ywb29g0shc2qc"; + sha256 = "01ckbf16iwh7qj92fax9zh8vf2y9sk60cli6999cn7a1jxx96j7c"; libName = "js_sys"; authors = [ "The wasm-bindgen Developers" @@ -5421,9 +5293,9 @@ rec { }; "json-patch" = rec { crateName = "json-patch"; - version = "4.0.0"; + version = "4.1.0"; edition = "2021"; - sha256 = "1x7sn0j8qxkdm5rrvzhz3kvsl9bb9s24szpa9ijgffd0c7b994hm"; + sha256 = "147yaxmv3i4s0bdna86rgwpmqh2507fn4ighfpplaiqkw8ay807k"; libName = "json_patch"; authors = [ "Ivan Dubrov " @@ -5456,6 +5328,7 @@ rec { ]; features = { "default" = [ "diff" ]; + "schemars" = [ "dep:schemars" ]; "utoipa" = [ "dep:utoipa" ]; }; resolvedDefaultFeatures = [ "default" "diff" ]; @@ -5488,7 +5361,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } ]; @@ -5865,7 +5738,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } { name = "tokio"; @@ -6031,7 +5904,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } ]; devDependencies = [ @@ -6143,7 +6016,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown"; + packageId = "hashbrown 0.15.5"; } { name = "hostname"; @@ -6182,7 +6055,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } { name = "tokio"; @@ -6381,9 +6254,9 @@ rec { }; "libc" = rec { crateName = "libc"; - version = "0.2.175"; + version = "0.2.177"; edition = "2021"; - sha256 = "0hw5sb3gjr0ivah7s3fmavlpvspjpd4mr009abmam2sr7r4sx0ka"; + sha256 = "0xjrn69cywaii1iq2lib201bhlvan7czmrm604h5qcm28yps4x18"; authors = [ "The Rust Project Developers" ]; @@ -6525,9 +6398,9 @@ rec { }; "libloading" = rec { crateName = "libloading"; - version = "0.8.8"; + version = "0.8.9"; edition = "2015"; - sha256 = "0rw6q94psj3d6k0bi9nymqhyrz78lbdblryphhaszsw9p9ikj0q7"; + sha256 = "0mfwxwjwi2cf0plxcd685yxzavlslz7xirss3b9cbrzyk4hv1i6p"; authors = [ "Simonas Kazlauskas " ]; @@ -6538,8 +6411,8 @@ rec { target = { target, features }: (target."unix" or false); } { - name = "windows-targets"; - packageId = "windows-targets 0.53.3"; + name = "windows-link"; + packageId = "windows-link 0.2.1"; target = { target, features }: (target."windows" or false); } ]; @@ -6636,9 +6509,9 @@ rec { }; "lock_api" = rec { crateName = "lock_api"; - version = "0.4.13"; + version = "0.4.14"; edition = "2021"; - sha256 = "0rd73p4299mjwl4hhlfj9qr88v3r0kc8s1nszkfmnq2ky43nb4wn"; + sha256 = "0rg9mhx7vdpajfxvdjmgmlyrn20ligzqvn8ifmaz7dc79gkrjhr2"; authors = [ "Amanieu d'Antras " ]; @@ -6649,12 +6522,6 @@ rec { usesDefaultFeatures = false; } ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg"; - } - ]; features = { "default" = [ "atomic_usize" ]; "owning_ref" = [ "dep:owning_ref" ]; @@ -6719,9 +6586,9 @@ rec { }; "memchr" = rec { crateName = "memchr"; - version = "2.7.5"; + version = "2.7.6"; edition = "2021"; - sha256 = "1h2bh2jajkizz04fh047lpid5wgw2cr9igpkdhl3ibzscpd858ij"; + sha256 = "0wy29kf6pb4fbhfksjbs05jy2f32r2f3r1ga6qkmpz31k79h0azm"; authors = [ "Andrew Gallant " "bluss" @@ -6776,6 +6643,12 @@ rec { packageId = "adler2"; usesDefaultFeatures = false; } + { + name = "simd-adler32"; + packageId = "simd-adler32"; + optional = true; + usesDefaultFeatures = false; + } ]; features = { "alloc" = [ "dep:alloc" ]; @@ -6786,7 +6659,7 @@ rec { "simd" = [ "simd-adler32" ]; "simd-adler32" = [ "dep:simd-adler32" ]; }; - resolvedDefaultFeatures = [ "with-alloc" ]; + resolvedDefaultFeatures = [ "simd" "simd-adler32" "with-alloc" ]; }; "mio" = rec { crateName = "mio"; @@ -6816,7 +6689,7 @@ rec { } { name = "wasi"; - packageId = "wasi 0.11.1+wasi-snapshot-preview1"; + packageId = "wasi"; target = { target, features }: ("wasi" == target."os" or null); } { @@ -6942,9 +6815,9 @@ rec { }; "nu-ansi-term" = rec { crateName = "nu-ansi-term"; - version = "0.50.1"; + version = "0.50.3"; edition = "2021"; - sha256 = "16a3isvbxx8pa3lk71h3cq2fsx2d17zzq42j4mhpxy81gl2qx8nl"; + sha256 = "1ra088d885lbd21q1bxgpqdlk1zlndblmarn948jz2a40xsbjmvr"; libName = "nu_ansi_term"; authors = [ "ogham@bsago.me" @@ -6954,27 +6827,19 @@ rec { ]; dependencies = [ { - name = "overload"; - packageId = "overload"; - } - { - name = "winapi"; - packageId = "winapi"; - target = { target, features }: ("windows" == target."os" or null); - features = [ "consoleapi" "errhandlingapi" "fileapi" "handleapi" "processenv" ]; + name = "windows-sys"; + packageId = "windows-sys 0.61.2"; + rename = "windows"; + target = { target, features }: (target."windows" or false); + features = [ "Win32_Foundation" "Win32_System_Console" "Win32_Storage_FileSystem" "Win32_Security" ]; } ]; features = { - "arbitrary" = [ "dep:arbitrary" ]; - "default" = [ "std" "u64_digit" ]; - "fuzz" = [ "arbitrary" "smallvec/arbitrary" ]; - "prime" = [ "rand/std_rng" ]; - "rand" = [ "dep:rand" ]; + "default" = [ "std" ]; + "derive_serde_style" = [ "serde" ]; "serde" = [ "dep:serde" ]; - "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ]; - "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ]; + resolvedDefaultFeatures = [ "default" "std" ]; }; "num-bigint-dig" = rec { crateName = "num-bigint-dig"; @@ -7152,40 +7017,6 @@ rec { }; resolvedDefaultFeatures = [ "i128" "libm" "std" ]; }; - "object" = rec { - crateName = "object"; - version = "0.36.7"; - edition = "2018"; - sha256 = "11vv97djn9nc5n6w1gc6bd96d2qk2c8cg1kw5km9bsi3v4a8x532"; - dependencies = [ - { - name = "memchr"; - packageId = "memchr"; - usesDefaultFeatures = false; - } - ]; - features = { - "all" = [ "read" "write" "build" "std" "compression" "wasm" ]; - "alloc" = [ "dep:alloc" ]; - "build" = [ "build_core" "write_std" "elf" ]; - "build_core" = [ "read_core" "write_core" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "compression" = [ "dep:flate2" "dep:ruzstd" "std" ]; - "core" = [ "dep:core" ]; - "default" = [ "read" "compression" ]; - "doc" = [ "read_core" "write_std" "build_core" "std" "compression" "archive" "coff" "elf" "macho" "pe" "wasm" "xcoff" ]; - "pe" = [ "coff" ]; - "read" = [ "read_core" "archive" "coff" "elf" "macho" "pe" "xcoff" "unaligned" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" "alloc" "memchr/rustc-dep-of-std" ]; - "std" = [ "memchr/std" ]; - "unstable-all" = [ "all" "unstable" ]; - "wasm" = [ "dep:wasmparser" ]; - "write" = [ "write_std" "coff" "elf" "macho" "pe" "xcoff" ]; - "write_core" = [ "dep:crc32fast" "dep:indexmap" "dep:hashbrown" ]; - "write_std" = [ "write_core" "std" "indexmap?/std" "crc32fast?/std" ]; - }; - resolvedDefaultFeatures = [ "archive" "coff" "elf" "macho" "pe" "read_core" "unaligned" "xcoff" ]; - }; "once_cell" = rec { crateName = "once_cell"; version = "1.21.3"; @@ -7216,9 +7047,9 @@ rec { }; "openssl" = rec { crateName = "openssl"; - version = "0.10.73"; + version = "0.10.74"; edition = "2021"; - sha256 = "1y7b3kanpgb92wiqhwbyqfsdr1xdjzssxqywl4cixay88r6p61c5"; + sha256 = "0m5nxchp0lmkqclgxs4ym3sg9w340s7sslhglghnj8j18pfi9b94"; authors = [ "Steven Fackler " ]; @@ -7255,6 +7086,7 @@ rec { ]; features = { "aws-lc" = [ "ffi/aws-lc" ]; + "aws-lc-fips" = [ "ffi/aws-lc-fips" ]; "bindgen" = [ "ffi/bindgen" ]; "unstable_boringssl" = [ "ffi/unstable_boringssl" ]; "vendored" = [ "ffi/vendored" ]; @@ -7298,10 +7130,10 @@ rec { }; "openssl-sys" = rec { crateName = "openssl-sys"; - version = "0.9.109"; + version = "0.9.110"; edition = "2021"; links = "openssl"; - sha256 = "0wc54dshsac1xicq6b5wz01p358zcbf542f2s6vph3b38wp6w2ch"; + sha256 = "1qnqrvgahzn9yfxjz3v4i29x860x9dc2c84bisgv089wp9sh17qa"; build = "build/main.rs"; libName = "openssl_sys"; authors = [ @@ -7330,6 +7162,7 @@ rec { ]; features = { "aws-lc" = [ "dep:aws-lc-sys" ]; + "aws-lc-fips" = [ "dep:aws-lc-fips-sys" ]; "bindgen" = [ "dep:bindgen" ]; "bssl-sys" = [ "dep:bssl-sys" ]; "openssl-src" = [ "dep:openssl-src" ]; @@ -7337,7 +7170,61 @@ rec { "vendored" = [ "openssl-src" ]; }; }; - "opentelemetry" = rec { + "opentelemetry 0.30.0" = rec { + crateName = "opentelemetry"; + version = "0.30.0"; + edition = "2021"; + sha256 = "1rjjwlvhr7h01kl0768v9i7ng77l1axxfzbg29ancxbjrgj1dx5a"; + dependencies = [ + { + name = "futures-core"; + packageId = "futures-core"; + optional = true; + } + { + name = "futures-sink"; + packageId = "futures-sink"; + optional = true; + } + { + name = "js-sys"; + packageId = "js-sys"; + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + optional = true; + } + { + name = "thiserror"; + packageId = "thiserror 2.0.17"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "tracing"; + packageId = "tracing"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "trace" "metrics" "logs" "internal-logs" "futures" ]; + "futures" = [ "futures-core" "futures-sink" "pin-project-lite" ]; + "futures-core" = [ "dep:futures-core" ]; + "futures-sink" = [ "dep:futures-sink" ]; + "internal-logs" = [ "tracing" ]; + "pin-project-lite" = [ "dep:pin-project-lite" ]; + "spec_unstable_logs_enabled" = [ "logs" ]; + "testing" = [ "trace" ]; + "thiserror" = [ "dep:thiserror" ]; + "trace" = [ "futures" "thiserror" ]; + "tracing" = [ "dep:tracing" ]; + }; + resolvedDefaultFeatures = [ "default" "futures" "futures-core" "futures-sink" "internal-logs" "logs" "metrics" "pin-project-lite" "spec_unstable_logs_enabled" "thiserror" "trace" "tracing" ]; + }; + "opentelemetry 0.31.0" = rec { crateName = "opentelemetry"; version = "0.31.0"; edition = "2021"; @@ -7365,7 +7252,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; optional = true; usesDefaultFeatures = false; } @@ -7391,17 +7278,16 @@ rec { }; resolvedDefaultFeatures = [ "default" "futures" "futures-core" "futures-sink" "internal-logs" "logs" "metrics" "pin-project-lite" "spec_unstable_logs_enabled" "thiserror" "trace" "tracing" ]; }; - "opentelemetry-appender-tracing" = rec { + "opentelemetry-appender-tracing 0.30.1" = rec { crateName = "opentelemetry-appender-tracing"; - version = "0.31.1"; + version = "0.30.1"; edition = "2021"; - sha256 = "1hnwizzgfhpjfnvml638yy846py8hf2gl1n3p1igbk1srb2ilspg"; + sha256 = "05pwdypdbg8sxkbafy8cr1cyjyy19w4r7s001rbpxm7slpn673z6"; libName = "opentelemetry_appender_tracing"; dependencies = [ { name = "opentelemetry"; - packageId = "opentelemetry"; - usesDefaultFeatures = false; + packageId = "opentelemetry 0.30.0"; features = [ "logs" ]; } { @@ -7445,20 +7331,74 @@ rec { }; resolvedDefaultFeatures = [ "default" ]; }; - "opentelemetry-http" = rec { - crateName = "opentelemetry-http"; - version = "0.31.0"; + "opentelemetry-appender-tracing 0.31.1" = rec { + crateName = "opentelemetry-appender-tracing"; + version = "0.31.1"; edition = "2021"; - sha256 = "0pc5nw1ds8v8w0nvyall39m92v8m1xl1p3vwvxk6nkhrffdd19np"; - libName = "opentelemetry_http"; + sha256 = "1hnwizzgfhpjfnvml638yy846py8hf2gl1n3p1igbk1srb2ilspg"; + libName = "opentelemetry_appender_tracing"; dependencies = [ { - name = "async-trait"; - packageId = "async-trait"; + name = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; + usesDefaultFeatures = false; + features = [ "logs" ]; } { - name = "bytes"; - packageId = "bytes"; + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "tracing-core"; + packageId = "tracing-core"; + usesDefaultFeatures = false; + } + { + name = "tracing-subscriber"; + packageId = "tracing-subscriber"; + usesDefaultFeatures = false; + features = [ "registry" "std" ]; + } + ]; + devDependencies = [ + { + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "tracing-subscriber"; + packageId = "tracing-subscriber"; + usesDefaultFeatures = false; + features = [ "env-filter" "registry" "std" "fmt" ]; + } + ]; + features = { + "experimental_metadata_attributes" = [ "dep:tracing-log" ]; + "experimental_use_tracing_span_context" = [ "tracing-opentelemetry" ]; + "log" = [ "dep:log" ]; + "spec_unstable_logs_enabled" = [ "opentelemetry/spec_unstable_logs_enabled" ]; + "tracing-opentelemetry" = [ "dep:tracing-opentelemetry" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "opentelemetry-http 0.30.0" = rec { + crateName = "opentelemetry-http"; + version = "0.30.0"; + edition = "2021"; + sha256 = "0vf3d9p733ms312hcbhy14h32imf22bl7qw6i3mdp5rahjg67xjh"; + libName = "opentelemetry_http"; + dependencies = [ + { + name = "async-trait"; + packageId = "async-trait"; + } + { + name = "bytes"; + packageId = "bytes"; } { name = "http"; @@ -7468,7 +7408,51 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; + features = [ "trace" ]; + } + { + name = "reqwest"; + packageId = "reqwest"; + optional = true; + usesDefaultFeatures = false; + features = [ "blocking" ]; + } + ]; + features = { + "default" = [ "internal-logs" ]; + "hyper" = [ "dep:http-body-util" "dep:hyper" "dep:hyper-util" "dep:tokio" ]; + "internal-logs" = [ "opentelemetry/internal-logs" ]; + "reqwest" = [ "dep:reqwest" ]; + "reqwest-rustls" = [ "reqwest" "reqwest/rustls-tls-native-roots" ]; + "reqwest-rustls-webpki-roots" = [ "reqwest" "reqwest/rustls-tls-webpki-roots" ]; + }; + resolvedDefaultFeatures = [ "default" "internal-logs" "reqwest" ]; + }; + "opentelemetry-http 0.31.0" = rec { + crateName = "opentelemetry-http"; + version = "0.31.0"; + edition = "2021"; + sha256 = "0pc5nw1ds8v8w0nvyall39m92v8m1xl1p3vwvxk6nkhrffdd19np"; + libName = "opentelemetry_http"; + dependencies = [ + { + name = "async-trait"; + packageId = "async-trait"; + } + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "http"; + packageId = "http"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; usesDefaultFeatures = false; features = [ "trace" ]; } @@ -7490,7 +7474,124 @@ rec { }; resolvedDefaultFeatures = [ "internal-logs" "reqwest" "reqwest-blocking" ]; }; - "opentelemetry-otlp" = rec { + "opentelemetry-otlp 0.30.0" = rec { + crateName = "opentelemetry-otlp"; + version = "0.30.0"; + edition = "2021"; + sha256 = "0aw5amychdmwayfa0p724na1m7vd1jk9qlzw39riaxp08d56dvnv"; + libName = "opentelemetry_otlp"; + dependencies = [ + { + name = "http"; + packageId = "http"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; + usesDefaultFeatures = false; + } + { + name = "opentelemetry-http"; + packageId = "opentelemetry-http 0.30.0"; + optional = true; + } + { + name = "opentelemetry-proto"; + packageId = "opentelemetry-proto 0.30.0"; + usesDefaultFeatures = false; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.30.0"; + usesDefaultFeatures = false; + } + { + name = "prost"; + packageId = "prost 0.13.5"; + optional = true; + } + { + name = "reqwest"; + packageId = "reqwest"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "thiserror"; + packageId = "thiserror 2.0.17"; + usesDefaultFeatures = false; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + usesDefaultFeatures = false; + features = [ "sync" "rt" ]; + } + { + name = "tonic"; + packageId = "tonic 0.13.1"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "tracing"; + packageId = "tracing"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + usesDefaultFeatures = false; + features = [ "macros" "rt-multi-thread" ]; + } + { + name = "tonic"; + packageId = "tonic 0.13.1"; + usesDefaultFeatures = false; + features = [ "router" "server" ]; + } + ]; + features = { + "default" = [ "http-proto" "reqwest-blocking-client" "trace" "metrics" "logs" "internal-logs" ]; + "grpc-tonic" = [ "tonic" "prost" "http" "tokio" "opentelemetry-proto/gen-tonic" ]; + "gzip-tonic" = [ "tonic/gzip" ]; + "http" = [ "dep:http" ]; + "http-json" = [ "serde_json" "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "opentelemetry-proto/with-serde" "http" "trace" "metrics" ]; + "http-proto" = [ "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "http" "trace" "metrics" ]; + "hyper-client" = [ "opentelemetry-http/hyper" ]; + "integration-testing" = [ "tonic" "prost" "tokio/full" "trace" "logs" ]; + "internal-logs" = [ "tracing" "opentelemetry/internal-logs" ]; + "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" "opentelemetry-proto/logs" ]; + "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "opentelemetry-proto/metrics" ]; + "opentelemetry-http" = [ "dep:opentelemetry-http" ]; + "prost" = [ "dep:prost" ]; + "reqwest" = [ "dep:reqwest" ]; + "reqwest-blocking-client" = [ "reqwest/blocking" "opentelemetry-http/reqwest" ]; + "reqwest-client" = [ "reqwest" "opentelemetry-http/reqwest" ]; + "reqwest-rustls" = [ "reqwest" "opentelemetry-http/reqwest-rustls" ]; + "reqwest-rustls-webpki-roots" = [ "reqwest" "opentelemetry-http/reqwest-rustls-webpki-roots" ]; + "serde" = [ "dep:serde" ]; + "serde_json" = [ "dep:serde_json" ]; + "serialize" = [ "serde" "serde_json" ]; + "tls" = [ "tonic/tls-ring" ]; + "tls-roots" = [ "tls" "tonic/tls-native-roots" ]; + "tls-webpki-roots" = [ "tls" "tonic/tls-webpki-roots" ]; + "tokio" = [ "dep:tokio" ]; + "tonic" = [ "dep:tonic" ]; + "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" "opentelemetry-proto/trace" ]; + "tracing" = [ "dep:tracing" ]; + "zstd-tonic" = [ "tonic/zstd" ]; + }; + resolvedDefaultFeatures = [ "default" "grpc-tonic" "gzip-tonic" "http" "http-proto" "internal-logs" "logs" "metrics" "opentelemetry-http" "prost" "reqwest" "reqwest-blocking-client" "tokio" "tonic" "trace" "tracing" ]; + }; + "opentelemetry-otlp 0.31.0" = rec { crateName = "opentelemetry-otlp"; version = "0.31.0"; edition = "2021"; @@ -7506,28 +7607,28 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; usesDefaultFeatures = false; } { name = "opentelemetry-http"; - packageId = "opentelemetry-http"; + packageId = "opentelemetry-http 0.31.0"; optional = true; usesDefaultFeatures = false; } { name = "opentelemetry-proto"; - packageId = "opentelemetry-proto"; + packageId = "opentelemetry-proto 0.31.0"; usesDefaultFeatures = false; } { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.31.0"; usesDefaultFeatures = false; } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; optional = true; } { @@ -7538,7 +7639,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -7550,7 +7651,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; optional = true; usesDefaultFeatures = false; } @@ -7564,7 +7665,7 @@ rec { devDependencies = [ { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.31.0"; usesDefaultFeatures = false; features = [ "trace" "testing" ]; } @@ -7576,7 +7677,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; features = [ "router" "server" ]; } @@ -7618,7 +7719,59 @@ rec { }; resolvedDefaultFeatures = [ "default" "grpc-tonic" "gzip-tonic" "http" "http-proto" "internal-logs" "logs" "metrics" "opentelemetry-http" "prost" "reqwest" "reqwest-blocking-client" "tokio" "tonic" "trace" "tracing" ]; }; - "opentelemetry-proto" = rec { + "opentelemetry-proto 0.30.0" = rec { + crateName = "opentelemetry-proto"; + version = "0.30.0"; + edition = "2021"; + sha256 = "1p4d1s7p4z5a9xy4x4dsjifc3385v5q8wx780mdgw407cvbny11f"; + libName = "opentelemetry_proto"; + dependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; + usesDefaultFeatures = false; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.30.0"; + usesDefaultFeatures = false; + } + { + name = "prost"; + packageId = "prost 0.13.5"; + optional = true; + } + { + name = "tonic"; + packageId = "tonic 0.13.1"; + optional = true; + usesDefaultFeatures = false; + features = [ "codegen" "prost" ]; + } + ]; + features = { + "base64" = [ "dep:base64" ]; + "default" = [ "full" ]; + "full" = [ "gen-tonic" "trace" "logs" "metrics" "zpages" "with-serde" "internal-logs" ]; + "gen-tonic" = [ "gen-tonic-messages" "tonic/channel" ]; + "gen-tonic-messages" = [ "tonic" "prost" ]; + "hex" = [ "dep:hex" ]; + "internal-logs" = [ "opentelemetry/internal-logs" ]; + "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" ]; + "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" ]; + "prost" = [ "dep:prost" ]; + "schemars" = [ "dep:schemars" ]; + "serde" = [ "dep:serde" ]; + "testing" = [ "opentelemetry/testing" ]; + "tonic" = [ "dep:tonic" ]; + "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" ]; + "with-schemars" = [ "schemars" ]; + "with-serde" = [ "serde" "hex" "base64" ]; + "zpages" = [ "trace" ]; + }; + resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "trace" ]; + }; + "opentelemetry-proto 0.31.0" = rec { crateName = "opentelemetry-proto"; version = "0.31.0"; edition = "2021"; @@ -7627,22 +7780,22 @@ rec { dependencies = [ { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; usesDefaultFeatures = false; } { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.31.0"; usesDefaultFeatures = false; } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; optional = true; } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; optional = true; usesDefaultFeatures = false; features = [ "codegen" ]; @@ -7656,7 +7809,7 @@ rec { devDependencies = [ { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; usesDefaultFeatures = false; features = [ "testing" ]; } @@ -7685,7 +7838,17 @@ rec { }; resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "tonic-prost" "trace" ]; }; - "opentelemetry-semantic-conventions" = rec { + "opentelemetry-semantic-conventions 0.30.0" = rec { + crateName = "opentelemetry-semantic-conventions"; + version = "0.30.0"; + edition = "2021"; + sha256 = "1hns9n0sh89cqp7rav7gf2a5nw65wv2m78sphms3cx54jsi5kl43"; + libName = "opentelemetry_semantic_conventions"; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; + "opentelemetry-semantic-conventions 0.31.0" = rec { crateName = "opentelemetry-semantic-conventions"; version = "0.31.0"; edition = "2021"; @@ -7695,7 +7858,96 @@ rec { }; resolvedDefaultFeatures = [ "default" ]; }; - "opentelemetry_sdk" = rec { + "opentelemetry_sdk 0.30.0" = rec { + crateName = "opentelemetry_sdk"; + version = "0.30.0"; + edition = "2021"; + sha256 = "0jvsqhdrka9ppyfr3y6rhj4ai61wgrfk0970jqcd2cayksm49xhi"; + dependencies = [ + { + name = "futures-channel"; + packageId = "futures-channel"; + } + { + name = "futures-executor"; + packageId = "futures-executor"; + } + { + name = "futures-util"; + packageId = "futures-util"; + usesDefaultFeatures = false; + features = [ "std" "sink" "async-await-macro" ]; + } + { + name = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + optional = true; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; + } + { + name = "serde_json"; + packageId = "serde_json"; + optional = true; + } + { + name = "thiserror"; + packageId = "thiserror 2.0.17"; + usesDefaultFeatures = false; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + usesDefaultFeatures = false; + features = [ "rt" "time" ]; + } + { + name = "tokio-stream"; + packageId = "tokio-stream"; + optional = true; + } + ]; + features = { + "default" = [ "trace" "metrics" "logs" "internal-logs" ]; + "experimental_logs_batch_log_processor_with_async_runtime" = [ "logs" "experimental_async_runtime" ]; + "experimental_logs_concurrent_log_processor" = [ "logs" ]; + "experimental_metrics_custom_reader" = [ "metrics" ]; + "experimental_metrics_disable_name_validation" = [ "metrics" ]; + "experimental_metrics_periodicreader_with_async_runtime" = [ "metrics" "experimental_async_runtime" ]; + "experimental_trace_batch_span_processor_with_async_runtime" = [ "trace" "experimental_async_runtime" ]; + "http" = [ "dep:http" ]; + "internal-logs" = [ "opentelemetry/internal-logs" ]; + "jaeger_remote_sampler" = [ "trace" "opentelemetry-http" "http" "serde" "serde_json" "url" "experimental_async_runtime" ]; + "logs" = [ "opentelemetry/logs" "serde_json" ]; + "metrics" = [ "opentelemetry/metrics" ]; + "opentelemetry-http" = [ "dep:opentelemetry-http" ]; + "percent-encoding" = [ "dep:percent-encoding" ]; + "rand" = [ "dep:rand" ]; + "rt-tokio" = [ "tokio" "tokio-stream" "experimental_async_runtime" ]; + "rt-tokio-current-thread" = [ "tokio" "tokio-stream" "experimental_async_runtime" ]; + "serde" = [ "dep:serde" ]; + "serde_json" = [ "dep:serde_json" ]; + "spec_unstable_logs_enabled" = [ "logs" "opentelemetry/spec_unstable_logs_enabled" ]; + "spec_unstable_metrics_views" = [ "metrics" ]; + "testing" = [ "opentelemetry/testing" "trace" "metrics" "logs" "rt-tokio" "rt-tokio-current-thread" "tokio/macros" "tokio/rt-multi-thread" ]; + "tokio" = [ "dep:tokio" ]; + "tokio-stream" = [ "dep:tokio-stream" ]; + "trace" = [ "opentelemetry/trace" "rand" "percent-encoding" ]; + "url" = [ "dep:url" ]; + }; + resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "serde_json" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" ]; + }; + "opentelemetry_sdk 0.31.0" = rec { crateName = "opentelemetry_sdk"; version = "0.31.0"; edition = "2021"; @@ -7717,7 +7969,7 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; usesDefaultFeatures = false; } { @@ -7734,7 +7986,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -7955,9 +8207,9 @@ rec { }; "parking_lot" = rec { crateName = "parking_lot"; - version = "0.12.4"; + version = "0.12.5"; edition = "2021"; - sha256 = "04sab1c7304jg8k0d5b2pxbj1fvgzcf69l3n2mfpkdb96vs8pmbh"; + sha256 = "06jsqh9aqmc94j2rlm8gpccilqm6bskbd67zf6ypfc0f4m9p91ck"; authors = [ "Amanieu d'Antras " ]; @@ -7982,9 +8234,9 @@ rec { }; "parking_lot_core" = rec { crateName = "parking_lot_core"; - version = "0.9.11"; + version = "0.9.12"; edition = "2021"; - sha256 = "19g4d6m5k4ggacinqprnn8xvdaszc3y5smsmbz1adcdmaqm8v0xw"; + sha256 = "1hb4rggy70fwa1w9nb0svbyflzdc69h047482v2z3sx2hmcnh896"; authors = [ "Amanieu d'Antras " ]; @@ -8008,23 +8260,22 @@ rec { packageId = "smallvec"; } { - name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + name = "windows-link"; + packageId = "windows-link 0.2.1"; target = { target, features }: (target."windows" or false); } ]; features = { "backtrace" = [ "dep:backtrace" ]; - "deadlock_detection" = [ "petgraph" "thread-id" "backtrace" ]; + "deadlock_detection" = [ "petgraph" "backtrace" ]; "petgraph" = [ "dep:petgraph" ]; - "thread-id" = [ "dep:thread-id" ]; }; }; "pem" = rec { crateName = "pem"; - version = "3.0.5"; + version = "3.0.6"; edition = "2021"; - sha256 = "1wwfk8sbyi9l18fvvn6z9p2gy7v7q7wimbhvrvixxj8a8zl3ibrq"; + sha256 = "1glia9vv51wx79cysqxgdha6g1bwbbr20bfhijlk2nxw4qycac0x"; authors = [ "Jonathan Creekmore " ]; @@ -8036,16 +8287,16 @@ rec { features = [ "alloc" ]; } { - name = "serde"; - packageId = "serde"; + name = "serde_core"; + packageId = "serde_core"; optional = true; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; - "serde" = [ "dep:serde" ]; - "std" = [ "base64/std" "serde?/std" ]; + "serde" = [ "dep:serde_core" ]; + "std" = [ "base64/std" "serde_core?/std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; @@ -8087,9 +8338,9 @@ rec { }; "pest" = rec { crateName = "pest"; - version = "2.8.2"; + version = "2.8.3"; edition = "2021"; - sha256 = "1a6g94pr4npsg0s6ljddwp4g127ks0nygzhxcpwfmyik6yis7q11"; + sha256 = "1x3xc1s5vhwswmmr51i60kfbcnp1zgdblsxbqd8dxvs0l0hpb7lq"; authors = [ "Dragoș Tiselice " ]; @@ -8099,11 +8350,6 @@ rec { packageId = "memchr"; optional = true; } - { - name = "thiserror"; - packageId = "thiserror 2.0.16"; - optional = true; - } { name = "ucd-trie"; packageId = "ucd-trie"; @@ -8113,17 +8359,17 @@ rec { features = { "default" = [ "std" "memchr" ]; "memchr" = [ "dep:memchr" ]; - "miette-error" = [ "std" "pretty-print" "dep:miette" "dep:thiserror" ]; + "miette-error" = [ "std" "pretty-print" "dep:miette" ]; "pretty-print" = [ "dep:serde" "dep:serde_json" ]; - "std" = [ "ucd-trie/std" "dep:thiserror" ]; + "std" = [ "ucd-trie/std" ]; }; resolvedDefaultFeatures = [ "default" "memchr" "std" ]; }; "pest_derive" = rec { crateName = "pest_derive"; - version = "2.8.2"; + version = "2.8.3"; edition = "2021"; - sha256 = "0qy6nv84q1m6m2rzw1qjfbxlcizz7h557rkk16yivjqafxpp0n5w"; + sha256 = "1pp2g39k2vjdyzr89k8zx5y7pp3np4iv635jpyxzmfhd0fisjz8q"; procMacro = true; authors = [ "Dragoș Tiselice " @@ -8150,9 +8396,9 @@ rec { }; "pest_generator" = rec { crateName = "pest_generator"; - version = "2.8.2"; + version = "2.8.3"; edition = "2021"; - sha256 = "0bws5i6g3v1sldvy66p7qbzmz5mqbiflcqilaywgf1zy3n0kckvd"; + sha256 = "0hr80m5xzzrhzjvnmbawk72cxvn0ssc5j216gblynmspizch3d29"; authors = [ "Dragoș Tiselice " ]; @@ -8189,9 +8435,9 @@ rec { }; "pest_meta" = rec { crateName = "pest_meta"; - version = "2.8.2"; + version = "2.8.3"; edition = "2021"; - sha256 = "0844iv71ibf414yid0bvhi9i0zfi0jrmyh6mvjjx1jws102rp4a2"; + sha256 = "0nh6w1mv8hx0p1jli8s12j2w62ia2apsbyl69nf07yg9zqn7mwkj"; authors = [ "Dragoș Tiselice " ]; @@ -8580,7 +8826,37 @@ rec { ]; }; - "prost" = rec { + "prost 0.13.5" = rec { + crateName = "prost"; + version = "0.13.5"; + edition = "2021"; + sha256 = "1r8yi6zxxwv9gq5ia9p55nspgwmchs94sqpp64x33v5k3njgm5i7"; + authors = [ + "Dan Burkert " + "Lucio Franco " + "Casper Meijn " + "Tokio Contributors " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + usesDefaultFeatures = false; + } + { + name = "prost-derive"; + packageId = "prost-derive 0.13.5"; + optional = true; + } + ]; + features = { + "default" = [ "derive" "std" ]; + "derive" = [ "dep:prost-derive" ]; + "prost-derive" = [ "derive" ]; + }; + resolvedDefaultFeatures = [ "default" "derive" "std" ]; + }; + "prost 0.14.1" = rec { crateName = "prost"; version = "0.14.1"; edition = "2021"; @@ -8599,7 +8875,7 @@ rec { } { name = "prost-derive"; - packageId = "prost-derive"; + packageId = "prost-derive 0.14.1"; optional = true; } ]; @@ -8657,7 +8933,7 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; usesDefaultFeatures = false; } { @@ -8700,7 +8976,45 @@ rec { }; resolvedDefaultFeatures = [ "cleanup-markdown" "default" "format" ]; }; - "prost-derive" = rec { + "prost-derive 0.13.5" = rec { + crateName = "prost-derive"; + version = "0.13.5"; + edition = "2021"; + sha256 = "0kgc9gbzsa998xixblfi3kfydka64zqf6rmpm53b761cjxbxfmla"; + procMacro = true; + libName = "prost_derive"; + authors = [ + "Dan Burkert " + "Lucio Franco " + "Casper Meijn " + "Tokio Contributors " + ]; + dependencies = [ + { + name = "anyhow"; + packageId = "anyhow"; + } + { + name = "itertools"; + packageId = "itertools 0.14.0"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.106"; + features = [ "extra-traits" ]; + } + ]; + + }; + "prost-derive 0.14.1" = rec { crateName = "prost-derive"; version = "0.14.1"; edition = "2021"; @@ -8753,7 +9067,7 @@ rec { dependencies = [ { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; usesDefaultFeatures = false; features = [ "derive" ]; } @@ -8824,9 +9138,9 @@ rec { }; "quote" = rec { crateName = "quote"; - version = "1.0.40"; + version = "1.0.41"; edition = "2018"; - sha256 = "1394cxjg6nwld82pzp2d4fp6pmaz32gai1zh9z5hvh0dawww118q"; + sha256 = "1lg108nb57lwbqlnpsii89cchk6i8pkcvrv88xh1p7a9gdz7c9ff"; authors = [ "David Tolnay " ]; @@ -9027,7 +9341,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; } ]; @@ -9065,9 +9379,9 @@ rec { }; "redox_syscall" = rec { crateName = "redox_syscall"; - version = "0.5.17"; + version = "0.5.18"; edition = "2021"; - sha256 = "0xrvpchkaxph3r5ww2i04v9nwg3843fp3prf8kqlh1gv01b4c1sl"; + sha256 = "0b9n38zsxylql36vybw18if68yc9jczxmbyzdwyhb9sifmag4azd"; libName = "syscall"; authors = [ "Jeremy Soller " @@ -9130,9 +9444,9 @@ rec { }; "regex" = rec { crateName = "regex"; - version = "1.11.2"; + version = "1.12.2"; edition = "2021"; - sha256 = "04k9rzxd11hcahpyihlswy6f1zqw7lspirv4imm4h0lcdl8gvmr3"; + sha256 = "1m14zkg6xmkb0q5ah3y39cmggclsjdr1wpxfa4kf5wvm3wcw0fw4"; authors = [ "The Rust Project Developers" "Andrew Gallant " @@ -9188,9 +9502,9 @@ rec { }; "regex-automata" = rec { crateName = "regex-automata"; - version = "0.4.10"; + version = "0.4.13"; edition = "2021"; - sha256 = "1mllcfmgjcl6d52d5k09lwwq9wj5mwxccix4bhmw5spy1gx5i53b"; + sha256 = "070z0j23pjfidqz0z89id1fca4p572wxpcr20a0qsv68bbrclxjj"; libName = "regex_automata"; authors = [ "The Rust Project Developers" @@ -9249,9 +9563,9 @@ rec { }; "regex-syntax" = rec { crateName = "regex-syntax"; - version = "0.8.6"; + version = "0.8.8"; edition = "2021"; - sha256 = "00chjpglclfskmc919fj5aq308ffbrmcn7kzbkz92k231xdsmx6a"; + sha256 = "0n7ggnpk0r32rzgnycy5xrc1yp2kq19m6pz98ch3c6dkaxw9hbbs"; libName = "regex_syntax"; authors = [ "The Rust Project Developers" @@ -9266,9 +9580,9 @@ rec { }; "reqwest" = rec { crateName = "reqwest"; - version = "0.12.23"; + version = "0.12.24"; edition = "2021"; - sha256 = "1svw1k0jx17cmlwhixwqfv3bgpjapciw7klkghnd9cljh16g6afl"; + sha256 = "0vx3f2n6hfnv81y66v5wayrqh6jlzz4gakky88m0hywz1d0lc2cx"; authors = [ "Sean McArthur " ]; @@ -9391,6 +9705,7 @@ rec { { name = "tower-service"; packageId = "tower-service"; + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "url"; @@ -9693,20 +10008,6 @@ rec { }; resolvedDefaultFeatures = [ "default" "pem" "sha2" "std" "u64_digit" ]; }; - "rustc-demangle" = rec { - crateName = "rustc-demangle"; - version = "0.1.26"; - edition = "2015"; - sha256 = "1kja3nb0yhlm4j2p1hl8d7sjmn2g9fa1s4pj0qma5kj2lcndkxsn"; - libName = "rustc_demangle"; - authors = [ - "Alex Crichton " - ]; - features = { - "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" ]; - }; - }; "rustc-hash" = rec { crateName = "rustc-hash"; version = "2.1.1"; @@ -9788,7 +10089,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.61.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Networking_WinSock" ]; } @@ -9831,9 +10132,9 @@ rec { }; "rustls" = rec { crateName = "rustls"; - version = "0.23.31"; + version = "0.23.32"; edition = "2021"; - sha256 = "1k5ncablbb2h7hzllq3j3panqnks295v56xd488zrq1xy39cpsy0"; + sha256 = "0h2ddlnbjhs47hcmf3rbvr32sxj5kpf0m56rgk739l192rijag6d"; dependencies = [ { name = "log"; @@ -9900,9 +10201,9 @@ rec { }; "rustls-native-certs" = rec { crateName = "rustls-native-certs"; - version = "0.8.1"; + version = "0.8.2"; edition = "2021"; - sha256 = "1ls7laa3748mkn23fmi3g4mlwk131lx6chq2lyc8v2mmabfz5kvz"; + sha256 = "08vr6gyz78c4zmbi8r307pybyrs7hf81wl5s35hm7h5hxcbxk04r"; libName = "rustls_native_certs"; dependencies = [ { @@ -9923,7 +10224,7 @@ rec { } { name = "security-framework"; - packageId = "security-framework 3.4.0"; + packageId = "security-framework 3.5.1"; target = { target, features }: ("macos" == target."os" or null); } ]; @@ -9953,9 +10254,9 @@ rec { }; "rustls-webpki" = rec { crateName = "rustls-webpki"; - version = "0.103.6"; + version = "0.103.7"; edition = "2021"; - sha256 = "1szqh1g2cwx89f21mf6zkxc8rxg187y9jm5law8j6d4rrg1g6wl5"; + sha256 = "1gqlsd0yqiqch97g0wbsnbmyrp75j6nbzfpf8dmhxa78j50ky2z1"; libName = "webpki"; dependencies = [ { @@ -10040,14 +10341,14 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.61.0"; + packageId = "windows-sys 0.61.2"; features = [ "Win32_Foundation" "Win32_Security_Cryptography" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" ]; } ]; devDependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.61.0"; + packageId = "windows-sys 0.61.2"; features = [ "Win32_System_SystemInformation" "Win32_System_Time" ]; } ]; @@ -10306,11 +10607,11 @@ rec { }; resolvedDefaultFeatures = [ "OSX_10_10" "OSX_10_11" "OSX_10_12" "OSX_10_9" "default" ]; }; - "security-framework 3.4.0" = rec { + "security-framework 3.5.1" = rec { crateName = "security-framework"; - version = "3.4.0"; + version = "3.5.1"; edition = "2021"; - sha256 = "0h4n11pqr0idh5sx4wdfcpbbg69wjq3h1p04b0s8nf4ki38nkcv0"; + sha256 = "1vz6pf5qjgx8s0hg805hq6qbcqnll6fs63irvrpgcc7qx91p6adk"; libName = "security_framework"; authors = [ "Steven Fackler " @@ -10397,9 +10698,9 @@ rec { }; "serde" = rec { crateName = "serde"; - version = "1.0.225"; + version = "1.0.228"; edition = "2021"; - sha256 = "07dxpjh0g1mq3md9yvn7jbgssgcizcircf23f04xml1mwbg28v7x"; + sha256 = "17mf4hhjxv5m90g42wmlbc61hdhlm6j9hwfkpcnd72rpgzm993ls"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -10451,9 +10752,9 @@ rec { }; "serde_core" = rec { crateName = "serde_core"; - version = "1.0.225"; + version = "1.0.228"; edition = "2021"; - sha256 = "10v3z58j5k6xhdxh90xgrv20wlnz5fnl67n04jdm47nbl3wmd4v5"; + sha256 = "1bb7id2xwx8izq50098s5j2sqrrvk31jbbrjqygyan6ask3qbls1"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -10474,13 +10775,13 @@ rec { features = { "default" = [ "std" "result" ]; }; - resolvedDefaultFeatures = [ "alloc" "result" "std" ]; + resolvedDefaultFeatures = [ "alloc" "default" "result" "std" ]; }; "serde_derive" = rec { crateName = "serde_derive"; - version = "1.0.225"; + version = "1.0.228"; edition = "2021"; - sha256 = "05j5zj2jdba3jnm7kh3fpljmhngmsa8pp5x495lpc7wbyynkda8f"; + sha256 = "0y8xm7fvmr2kjcd029g9fijpndh8csv5m20g4bd76w8qschg4h6m"; procMacro = true; authors = [ "Erick Tryzelaar " @@ -10849,6 +11150,19 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "digest" "rand_core" "std" ]; }; + "simd-adler32" = rec { + crateName = "simd-adler32"; + version = "0.3.7"; + edition = "2018"; + sha256 = "1zkq40c3iajcnr5936gjp9jjh1lpzhy44p3dq3fiw75iwr1w2vfn"; + libName = "simd_adler32"; + authors = [ + "Marvin Countryman " + ]; + features = { + "default" = [ "std" "const-generics" ]; + }; + }; "slab" = rec { crateName = "slab"; version = "0.4.11"; @@ -11039,9 +11353,9 @@ rec { }; "socket2" = rec { crateName = "socket2"; - version = "0.6.0"; + version = "0.6.1"; edition = "2021"; - sha256 = "01qqdzfnr0bvdwq6wl56c9c4m2cvbxn43dfpcv8gjx208sph8d93"; + sha256 = "109qn0kjhqi5zds84qyqi5wn72g8azjhmf4b04fkgkrkd48rw4hp"; authors = [ "Alex Crichton " "Thomas de Zeeuw " @@ -11054,7 +11368,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.60.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Networking_WinSock" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" ]; } @@ -11122,9 +11436,9 @@ rec { }; "stable_deref_trait" = rec { crateName = "stable_deref_trait"; - version = "1.2.0"; + version = "1.2.1"; edition = "2015"; - sha256 = "1lxjr8q2n534b2lhkxd6l6wcddzjvnksi58zv11f9y0jjmr15wd8"; + sha256 = "15h5h73ppqyhdhx6ywxfj88azmrpml9gl6zp3pwy2malqa6vxqkc"; authors = [ "Robert Grosse " ]; @@ -11373,7 +11687,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1"; optional = true; features = [ "clap" ]; } @@ -11445,14 +11759,8 @@ rec { features = [ "chrono" "time" ]; } { - name = "stackable-telemetry"; - packageId = "stackable-telemetry"; - optional = true; - features = [ "clap" ]; - } - { - name = "stackable-webhook"; - packageId = "stackable-webhook"; + name = "stackable-versioned"; + packageId = "stackable-versioned"; optional = true; } { @@ -11599,7 +11907,7 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; } { name = "prost-types"; @@ -11676,7 +11984,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; } { name = "tonic-prost"; @@ -11704,36 +12012,13 @@ rec { } { name = "tonic-prost-build"; - packageId = "tonic-prost-build"; - } - ]; - devDependencies = [ - { - name = "serde_yaml"; - packageId = "serde_yaml"; - } - ]; - - }; - "stackable-secret-operator-crd-utils" = rec { - crateName = "stackable-secret-operator-crd-utils"; - version = "0.0.0-dev"; - edition = "2021"; - src = lib.cleanSourceWith { filter = sourceFilter; src = ./rust/crd-utils; }; - libName = "stackable_secret_operator_crd_utils"; - authors = [ - "Stackable GmbH " - ]; - dependencies = [ - { - name = "serde"; - packageId = "serde"; - features = [ "derive" ]; + packageId = "tonic-prost-build"; } + ]; + devDependencies = [ { - name = "stackable-operator"; - packageId = "stackable-operator"; - features = [ "time" "telemetry" "versioned" "webhook" ]; + name = "serde_yaml"; + packageId = "serde_yaml"; } ]; @@ -11829,13 +12114,13 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-operator"; packageId = "stackable-operator"; optional = true; - features = [ "time" "telemetry" "versioned" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "yasna"; @@ -11935,116 +12220,6 @@ rec { }; resolvedDefaultFeatures = [ "chrono" "default" "time" ]; }; - "stackable-telemetry" = rec { - crateName = "stackable-telemetry"; - version = "0.6.1"; - edition = "2024"; - workspace_member = null; - src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; - }; - libName = "stackable_telemetry"; - authors = [ - "Stackable GmbH " - ]; - dependencies = [ - { - name = "axum"; - packageId = "axum"; - features = [ "http2" ]; - } - { - name = "clap"; - packageId = "clap"; - optional = true; - features = [ "derive" "cargo" "env" ]; - } - { - name = "futures-util"; - packageId = "futures-util"; - } - { - name = "opentelemetry"; - packageId = "opentelemetry"; - features = [ "logs" ]; - } - { - name = "opentelemetry-appender-tracing"; - packageId = "opentelemetry-appender-tracing"; - } - { - name = "opentelemetry-otlp"; - packageId = "opentelemetry-otlp"; - features = [ "grpc-tonic" "gzip-tonic" "logs" ]; - } - { - name = "opentelemetry-semantic-conventions"; - packageId = "opentelemetry-semantic-conventions"; - } - { - name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; - features = [ "rt-tokio" "logs" "rt-tokio" "spec_unstable_logs_enabled" ]; - } - { - name = "pin-project"; - packageId = "pin-project"; - } - { - name = "snafu"; - packageId = "snafu 0.8.9"; - } - { - name = "strum"; - packageId = "strum"; - features = [ "derive" ]; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "macros" "rt-multi-thread" "fs" ]; - } - { - name = "tower"; - packageId = "tower"; - features = [ "util" ]; - } - { - name = "tracing"; - packageId = "tracing"; - } - { - name = "tracing-appender"; - packageId = "tracing-appender"; - } - { - name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; - } - { - name = "tracing-subscriber"; - packageId = "tracing-subscriber"; - features = [ "env-filter" "json" "env-filter" ]; - } - ]; - devDependencies = [ - { - name = "tokio"; - packageId = "tokio"; - features = [ "macros" "rt-multi-thread" "fs" ]; - } - { - name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; - } - ]; - features = { - "clap" = [ "dep:clap" ]; - }; - resolvedDefaultFeatures = [ "clap" ]; - }; "stackable-versioned" = rec { crateName = "stackable-versioned"; version = "0.8.2"; @@ -12181,6 +12356,10 @@ rec { name = "futures-util"; packageId = "futures-util"; } + { + name = "stackable-telemetry"; + packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1"; + } { name = "hyper"; packageId = "hyper"; @@ -12204,11 +12383,11 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; } { name = "opentelemetry-semantic-conventions"; - packageId = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions 0.31.0"; } { name = "rand"; @@ -12231,10 +12410,6 @@ rec { name = "stackable-shared"; packageId = "stackable-shared"; } - { - name = "stackable-telemetry"; - packageId = "stackable-telemetry"; - } { name = "tokio"; packageId = "tokio"; @@ -12262,7 +12437,7 @@ rec { } { name = "tracing-opentelemetry"; - packageId = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry 0.32.0"; } { name = "x509-cert"; @@ -12510,9 +12685,9 @@ rec { }; "tempfile" = rec { crateName = "tempfile"; - version = "3.22.0"; + version = "3.23.0"; edition = "2021"; - sha256 = "0lza9r7dzm4k9fghw24yql6iz59wq8xgs46a7i29ir6xz88lvyl4"; + sha256 = "05igl2gml6z6i2va1bv49f9f1wb3f752c2i63lvlb9s2vxxwfc9d"; authors = [ "Steven Allen " "The Rust Project Developers" @@ -12526,7 +12701,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; usesDefaultFeatures = false; target = { target, features }: ((target."unix" or false) || (target."windows" or false) || ("wasi" == target."os" or null)); @@ -12545,7 +12720,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.61.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Storage_FileSystem" "Win32_Foundation" ]; } @@ -12572,18 +12747,18 @@ rec { ]; }; - "thiserror 2.0.16" = rec { + "thiserror 2.0.17" = rec { crateName = "thiserror"; - version = "2.0.16"; + version = "2.0.17"; edition = "2021"; - sha256 = "1h30bqyjn5s9ypm668yd9849371rzwk185klwgjg503k2hadcrrl"; + sha256 = "1j2gixhm2c3s6g96vd0b01v0i0qz1101vfmw0032mdqj1z58fdgn"; authors = [ "David Tolnay " ]; dependencies = [ { name = "thiserror-impl"; - packageId = "thiserror-impl 2.0.16"; + packageId = "thiserror-impl 2.0.17"; } ]; features = { @@ -12617,11 +12792,11 @@ rec { ]; }; - "thiserror-impl 2.0.16" = rec { + "thiserror-impl 2.0.17" = rec { crateName = "thiserror-impl"; - version = "2.0.16"; + version = "2.0.17"; edition = "2021"; - sha256 = "0q3r1ipr1rhff6cgrcvc0njffw17rpcqz9hdc7p754cbqkhinpkc"; + sha256 = "04y92yjwg1a4piwk9nayzjfs07sps8c4vq9jnsfq9qvxrn75rw9z"; procMacro = true; libName = "thiserror_impl"; authors = [ @@ -12662,9 +12837,9 @@ rec { }; "time" = rec { crateName = "time"; - version = "0.3.43"; + version = "0.3.44"; edition = "2021"; - sha256 = "0c90pxn59zccwdyvh8pn9ql04c32ky9kqqli7mc2vrqhxkqydgc3"; + sha256 = "179awlwb36zly3nmz5h9awai1h4pbf1d83g2pmvlw4v1pgixkrwi"; authors = [ "Jacob Pratt " "Time contributors" @@ -12675,6 +12850,11 @@ rec { packageId = "deranged"; features = [ "powerfmt" ]; } + { + name = "itoa"; + packageId = "itoa"; + optional = true; + } { name = "num-conv"; packageId = "num-conv"; @@ -12719,7 +12899,7 @@ rec { features = { "alloc" = [ "serde?/alloc" ]; "default" = [ "std" ]; - "formatting" = [ "std" "time-macros?/formatting" ]; + "formatting" = [ "dep:itoa" "std" "time-macros?/formatting" ]; "large-dates" = [ "time-macros?/large-dates" ]; "local-offset" = [ "std" "dep:libc" "dep:num_threads" ]; "macros" = [ "dep:time-macros" ]; @@ -12867,33 +13047,23 @@ rec { }; "tokio" = rec { crateName = "tokio"; - version = "1.47.1"; + version = "1.48.0"; edition = "2021"; - sha256 = "0f2hp5v3payg6x04ijj67si1wsdhksskhmjs2k9p5f7bmpyrmr49"; + sha256 = "0244qva5pksy8gam6llf7bd6wbk2vkab9lx26yyf08dix810wdpz"; authors = [ "Tokio Contributors " ]; dependencies = [ - { - name = "backtrace"; - packageId = "backtrace"; - target = { target, features }: (target."tokio_taskdump" or false); - } { name = "bytes"; packageId = "bytes"; optional = true; } - { - name = "io-uring"; - packageId = "io-uring"; - usesDefaultFeatures = false; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); - } { name = "libc"; packageId = "libc"; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + optional = true; + target = { target, features }: ((target."tokio_unstable" or false) && ("linux" == target."os" or null)); } { name = "libc"; @@ -12910,8 +13080,9 @@ rec { { name = "mio"; packageId = "mio"; + optional = true; usesDefaultFeatures = false; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + target = { target, features }: ((target."tokio_unstable" or false) && ("linux" == target."os" or null)); features = [ "os-poll" "os-ext" ]; } { @@ -12929,11 +13100,6 @@ rec { optional = true; target = { target, features }: (target."unix" or false); } - { - name = "slab"; - packageId = "slab"; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); - } { name = "socket2"; packageId = "socket2"; @@ -12948,7 +13114,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; optional = true; target = { target, features }: (target."windows" or false); } @@ -12966,7 +13132,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Security_Authorization" ]; } @@ -12974,6 +13140,7 @@ rec { features = { "bytes" = [ "dep:bytes" ]; "full" = [ "fs" "io-util" "io-std" "macros" "net" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "sync" "time" ]; + "io-uring" = [ "dep:io-uring" "libc" "mio/os-poll" "mio/os-ext" "dep:slab" ]; "io-util" = [ "bytes" ]; "libc" = [ "dep:libc" ]; "macros" = [ "tokio-macros" ]; @@ -12985,6 +13152,7 @@ rec { "signal" = [ "libc" "mio/os-poll" "mio/net" "mio/os-ext" "signal-hook-registry" "windows-sys/Win32_Foundation" "windows-sys/Win32_System_Console" ]; "signal-hook-registry" = [ "dep:signal-hook-registry" ]; "socket2" = [ "dep:socket2" ]; + "taskdump" = [ "dep:backtrace" ]; "test-util" = [ "rt" "sync" "time" ]; "tokio-macros" = [ "dep:tokio-macros" ]; "tracing" = [ "dep:tracing" ]; @@ -12994,9 +13162,9 @@ rec { }; "tokio-macros" = rec { crateName = "tokio-macros"; - version = "2.5.0"; + version = "2.6.0"; edition = "2021"; - sha256 = "1f6az2xbvqp7am417b78d1za8axbvjvxnmkakz9vr8s52czx81kf"; + sha256 = "19czvgliginbzyhhfbmj77wazqn2y8g27y2nirfajdlm41bphh5g"; procMacro = true; libName = "tokio_macros"; authors = [ @@ -13051,9 +13219,9 @@ rec { }; "tokio-rustls" = rec { crateName = "tokio-rustls"; - version = "0.26.2"; + version = "0.26.4"; edition = "2021"; - sha256 = "16wf007q3584j46wc4s0zc4szj6280g23hka6x6bgs50l4v7nwlf"; + sha256 = "0qggwknz9w4bbsv1z158hlnpkm97j3w8v31586jipn99byaala8p"; libName = "tokio_rustls"; dependencies = [ { @@ -13077,11 +13245,13 @@ rec { features = { "aws-lc-rs" = [ "aws_lc_rs" ]; "aws_lc_rs" = [ "rustls/aws_lc_rs" ]; + "brotli" = [ "rustls/brotli" ]; "default" = [ "logging" "tls12" "aws_lc_rs" ]; "fips" = [ "rustls/fips" ]; "logging" = [ "rustls/logging" ]; "ring" = [ "rustls/ring" ]; "tls12" = [ "rustls/tls12" ]; + "zlib" = [ "rustls/zlib" ]; }; resolvedDefaultFeatures = [ "logging" "ring" "tls12" ]; }; @@ -13161,36 +13331,168 @@ rec { optional = true; } { - name = "tokio"; - packageId = "tokio"; - features = [ "sync" ]; + name = "tokio"; + packageId = "tokio"; + features = [ "sync" ]; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "full" ]; + } + ]; + features = { + "__docs_rs" = [ "futures-util" ]; + "compat" = [ "futures-io" ]; + "full" = [ "codec" "compat" "io-util" "time" "net" "rt" "join-map" ]; + "futures-io" = [ "dep:futures-io" ]; + "futures-util" = [ "dep:futures-util" ]; + "hashbrown" = [ "dep:hashbrown" ]; + "io-util" = [ "io" "tokio/rt" "tokio/io-util" ]; + "join-map" = [ "rt" "hashbrown" ]; + "net" = [ "tokio/net" ]; + "rt" = [ "tokio/rt" "tokio/sync" "futures-util" ]; + "slab" = [ "dep:slab" ]; + "time" = [ "tokio/time" "slab" ]; + "tracing" = [ "dep:tracing" ]; + }; + resolvedDefaultFeatures = [ "codec" "default" "io" "slab" "time" ]; + }; + "tonic 0.13.1" = rec { + crateName = "tonic"; + version = "0.13.1"; + edition = "2021"; + sha256 = "1acvnjzh61y0m829mijj6z2nzqnwshdsnmbcl2g4spw3bahinn3y"; + authors = [ + "Lucio Franco " + ]; + dependencies = [ + { + name = "async-trait"; + packageId = "async-trait"; + optional = true; + } + { + name = "base64"; + packageId = "base64"; + } + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "flate2"; + packageId = "flate2"; + optional = true; + } + { + name = "http"; + packageId = "http"; + } + { + name = "http-body"; + packageId = "http-body"; + } + { + name = "http-body-util"; + packageId = "http-body-util"; + } + { + name = "hyper"; + packageId = "hyper"; + optional = true; + features = [ "http1" "http2" ]; + } + { + name = "hyper-timeout"; + packageId = "hyper-timeout"; + optional = true; + } + { + name = "hyper-util"; + packageId = "hyper-util"; + optional = true; + features = [ "tokio" ]; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + } + { + name = "pin-project"; + packageId = "pin-project"; + } + { + name = "prost"; + packageId = "prost 0.13.5"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "tokio-stream"; + packageId = "tokio-stream"; + usesDefaultFeatures = false; + } + { + name = "tower"; + packageId = "tower"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "tower-layer"; + packageId = "tower-layer"; + } + { + name = "tower-service"; + packageId = "tower-service"; + } + { + name = "tracing"; + packageId = "tracing"; } ]; devDependencies = [ { name = "tokio"; packageId = "tokio"; + features = [ "rt-multi-thread" "macros" ]; + } + { + name = "tower"; + packageId = "tower"; features = [ "full" ]; } ]; features = { - "__docs_rs" = [ "futures-util" ]; - "compat" = [ "futures-io" ]; - "full" = [ "codec" "compat" "io-util" "time" "net" "rt" "join-map" ]; - "futures-io" = [ "dep:futures-io" ]; - "futures-util" = [ "dep:futures-util" ]; - "hashbrown" = [ "dep:hashbrown" ]; - "io-util" = [ "io" "tokio/rt" "tokio/io-util" ]; - "join-map" = [ "rt" "hashbrown" ]; - "net" = [ "tokio/net" ]; - "rt" = [ "tokio/rt" "tokio/sync" "futures-util" ]; - "slab" = [ "dep:slab" ]; - "time" = [ "tokio/time" "slab" ]; - "tracing" = [ "dep:tracing" ]; + "_tls-any" = [ "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; + "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; + "codegen" = [ "dep:async-trait" ]; + "default" = [ "router" "transport" "codegen" "prost" ]; + "deflate" = [ "dep:flate2" ]; + "gzip" = [ "dep:flate2" ]; + "prost" = [ "dep:prost" ]; + "router" = [ "dep:axum" "dep:tower" "tower?/util" ]; + "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" ]; + "tls-aws-lc" = [ "_tls-any" "tokio-rustls/aws-lc-rs" ]; + "tls-native-roots" = [ "_tls-any" "channel" "dep:rustls-native-certs" ]; + "tls-ring" = [ "_tls-any" "tokio-rustls/ring" ]; + "tls-webpki-roots" = [ "_tls-any" "channel" "dep:webpki-roots" ]; + "transport" = [ "server" "channel" ]; + "zstd" = [ "dep:zstd" ]; }; - resolvedDefaultFeatures = [ "codec" "default" "io" "slab" "time" ]; + resolvedDefaultFeatures = [ "channel" "codegen" "gzip" "prost" ]; }; - "tonic" = rec { + "tonic 0.14.2" = rec { crateName = "tonic"; version = "0.14.2"; edition = "2021"; @@ -13384,11 +13686,11 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; } ]; @@ -13458,7 +13760,7 @@ rec { dependencies = [ { name = "prost"; - packageId = "prost"; + packageId = "prost 0.14.1"; } { name = "prost-types"; @@ -13479,7 +13781,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; features = [ "codegen" ]; } @@ -13498,7 +13800,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; features = [ "transport" ]; } @@ -13959,7 +14261,106 @@ rec { }; resolvedDefaultFeatures = [ "log-tracer" "std" ]; }; - "tracing-opentelemetry" = rec { + "tracing-opentelemetry 0.31.0" = rec { + crateName = "tracing-opentelemetry"; + version = "0.31.0"; + edition = "2021"; + sha256 = "171scb8d5ynxvnyvq7lm9wzn4fzk0jf124v49p8d01wmydcmkkyx"; + libName = "tracing_opentelemetry"; + dependencies = [ + { + name = "js-sys"; + packageId = "js-sys"; + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); + } + { + name = "once_cell"; + packageId = "once_cell"; + } + { + name = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; + usesDefaultFeatures = false; + features = [ "trace" ]; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.30.0"; + usesDefaultFeatures = false; + features = [ "trace" ]; + } + { + name = "smallvec"; + packageId = "smallvec"; + optional = true; + } + { + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "tracing-core"; + packageId = "tracing-core"; + } + { + name = "tracing-log"; + packageId = "tracing-log"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "tracing-subscriber"; + packageId = "tracing-subscriber"; + usesDefaultFeatures = false; + features = [ "registry" "std" ]; + } + { + name = "web-time"; + packageId = "web-time"; + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); + } + ]; + devDependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry 0.30.0"; + features = [ "trace" "metrics" ]; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.30.0"; + usesDefaultFeatures = false; + features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" ]; + } + { + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" "attributes" ]; + } + { + name = "tracing-subscriber"; + packageId = "tracing-subscriber"; + usesDefaultFeatures = false; + features = [ "registry" "std" "fmt" ]; + } + ]; + features = { + "async-trait" = [ "dep:async-trait" ]; + "default" = [ "tracing-log" "metrics" ]; + "futures-util" = [ "dep:futures-util" ]; + "lazy_static" = [ "dep:lazy_static" ]; + "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "smallvec" ]; + "smallvec" = [ "dep:smallvec" ]; + "thiserror" = [ "dep:thiserror" ]; + "thiserror-1" = [ "dep:thiserror-1" ]; + "tracing-log" = [ "dep:tracing-log" ]; + }; + resolvedDefaultFeatures = [ "default" "metrics" "smallvec" "tracing-log" ]; + }; + "tracing-opentelemetry 0.32.0" = rec { crateName = "tracing-opentelemetry"; version = "0.32.0"; edition = "2021"; @@ -13973,13 +14374,13 @@ rec { } { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; usesDefaultFeatures = false; features = [ "trace" ]; } { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.31.0"; usesDefaultFeatures = false; features = [ "trace" ]; } @@ -13994,7 +14395,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -14028,12 +14429,12 @@ rec { devDependencies = [ { name = "opentelemetry"; - packageId = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; features = [ "trace" "metrics" ]; } { name = "opentelemetry_sdk"; - packageId = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk 0.31.0"; usesDefaultFeatures = false; features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" "testing" ]; } @@ -14219,9 +14620,9 @@ rec { }; "typenum" = rec { crateName = "typenum"; - version = "1.18.0"; + version = "1.19.0"; edition = "2018"; - sha256 = "0gwgz8n91pv40gabrr1lzji0b0hsmg0817njpy397bq7rvizzk0x"; + sha256 = "1fw2mpbn2vmqan56j1b3fbpcdg80mz26fm53fs16bq5xcq84hban"; authors = [ "Paho Lurie-Gregg " "Andre Bogus " @@ -14402,7 +14803,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; target = { target, features }: (!(("wasm32" == target."arch" or null) && (("unknown" == target."os" or null) || ("none" == target."os" or null)))); } @@ -14527,7 +14928,7 @@ rec { ]; }; - "wasi 0.11.1+wasi-snapshot-preview1" = rec { + "wasi" = rec { crateName = "wasi"; version = "0.11.1+wasi-snapshot-preview1"; edition = "2018"; @@ -14543,24 +14944,6 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "wasi 0.14.7+wasi-0.2.4" = rec { - crateName = "wasi"; - version = "0.14.7+wasi-0.2.4"; - edition = "2021"; - sha256 = "133fq3mq7h65mzrsphcm7bbbx1gsz7srrbwh01624zin43g7hd48"; - dependencies = [ - { - name = "wasip2"; - packageId = "wasip2"; - usesDefaultFeatures = false; - } - ]; - features = { - "bitflags" = [ "wasip2/bitflags" ]; - "default" = [ "wasip2/default" ]; - "std" = [ "wasip2/std" ]; - }; - }; "wasip2" = rec { crateName = "wasip2"; version = "1.0.1+wasi-0.2.4"; @@ -14583,9 +14966,9 @@ rec { }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.101"; + version = "0.2.104"; edition = "2021"; - sha256 = "0fv0yrfx170gf7i4dds4c69dxh8axp247wyip2dm4nylmmf9253y"; + sha256 = "0b8f4l6pqm0bz0lj5xgwmchb6977n71vmh7srd0axwg93b011nn1"; libName = "wasm_bindgen"; authors = [ "The wasm-bindgen Developers" @@ -14600,11 +14983,6 @@ rec { packageId = "once_cell"; usesDefaultFeatures = false; } - { - name = "rustversion"; - packageId = "rustversion"; - optional = true; - } { name = "wasm-bindgen-macro"; packageId = "wasm-bindgen-macro"; @@ -14614,6 +14992,13 @@ rec { packageId = "wasm-bindgen-shared"; } ]; + buildDependencies = [ + { + name = "rustversion"; + packageId = "rustversion"; + rename = "rustversion-compat"; + } + ]; devDependencies = [ { name = "once_cell"; @@ -14621,22 +15006,20 @@ rec { } ]; features = { - "default" = [ "std" "msrv" ]; + "default" = [ "std" ]; "enable-interning" = [ "std" ]; - "msrv" = [ "rustversion" ]; - "rustversion" = [ "dep:rustversion" ]; "serde" = [ "dep:serde" ]; "serde-serialize" = [ "serde" "serde_json" "std" ]; "serde_json" = [ "dep:serde_json" ]; "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ]; }; - resolvedDefaultFeatures = [ "default" "msrv" "rustversion" "std" ]; + resolvedDefaultFeatures = [ "default" "msrv" "std" ]; }; "wasm-bindgen-backend" = rec { crateName = "wasm-bindgen-backend"; - version = "0.2.101"; + version = "0.2.104"; edition = "2021"; - sha256 = "1fwkzc2z701g2rm2jq4m20a0lkc6qqq5r3a407yj6yfahalip3g2"; + sha256 = "069vnhhn2j4w2gwd8rch6g8d3iwkrgi45fas6i3qm7glcrd9l737"; libName = "wasm_bindgen_backend"; authors = [ "The wasm-bindgen Developers" @@ -14674,9 +15057,9 @@ rec { }; "wasm-bindgen-futures" = rec { crateName = "wasm-bindgen-futures"; - version = "0.4.51"; + version = "0.4.54"; edition = "2021"; - sha256 = "1znz8i8kyrlpq6q2fals223zrwwixmn6s7a16s1v6sdlm4wm1a0c"; + sha256 = "0p5c10vfd7p7c607x3cgyfw9h77z1k33d6zzw2x77k3qwi0qs0vy"; libName = "wasm_bindgen_futures"; authors = [ "The wasm-bindgen Developers" @@ -14719,9 +15102,9 @@ rec { }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.101"; + version = "0.2.104"; edition = "2021"; - sha256 = "038vxk2yg11c3qv9iyasqcm70dw8sr2xmyaxqjq7bxzgwcx4cgbw"; + sha256 = "06d1m5bg272h6jabq0snm7c50fifjz6r20f5hqlmz7y5wivh99kw"; procMacro = true; libName = "wasm_bindgen_macro"; authors = [ @@ -14743,9 +15126,9 @@ rec { }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.101"; + version = "0.2.104"; edition = "2021"; - sha256 = "1ajjqmdbi7ybdpw41avskjfdqnxpc9v547gmr8izj4c2n24wxd3v"; + sha256 = "1mr18kx7ima1pmsqlkk982q4a0vf3r8s1x6901jb59sd1prd41wz"; libName = "wasm_bindgen_macro_support"; authors = [ "The wasm-bindgen Developers" @@ -14779,10 +15162,10 @@ rec { }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.101"; + version = "0.2.104"; edition = "2021"; links = "wasm_bindgen"; - sha256 = "1h94nvm5p8zyr3718x4zhdz7rcmd0rir0b46a1ljqx8k7d58ahzi"; + sha256 = "1la1xj9v3gmawnlyi7lc3mb3xi447r6frb98hi2fb9m1nb47vmms"; libName = "wasm_bindgen_shared"; authors = [ "The wasm-bindgen Developers" @@ -14797,9 +15180,9 @@ rec { }; "web-sys" = rec { crateName = "web-sys"; - version = "0.3.78"; + version = "0.3.81"; edition = "2021"; - sha256 = "04lbcdr74pilsrf1g76lbw9bwg7zghgslqxdiwmxkw4zfhvvdr3p"; + sha256 = "0871ifd79ni9813sp5amk7wb3avznkijlsly2ap4r9r4m4bw8rwk"; libName = "web_sys"; authors = [ "The wasm-bindgen Developers" @@ -15315,7 +15698,7 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.61.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Storage_FileSystem" "Win32_System_Console" "Win32_System_SystemInformation" ]; } @@ -15338,7 +15721,7 @@ rec { } { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } { @@ -16062,7 +16445,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } ]; @@ -16070,7 +16453,7 @@ rec { "default" = [ "std" ]; }; }; - "windows-core" = rec { + "windows-core 0.61.2" = rec { crateName = "windows-core"; version = "0.61.2"; edition = "2021"; @@ -16097,12 +16480,51 @@ rec { } { name = "windows-result"; - packageId = "windows-result"; + packageId = "windows-result 0.3.4"; + usesDefaultFeatures = false; + } + { + name = "windows-strings"; + packageId = "windows-strings 0.4.2"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "windows-result/std" "windows-strings/std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "windows-core 0.62.2" = rec { + crateName = "windows-core"; + version = "0.62.2"; + edition = "2021"; + sha256 = "1swxpv1a8qvn3bkxv8cn663238h2jccq35ff3nsj61jdsca3ms5q"; + libName = "windows_core"; + dependencies = [ + { + name = "windows-implement"; + packageId = "windows-implement"; + usesDefaultFeatures = false; + } + { + name = "windows-interface"; + packageId = "windows-interface"; + usesDefaultFeatures = false; + } + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; + usesDefaultFeatures = false; + } + { + name = "windows-result"; + packageId = "windows-result 0.4.1"; usesDefaultFeatures = false; } { name = "windows-strings"; - packageId = "windows-strings"; + packageId = "windows-strings 0.5.1"; usesDefaultFeatures = false; } ]; @@ -16121,7 +16543,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } { @@ -16141,14 +16563,11 @@ rec { }; "windows-implement" = rec { crateName = "windows-implement"; - version = "0.60.0"; + version = "0.60.2"; edition = "2021"; - sha256 = "0dm88k3hlaax85xkls4gf597ar4z8m5vzjjagzk910ph7b8xszx4"; + sha256 = "1psxhmklzcf3wjs4b8qb42qb6znvc142cb5pa74rsyxm1822wgh5"; procMacro = true; libName = "windows_implement"; - authors = [ - "Microsoft" - ]; dependencies = [ { name = "proc-macro2"; @@ -16171,14 +16590,11 @@ rec { }; "windows-interface" = rec { crateName = "windows-interface"; - version = "0.59.1"; + version = "0.59.3"; edition = "2021"; - sha256 = "1a4zr8740gyzzhq02xgl6vx8l669jwfby57xgf0zmkcdkyv134mx"; + sha256 = "0n73cwrn4247d0axrk7gjp08p34x1723483jxjxjdfkh4m56qc9z"; procMacro = true; libName = "windows_interface"; - authors = [ - "Microsoft" - ]; dependencies = [ { name = "proc-macro2"; @@ -16210,11 +16626,11 @@ rec { ]; }; - "windows-link 0.2.0" = rec { + "windows-link 0.2.1" = rec { crateName = "windows-link"; - version = "0.2.0"; + version = "0.2.1"; edition = "2021"; - sha256 = "0r9w2z96d5phmm185aq92z54jp9h2nqisa4wgc71idxbc436rr25"; + sha256 = "1rag186yfr3xx7piv5rg8b6im2dwcf8zldiflvb22xbzwli5507h"; libName = "windows_link"; }; @@ -16227,7 +16643,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } { @@ -16240,7 +16656,7 @@ rec { "default" = [ "std" ]; }; }; - "windows-result" = rec { + "windows-result 0.3.4" = rec { crateName = "windows-result"; version = "0.3.4"; edition = "2021"; @@ -16261,7 +16677,25 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "windows-strings" = rec { + "windows-result 0.4.1" = rec { + crateName = "windows-result"; + version = "0.4.1"; + edition = "2021"; + sha256 = "1d9yhmrmmfqh56zlj751s5wfm9a2aa7az9rd7nn5027nxa4zm0bp"; + libName = "windows_result"; + dependencies = [ + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "windows-strings 0.4.2" = rec { crateName = "windows-strings"; version = "0.4.2"; edition = "2021"; @@ -16282,6 +16716,24 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "windows-strings 0.5.1" = rec { + crateName = "windows-strings"; + version = "0.5.1"; + edition = "2021"; + sha256 = "14bhng9jqv4fyl7lqjz3az7vzh8pw0w4am49fsqgcz67d67x0dvq"; + libName = "windows_strings"; + dependencies = [ + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; "windows-sys 0.52.0" = rec { crateName = "windows-sys"; version = "0.52.0"; @@ -16528,7 +16980,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Threading" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; }; "windows-sys 0.59.0" = rec { crateName = "windows-sys"; @@ -16787,7 +17239,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; }; "windows-sys 0.60.2" = rec { crateName = "windows-sys"; @@ -16801,7 +17253,7 @@ rec { dependencies = [ { name = "windows-targets"; - packageId = "windows-targets 0.53.3"; + packageId = "windows-targets 0.53.5"; usesDefaultFeatures = false; } ]; @@ -17052,18 +17504,18 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Console" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; - "windows-sys 0.61.0" = rec { + "windows-sys 0.61.2" = rec { crateName = "windows-sys"; - version = "0.61.0"; + version = "0.61.2"; edition = "2021"; - sha256 = "1ajpwsmzfcsa1r7i0dxzvfn24dp3525rcd7aq95ydvdj8171h0g2"; + sha256 = "1z7k3y9b6b5h52kid57lvmvm05362zv1v8w0gc7xyv5xphlp44xf"; libName = "windows_sys"; dependencies = [ { name = "windows-link"; - packageId = "windows-link 0.2.0"; + packageId = "windows-link 0.2.1"; usesDefaultFeatures = false; } ]; @@ -17314,7 +17766,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; "windows-targets 0.52.6" = rec { crateName = "windows-targets"; @@ -17369,60 +17821,57 @@ rec { ]; }; - "windows-targets 0.53.3" = rec { + "windows-targets 0.53.5" = rec { crateName = "windows-targets"; - version = "0.53.3"; + version = "0.53.5"; edition = "2021"; - sha256 = "14fwwm136dhs3i1impqrrip7nvkra3bdxa4nqkblj604qhqn1znm"; + sha256 = "1wv9j2gv3l6wj3gkw5j1kr6ymb5q6dfc42yvydjhv3mqa7szjia9"; libName = "windows_targets"; - authors = [ - "Microsoft" - ]; dependencies = [ { name = "windows-link"; - packageId = "windows-link 0.1.3"; + packageId = "windows-link 0.2.1"; usesDefaultFeatures = false; target = { target, features }: (target."windows_raw_dylib" or false); } { name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.53.0"; + packageId = "windows_aarch64_gnullvm 0.53.1"; target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); } { name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.53.0"; + packageId = "windows_aarch64_msvc 0.53.1"; target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.53.0"; + packageId = "windows_i686_gnu 0.53.1"; target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.53.0"; + packageId = "windows_i686_gnullvm 0.53.1"; target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); } { name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.53.0"; + packageId = "windows_i686_msvc 0.53.1"; target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.53.0"; + packageId = "windows_x86_64_gnu 0.53.1"; target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.53.0"; + packageId = "windows_x86_64_gnullvm 0.53.1"; target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); } { name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.53.0"; + packageId = "windows_x86_64_msvc 0.53.1"; target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } ]; @@ -17456,14 +17905,11 @@ rec { ]; }; - "windows_aarch64_gnullvm 0.53.0" = rec { + "windows_aarch64_gnullvm 0.53.1" = rec { crateName = "windows_aarch64_gnullvm"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0r77pbpbcf8bq4yfwpz2hpq3vns8m0yacpvs2i5cn6fx1pwxbf46"; - authors = [ - "Microsoft" - ]; + sha256 = "0lqvdm510mka9w26vmga7hbkmrw9glzc90l4gya5qbxlm1pl3n59"; }; "windows_aarch64_msvc 0.52.6" = rec { @@ -17476,14 +17922,11 @@ rec { ]; }; - "windows_aarch64_msvc 0.53.0" = rec { + "windows_aarch64_msvc 0.53.1" = rec { crateName = "windows_aarch64_msvc"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0v766yqw51pzxxwp203yqy39ijgjamp54hhdbsyqq6x1c8gilrf7"; - authors = [ - "Microsoft" - ]; + sha256 = "01jh2adlwx043rji888b22whx4bm8alrk3khjpik5xn20kl85mxr"; }; "windows_i686_gnu 0.52.6" = rec { @@ -17496,14 +17939,11 @@ rec { ]; }; - "windows_i686_gnu 0.53.0" = rec { + "windows_i686_gnu 0.53.1" = rec { crateName = "windows_i686_gnu"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "1hvjc8nv95sx5vdd79fivn8bpm7i517dqyf4yvsqgwrmkmjngp61"; - authors = [ - "Microsoft" - ]; + sha256 = "18wkcm82ldyg4figcsidzwbg1pqd49jpm98crfz0j7nqd6h6s3ln"; }; "windows_i686_gnullvm 0.52.6" = rec { @@ -17516,14 +17956,11 @@ rec { ]; }; - "windows_i686_gnullvm 0.53.0" = rec { + "windows_i686_gnullvm 0.53.1" = rec { crateName = "windows_i686_gnullvm"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "04df1in2k91qyf1wzizvh560bvyzq20yf68k8xa66vdzxnywrrlw"; - authors = [ - "Microsoft" - ]; + sha256 = "030qaxqc4salz6l4immfb6sykc6gmhyir9wzn2w8mxj8038mjwzs"; }; "windows_i686_msvc 0.52.6" = rec { @@ -17536,14 +17973,11 @@ rec { ]; }; - "windows_i686_msvc 0.53.0" = rec { + "windows_i686_msvc 0.53.1" = rec { crateName = "windows_i686_msvc"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0pcvb25fkvqnp91z25qr5x61wyya12lx8p7nsa137cbb82ayw7sq"; - authors = [ - "Microsoft" - ]; + sha256 = "1hi6scw3mn2pbdl30ji5i4y8vvspb9b66l98kkz350pig58wfyhy"; }; "windows_x86_64_gnu 0.52.6" = rec { @@ -17556,14 +17990,11 @@ rec { ]; }; - "windows_x86_64_gnu 0.53.0" = rec { + "windows_x86_64_gnu 0.53.1" = rec { crateName = "windows_x86_64_gnu"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "1flh84xkssn1n6m1riddipydcksp2pdl45vdf70jygx3ksnbam9f"; - authors = [ - "Microsoft" - ]; + sha256 = "16d4yiysmfdlsrghndr97y57gh3kljkwhfdbcs05m1jasz6l4f4w"; }; "windows_x86_64_gnullvm 0.52.6" = rec { @@ -17576,14 +18007,11 @@ rec { ]; }; - "windows_x86_64_gnullvm 0.53.0" = rec { + "windows_x86_64_gnullvm 0.53.1" = rec { crateName = "windows_x86_64_gnullvm"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0mvc8119xpbi3q2m6mrjcdzl6afx4wffacp13v76g4jrs1fh6vha"; - authors = [ - "Microsoft" - ]; + sha256 = "1qbspgv4g3q0vygkg8rnql5c6z3caqv38japiynyivh75ng1gyhg"; }; "windows_x86_64_msvc 0.52.6" = rec { @@ -17596,14 +18024,11 @@ rec { ]; }; - "windows_x86_64_msvc 0.53.0" = rec { + "windows_x86_64_msvc 0.53.1" = rec { crateName = "windows_x86_64_msvc"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "11h4i28hq0zlnjcaqi2xdxr7ibnpa8djfggch9rki1zzb8qi8517"; - authors = [ - "Microsoft" - ]; + sha256 = "0l6npq76vlq4ksn4bwsncpr8508mk0gmznm6wnhjg95d19gzzfyn"; }; "wit-bindgen" = rec { @@ -17693,9 +18118,9 @@ rec { }; "xml" = rec { crateName = "xml"; - version = "1.0.0"; + version = "1.0.1"; edition = "2021"; - sha256 = "0db4s3j50gkqkwpmyz9mfgrvifwgb4mzihkgnrm8hgg77alf1rkj"; + sha256 = "1k7s56phdygnsj40my5jascmvd0md4922ashl4j7958d8562g92q"; authors = [ "Vladimir Matveev " "Kornel (https://github.com/kornelski)" @@ -17916,9 +18341,9 @@ rec { }; "zeroize" = rec { crateName = "zeroize"; - version = "1.8.1"; + version = "1.8.2"; edition = "2021"; - sha256 = "1pjdrmjwmszpxfd7r860jx54cyk94qk59x13sc307cvr5256glyf"; + sha256 = "1l48zxgcv34d7kjskr610zqsm6j2b4fcr2vfh9jm9j1jgvk58wdr"; authors = [ "The RustCrypto Project Developers" ]; diff --git a/crate-hashes.json b/crate-hashes.json index 7878d689..27b0843a 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -10,5 +10,6 @@ "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-webhook@0.6.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#stackable-telemetry@0.6.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file From 1e33f3d16a4e53407702f7b9f98c7ff7c8156ffc Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 10:34:14 +0200 Subject: [PATCH 11/23] chore: Remove superfluous file --- rust/operator-binary/src/crd/v1alpha1_impl.rs | 225 ------------------ 1 file changed, 225 deletions(-) delete mode 100644 rust/operator-binary/src/crd/v1alpha1_impl.rs diff --git a/rust/operator-binary/src/crd/v1alpha1_impl.rs b/rust/operator-binary/src/crd/v1alpha1_impl.rs deleted file mode 100644 index e3010ef8..00000000 --- a/rust/operator-binary/src/crd/v1alpha1_impl.rs +++ /dev/null @@ -1,225 +0,0 @@ -use std::{fmt::Display, ops::Deref}; - -use snafu::Snafu; -use stackable_operator::{ - k8s_openapi::api::core::v1::{ConfigMap, Secret}, - kube::api::PartialObjectMeta, - schemars::{self, schema::Schema}, - shared::time::Duration, -}; - -use crate::{ - backend, - crd::{ - KerberosPrincipal, - v1alpha1::{ - ActiveDirectorySamAccountNameRules, AutoTlsBackend, AutoTlsCa, CertManagerBackend, - CertificateKeyGeneration, SearchNamespace, SearchNamespaceMatchCondition, - SecretClassBackend, - }, - }, -}; - -#[derive(Debug, Snafu)] -#[snafu(module)] -pub enum InvalidKerberosPrincipal { - #[snafu(display( - "principal contains illegal characters (allowed: alphanumeric, /, @, -, _, and .)" - ))] - IllegalCharacter, - - #[snafu(display("principal may not start with a dash"))] - StartWithDash, -} - -impl SecretClassBackend { - // Currently no `refers_to_*` method actually returns more than one element, - // but returning `Iterator` instead of `Option` to ensure that all consumers are ready - // for adding more conditions. - - // The matcher methods are on the CRD type rather than the initialized `Backend` impls - // to avoid having to initialize the backend for each watch event. - - /// Returns the conditions where the backend refers to `config_map`. - pub fn refers_to_config_map( - &self, - config_map: &PartialObjectMeta, - ) -> impl Iterator { - let cm_namespace = config_map.metadata.namespace.as_deref(); - match self { - Self::K8sSearch(backend) => { - let name_matches = backend.trust_store_config_map_name == config_map.metadata.name; - cm_namespace - .filter(|_| name_matches) - .and_then(|cm_ns| backend.search_namespace.matches_namespace(cm_ns)) - } - Self::AutoTls(_) => None, - Self::CertManager(_) => None, - Self::KerberosKeytab(_) => None, - } - .into_iter() - } - - /// Returns the conditions where the backend refers to `secret`. - pub fn refers_to_secret( - &self, - secret: &PartialObjectMeta, - ) -> impl Iterator { - match self { - Self::AutoTls(backend) => { - (backend.ca.secret == *secret).then_some(SearchNamespaceMatchCondition::True) - } - Self::K8sSearch(_) => None, - Self::CertManager(_) => None, - Self::KerberosKeytab(_) => None, - } - .into_iter() - } -} - -impl SearchNamespace { - pub fn resolve<'a>(&'a self, pod_namespace: &'a str) -> &'a str { - match self { - SearchNamespace::Pod {} => pod_namespace, - SearchNamespace::Name(ns) => ns, - } - } - - /// Returns [`Some`] if this `SearchNamespace` could possibly match an object in the namespace - /// `object_namespace`, otherwise [`None`]. - /// - /// This is optimistic, you then need to call [`SearchNamespaceMatchCondition::matches_pod_namespace`] - /// to evaluate the match for a specific pod's namespace. - pub fn matches_namespace( - &self, - object_namespace: &str, - ) -> Option { - match self { - SearchNamespace::Pod {} => Some(SearchNamespaceMatchCondition::IfPodIsInNamespace { - namespace: object_namespace.to_string(), - }), - SearchNamespace::Name(ns) => { - (ns == object_namespace).then_some(SearchNamespaceMatchCondition::True) - } - } - } -} - -impl SearchNamespaceMatchCondition { - pub fn matches_pod_namespace(&self, pod_ns: &str) -> bool { - match self { - Self::True => true, - Self::IfPodIsInNamespace { namespace } => namespace == pod_ns, - } - } -} - -impl AutoTlsBackend { - pub(crate) fn default_max_certificate_lifetime() -> Duration { - backend::tls::DEFAULT_MAX_CERT_LIFETIME - } -} - -impl AutoTlsCa { - pub(crate) fn default_ca_certificate_lifetime() -> Duration { - backend::tls::DEFAULT_CA_CERT_LIFETIME - } -} - -impl CertificateKeyGeneration { - pub const RSA_KEY_LENGTH_2048: u32 = 2048; - pub const RSA_KEY_LENGTH_3072: u32 = 3072; - pub const RSA_KEY_LENGTH_4096: u32 = 4096; - - // Could not get a "standard" enum with assigned values/discriminants to work as integers in the schema - // The following was generated and requires the length to be provided as string (we want an integer) - // keyGeneration: - // default: - // rsa: - // length: '2048' - // oneOf: - // - required: - // - rsa - // properties: - // rsa: - // properties: - // length: - // enum: - // - '2048' - // - '3072' - // - '4096' - // type: string - pub fn tls_key_length_schema(_: &mut schemars::gen::SchemaGenerator) -> Schema { - serde_json::from_value(serde_json::json!({ - "type": "integer", - "enum": [ - Self::RSA_KEY_LENGTH_2048, - Self::RSA_KEY_LENGTH_3072, - Self::RSA_KEY_LENGTH_4096 - ] - })) - .expect("Failed to parse JSON of custom tls key length schema") - } -} - -impl Default for CertificateKeyGeneration { - fn default() -> Self { - Self::Rsa { - length: Self::RSA_KEY_LENGTH_2048, - } - } -} - -impl CertManagerBackend { - pub(crate) fn default_certificate_lifetime() -> Duration { - backend::cert_manager::DEFAULT_CERT_LIFETIME - } -} - -impl ActiveDirectorySamAccountNameRules { - pub(crate) fn default_total_length() -> u8 { - // Default AD samAccountName length limit - 20 - } -} - -impl TryFrom for KerberosPrincipal { - type Error = InvalidKerberosPrincipal; - - fn try_from(value: String) -> Result { - if value.starts_with('-') { - invalid_kerberos_principal::StartWithDashSnafu.fail() - } else if value.contains(|chr: char| { - !chr.is_alphanumeric() - && chr != '/' - && chr != '@' - && chr != '.' - && chr != '-' - && chr != '_' - }) { - invalid_kerberos_principal::IllegalCharacterSnafu.fail() - } else { - Ok(KerberosPrincipal(value)) - } - } -} - -impl From for String { - fn from(value: KerberosPrincipal) -> Self { - value.0 - } -} - -impl Display for KerberosPrincipal { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str(&self.0) - } -} - -impl Deref for KerberosPrincipal { - type Target = str; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} From 2e32cd7a6b323032ae94acd0a395ee73c7ffc904 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 10:50:03 +0200 Subject: [PATCH 12/23] refactor: Move webhook and CRD maintainer creation into function --- rust/operator-binary/src/crd/mod.rs | 62 ++++++++++++++++++++++++++++- rust/operator-binary/src/main.rs | 35 +++++----------- 2 files changed, 70 insertions(+), 27 deletions(-) diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index 27aa29ec..4791de49 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -1,8 +1,16 @@ use std::{fmt::Display, ops::Deref}; use serde::{Deserialize, Serialize}; -use snafu::Snafu; -use stackable_operator::schemars::{self, JsonSchema}; +use snafu::{ResultExt, Snafu}; +use stackable_operator::{ + cli::{MaintenanceOptions, OperatorEnvironmentOptions}, + kube::{Client, core::crd::MergeError}, + schemars::{self, JsonSchema}, + webhook::{ + maintainer::CustomResourceDefinitionMaintainer, + servers::{ConversionWebhookError, ConversionWebhookServer}, + }, +}; mod secret_class; mod trust_store; @@ -18,8 +26,11 @@ pub mod v1alpha2 { pub use crate::crd::secret_class::v1alpha2::*; } +use tokio::sync::oneshot; pub use trust_store::{TrustStore, TrustStoreVersion}; +use crate::FIELD_MANAGER; + #[derive(Debug, Snafu)] #[snafu(module)] pub enum InvalidKerberosPrincipal { @@ -76,3 +87,50 @@ impl Deref for KerberosPrincipal { &self.0 } } + +/// Contains errors which can be encountered when creating the conversion webhook server and the +/// CRD maintainer. +#[derive(Debug, Snafu)] +pub enum Error { + #[snafu(display("failed to merge CRD"))] + MergeCrd { source: MergeError }, + + #[snafu(display("failed to create conversion webhook server"))] + CreateConversionWebhook { source: ConversionWebhookError }, +} + +/// Creates and returns a [`ConversionWebhookServer`] and a [`CustomResourceDefinitionMaintainer`]. +pub async fn create_conversion_webhook_and_maintainer<'a>( + operator_environment: &'a OperatorEnvironmentOptions, + maintenance: &MaintenanceOptions, + client: Client, +) -> Result< + ( + ConversionWebhookServer, + CustomResourceDefinitionMaintainer<'a>, + oneshot::Receiver<()>, + ), + Error, +> { + let crds_and_handlers = [ + ( + SecretClass::merged_crd(SecretClassVersion::V1Alpha2).context(MergeCrdSnafu)?, + SecretClass::try_convert as fn(_) -> _, + ), + ( + TrustStore::merged_crd(TrustStoreVersion::V1Alpha1).context(MergeCrdSnafu)?, + TrustStore::try_convert as fn(_) -> _, + ), + ]; + + ConversionWebhookServer::with_maintainer( + crds_and_handlers, + &operator_environment.operator_service_name, + &operator_environment.operator_namespace, + FIELD_MANAGER, + maintenance.disable_crd_maintenance, + client, + ) + .await + .context(CreateConversionWebhookSnafu) +} diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index d3fa6194..a0908601 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -21,7 +21,6 @@ use stackable_operator::{ kvp::{Label, LabelExt}, shared::yaml::SerializeOptions, telemetry::Tracing, - webhook::servers::ConversionWebhookServer, }; use tokio::{ signal::unix::{SignalKind, signal}, @@ -31,7 +30,10 @@ use tokio_stream::wrappers::UnixListenerStream; use tonic::transport::Server; use utils::{TonicUnixStream, uds_bind_private}; -use crate::crd::{SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion, v1alpha2}; +use crate::crd::{ + SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion, + create_conversion_webhook_and_maintainer, v1alpha2, +}; mod backend; mod crd; @@ -79,9 +81,9 @@ async fn main() -> anyhow::Result<()> { let opts = Opts::parse(); match opts.cmd { stackable_operator::cli::Command::Crd => { - SecretClass::merged_crd(crd::SecretClassVersion::V1Alpha2)? + SecretClass::merged_crd(SecretClassVersion::V1Alpha2)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; - TrustStore::merged_crd(crd::TrustStoreVersion::V1Alpha1)? + TrustStore::merged_crd(TrustStoreVersion::V1Alpha1)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; } stackable_operator::cli::Command::Run(SecretOperatorRun { @@ -129,30 +131,13 @@ async fn main() -> anyhow::Result<()> { let _ = std::fs::remove_file(&csi_endpoint); } - // NOTE (@Techassi): This could maybe be moved into a setup function again. For now, - // it is here. - let crds_and_handlers = [ - ( - SecretClass::merged_crd(SecretClassVersion::V1Alpha2)?, - SecretClass::try_convert as fn(_) -> _, - ), - ( - TrustStore::merged_crd(TrustStoreVersion::V1Alpha1)?, - TrustStore::try_convert as fn(_) -> _, - ), - ]; - let (conversion_webhook, crd_maintainer, initial_reconcile_rx) = - ConversionWebhookServer::with_maintainer( - crds_and_handlers, - &operator_environment.operator_service_name, - &operator_environment.operator_namespace, - FIELD_MANAGER, - maintenance.disable_crd_maintenance, + create_conversion_webhook_and_maintainer( + &operator_environment, + &maintenance, client.as_kube_client(), ) - .await - .context("failed to create conversion webhook server and CRD maintainer")?; + .await?; let mut sigterm = signal(SignalKind::terminate())?; let csi_server = Server::builder() From b66f3c3f88d3153439cc75f64054b25bb0b81c14 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 13:31:13 +0200 Subject: [PATCH 13/23] fix: Correctly set Secret namespace for 'tls' SecretClass --- rust/operator-binary/src/main.rs | 6 +++++- rust/operator-binary/src/secretclass.yaml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index a0908601..af03ae18 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -222,7 +222,11 @@ async fn create_default_secretclass( .add_label(name) .add_label(Label::stackable_vendor()); - tls_secret_class.metadata.namespace = Some(operator_namespace); + if let v1alpha2::SecretClassBackend::AutoTls(auto_tls_backend) = + &mut tls_secret_class.spec.backend + { + auto_tls_backend.ca.secret.namespace = operator_namespace + } client.create_if_missing(&tls_secret_class).await?; diff --git a/rust/operator-binary/src/secretclass.yaml b/rust/operator-binary/src/secretclass.yaml index badd5b3c..094d9696 100644 --- a/rust/operator-binary/src/secretclass.yaml +++ b/rust/operator-binary/src/secretclass.yaml @@ -9,5 +9,5 @@ spec: ca: secret: name: secret-provisioner-tls-ca - namespace: stackable-operator + namespace: stackable-operators autoGenerate: true From 5ec590cf4468598d22cb3a805480d26d464a1e98 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 13:45:43 +0200 Subject: [PATCH 14/23] fix: Re-enable custom ca.secret.namespace for 'tls' SecretClass --- .../secret-operator/templates/daemonset.yaml | 7 ++++++ rust/operator-binary/src/main.rs | 22 ++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/deploy/helm/secret-operator/templates/daemonset.yaml b/deploy/helm/secret-operator/templates/daemonset.yaml index 6d2b03a0..7345a54c 100644 --- a/deploy/helm/secret-operator/templates/daemonset.yaml +++ b/deploy/helm/secret-operator/templates/daemonset.yaml @@ -72,6 +72,13 @@ spec: fieldRef: fieldPath: spec.nodeName + # The namespace that the TLS Certificate Authority is installed into. + # Internally defaults to the namespace where secret-operator is installed. + {{- if .Values.secretClasses.tls.caSecretNamespace }} + - name: TLS_SECRETCLASS_CA_SECRET_NAMESPACE + value: {{ .Values.secretClasses.tls.caSecretNamespace }} + {{- end }} + {{- if .Values.kubernetesClusterDomain }} - name: KUBERNETES_CLUSTER_DOMAIN value: {{ .Values.kubernetesClusterDomain | quote }} diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index af03ae18..50684adb 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -56,7 +56,7 @@ struct Opts { #[derive(clap::Parser)] struct SecretOperatorRun { - #[clap(long, env)] + #[arg(long, env)] csi_endpoint: PathBuf, /// Unprivileged mode disables any features that require running secret-operator in a privileged container. @@ -65,10 +65,16 @@ struct SecretOperatorRun { /// - Secret volumes will be stored on disk, rather than in a ramdisk /// /// Unprivileged mode is EXPERIMENTAL and heavily discouraged, since it increases the risk of leaking secrets. - #[clap(long, env)] + #[arg(long, env)] privileged: bool, - #[clap(flatten)] + /// The namespace that the TLS Certificate Authority is installed into. + /// + /// Defaults to the namespace where secret-operator is installed. + #[arg(long, env)] + tls_secretclass_ca_secret_namespace: Option, + + #[command(flatten)] common: RunArguments, } @@ -87,6 +93,7 @@ async fn main() -> anyhow::Result<()> { .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; } stackable_operator::cli::Command::Run(SecretOperatorRun { + tls_secretclass_ca_secret_namespace, csi_endpoint, privileged, common: @@ -176,9 +183,12 @@ async fn main() -> anyhow::Result<()> { .run() .map_err(|err| anyhow!(err).context("failed to run CRD maintainer")); + let ca_secret_namespace = tls_secretclass_ca_secret_namespace + .unwrap_or(operator_environment.operator_namespace.clone()); + let default_secretclass = create_default_secretclass( initial_reconcile_rx, - operator_environment.operator_namespace.clone(), + ca_secret_namespace, client.clone(), ) .map_err(|err| anyhow!(err).context("failed to apply default custom resources")); @@ -197,7 +207,7 @@ async fn main() -> anyhow::Result<()> { async fn create_default_secretclass( initial_reconcile_rx: oneshot::Receiver<()>, - operator_namespace: String, + ca_secret_namespace: String, client: Client, ) -> anyhow::Result<()> { initial_reconcile_rx.await?; @@ -225,7 +235,7 @@ async fn create_default_secretclass( if let v1alpha2::SecretClassBackend::AutoTls(auto_tls_backend) = &mut tls_secret_class.spec.backend { - auto_tls_backend.ca.secret.namespace = operator_namespace + auto_tls_backend.ca.secret.namespace = ca_secret_namespace } client.create_if_missing(&tls_secret_class).await?; From 13c9ef79c91000151946333b06f4ea078f9772d2 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 13:49:15 +0200 Subject: [PATCH 15/23] test: Fix CRD conversion failures The current testing script immediately continues to run tests after all required operators are installed. This can lead to CRD conversion failures because all resources (this includes custom ones) are applied by kuttl immediately after. All custom resources (SecretClasses in this case) use v1alpha1 (to additionally test the conversion) and as such cannot be converted to the stored v1alpha2 version when the conversion webhook is not running yet. To remedy this, a 10 second wait is introduced after the operator installation. A far better solution is to wait for a Kubernetes status condition, but that is more involved. I would like to stop bolting on functionality to the test script and instead move these features into our new (hopefully coming soon) tooling. --- scripts/run-tests | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/run-tests b/scripts/run-tests index 44f27fca..d30c2448 100755 --- a/scripts/run-tests +++ b/scripts/run-tests @@ -11,6 +11,7 @@ import shutil import subprocess import sys import tempfile +import time __version__ = "0.0.1" @@ -437,6 +438,7 @@ def main(argv) -> int: gen_tests(opts.test_suite, opts.namespace, opts.work_dir) with release_file(opts.operator, opts.skip_operator) as f: maybe_install_release(opts.skip_release, f) + time.sleep(10) if opts.skip_tests: logging.info("Skip running tests.") else: From e4f2888a8117e9c1b9d9428b3d006d6c089c52e5 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 14:43:42 +0200 Subject: [PATCH 16/23] chore: Bump stackable-operator to 0.100.0 --- Cargo.lock | 103 ++++++++++------------------ Cargo.nix | 166 +++++++++++++--------------------------------- Cargo.toml | 4 +- crate-hashes.json | 18 ++--- 4 files changed, 93 insertions(+), 198 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6de2ddde..9d932cda 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1365,7 +1365,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core", ] [[package]] @@ -1644,7 +1644,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "darling", "regex", @@ -2621,7 +2621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck", - "itertools 0.14.0", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -2643,7 +2643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.106", @@ -2656,7 +2656,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.106", @@ -3365,7 +3365,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-certs" version = "0.4.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "const-oid", "ecdsa", @@ -3408,8 +3408,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.99.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +version = "0.100.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "chrono", "clap", @@ -3434,7 +3434,7 @@ dependencies = [ "snafu 0.8.9", "stackable-operator-derive", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech//operator-rs.git?branch=main)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0)", "stackable-versioned", "stackable-webhook", "strum", @@ -3448,7 +3448,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "darling", "proc-macro2", @@ -3529,7 +3529,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "chrono", "k8s-openapi", @@ -3546,16 +3546,16 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#958f62f2befdd984ad9fcd272d0214055c3a7601" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "axum", "clap", "futures-util", - "opentelemetry 0.30.0", - "opentelemetry-appender-tracing 0.30.1", - "opentelemetry-otlp 0.30.0", - "opentelemetry-semantic-conventions 0.30.0", - "opentelemetry_sdk 0.30.0", + "opentelemetry 0.31.0", + "opentelemetry-appender-tracing 0.31.1", + "opentelemetry-otlp 0.31.0", + "opentelemetry-semantic-conventions 0.31.0", + "opentelemetry_sdk 0.31.0", "pin-project", "snafu 0.8.9", "strum", @@ -3563,23 +3563,23 @@ dependencies = [ "tower", "tracing", "tracing-appender", - "tracing-opentelemetry 0.31.0", + "tracing-opentelemetry 0.32.0", "tracing-subscriber", ] [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "axum", "clap", "futures-util", - "opentelemetry 0.31.0", - "opentelemetry-appender-tracing 0.31.1", - "opentelemetry-otlp 0.31.0", - "opentelemetry-semantic-conventions 0.31.0", - "opentelemetry_sdk 0.31.0", + "opentelemetry 0.30.0", + "opentelemetry-appender-tracing 0.30.1", + "opentelemetry-otlp 0.30.0", + "opentelemetry-semantic-conventions 0.30.0", + "opentelemetry_sdk 0.30.0", "pin-project", "snafu 0.8.9", "strum", @@ -3587,14 +3587,14 @@ dependencies = [ "tower", "tracing", "tracing-appender", - "tracing-opentelemetry 0.32.0", + "tracing-opentelemetry 0.31.0", "tracing-subscriber", ] [[package]] name = "stackable-versioned" version = "0.8.2" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "schemars", "serde", @@ -3607,7 +3607,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.2" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "convert_case", "darling", @@ -3623,8 +3623,8 @@ dependencies = [ [[package]] name = "stackable-webhook" -version = "0.6.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=main#5184eb328d36ed0176cf854d226aed944b4ed77f" +version = "0.7.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "arc-swap", "axum", @@ -3640,7 +3640,7 @@ dependencies = [ "snafu 0.8.9", "stackable-certs", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech//operator-rs.git?branch=main)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0)", "tokio", "tokio-rustls", "tower", @@ -4470,7 +4470,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core 0.61.2", + "windows-core", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -4482,7 +4482,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core 0.61.2", + "windows-core", ] [[package]] @@ -4494,21 +4494,8 @@ dependencies = [ "windows-implement", "windows-interface", "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", + "windows-result", + "windows-strings", ] [[package]] @@ -4517,7 +4504,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core 0.61.2", + "windows-core", "windows-link 0.1.3", "windows-threading", ] @@ -4562,7 +4549,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core 0.61.2", + "windows-core", "windows-link 0.1.3", ] @@ -4575,15 +4562,6 @@ dependencies = [ "windows-link 0.1.3", ] -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link 0.2.1", -] - [[package]] name = "windows-strings" version = "0.4.2" @@ -4593,15 +4571,6 @@ dependencies = [ "windows-link 0.1.3", ] -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link 0.2.1", -] - [[package]] name = "windows-sys" version = "0.52.0" diff --git a/Cargo.nix b/Cargo.nix index ec11a400..9333216f 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -3516,15 +3516,15 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1" = rec { + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1" = rec { crateName = "stackable-telemetry"; version = "0.6.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_telemetry"; authors = [ @@ -4642,7 +4642,7 @@ rec { } { name = "windows-core"; - packageId = "windows-core 0.62.2"; + packageId = "windows-core"; target = { target, features }: ("windows" == target."os" or null); } ]; @@ -5182,6 +5182,7 @@ rec { "default" = [ "use_std" ]; "use_std" = [ "use_alloc" "either/use_std" ]; }; + resolvedDefaultFeatures = [ "default" "use_alloc" "use_std" ]; }; "itertools 0.14.0" = rec { crateName = "itertools"; @@ -5457,9 +5458,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "k8s_version"; authors = [ @@ -8904,7 +8905,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; usesDefaultFeatures = false; features = [ "use_alloc" ]; } @@ -8996,7 +8997,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; } { name = "proc-macro2"; @@ -9034,7 +9035,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; } { name = "proc-macro2"; @@ -11454,9 +11455,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_certs"; authors = [ @@ -11636,13 +11637,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.99.0"; + version = "0.100.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_operator"; authors = [ @@ -11687,7 +11688,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1"; optional = true; features = [ "clap" ]; } @@ -11814,9 +11815,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -12144,9 +12145,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_shared"; authors = [ @@ -12226,9 +12227,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_versioned"; authors = [ @@ -12270,9 +12271,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -12330,13 +12331,13 @@ rec { }; "stackable-webhook" = rec { crateName = "stackable-webhook"; - version = "0.6.0"; + version = "0.7.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "5184eb328d36ed0176cf854d226aed944b4ed77f"; - sha256 = "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_webhook"; authors = [ @@ -12358,7 +12359,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1"; } { name = "hyper"; @@ -15721,7 +15722,7 @@ rec { } { name = "windows-core"; - packageId = "windows-core 0.61.2"; + packageId = "windows-core"; usesDefaultFeatures = false; } { @@ -16445,7 +16446,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core 0.61.2"; + packageId = "windows-core"; usesDefaultFeatures = false; } ]; @@ -16453,7 +16454,7 @@ rec { "default" = [ "std" ]; }; }; - "windows-core 0.61.2" = rec { + "windows-core" = rec { crateName = "windows-core"; version = "0.61.2"; edition = "2021"; @@ -16480,51 +16481,12 @@ rec { } { name = "windows-result"; - packageId = "windows-result 0.3.4"; + packageId = "windows-result"; usesDefaultFeatures = false; } { name = "windows-strings"; - packageId = "windows-strings 0.4.2"; - usesDefaultFeatures = false; - } - ]; - features = { - "default" = [ "std" ]; - "std" = [ "windows-result/std" "windows-strings/std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "windows-core 0.62.2" = rec { - crateName = "windows-core"; - version = "0.62.2"; - edition = "2021"; - sha256 = "1swxpv1a8qvn3bkxv8cn663238h2jccq35ff3nsj61jdsca3ms5q"; - libName = "windows_core"; - dependencies = [ - { - name = "windows-implement"; - packageId = "windows-implement"; - usesDefaultFeatures = false; - } - { - name = "windows-interface"; - packageId = "windows-interface"; - usesDefaultFeatures = false; - } - { - name = "windows-link"; - packageId = "windows-link 0.2.1"; - usesDefaultFeatures = false; - } - { - name = "windows-result"; - packageId = "windows-result 0.4.1"; - usesDefaultFeatures = false; - } - { - name = "windows-strings"; - packageId = "windows-strings 0.5.1"; + packageId = "windows-strings"; usesDefaultFeatures = false; } ]; @@ -16543,7 +16505,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core 0.61.2"; + packageId = "windows-core"; usesDefaultFeatures = false; } { @@ -16643,7 +16605,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core 0.61.2"; + packageId = "windows-core"; usesDefaultFeatures = false; } { @@ -16656,7 +16618,7 @@ rec { "default" = [ "std" ]; }; }; - "windows-result 0.3.4" = rec { + "windows-result" = rec { crateName = "windows-result"; version = "0.3.4"; edition = "2021"; @@ -16677,25 +16639,7 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "windows-result 0.4.1" = rec { - crateName = "windows-result"; - version = "0.4.1"; - edition = "2021"; - sha256 = "1d9yhmrmmfqh56zlj751s5wfm9a2aa7az9rd7nn5027nxa4zm0bp"; - libName = "windows_result"; - dependencies = [ - { - name = "windows-link"; - packageId = "windows-link 0.2.1"; - usesDefaultFeatures = false; - } - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "windows-strings 0.4.2" = rec { + "windows-strings" = rec { crateName = "windows-strings"; version = "0.4.2"; edition = "2021"; @@ -16716,24 +16660,6 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "windows-strings 0.5.1" = rec { - crateName = "windows-strings"; - version = "0.5.1"; - edition = "2021"; - sha256 = "14bhng9jqv4fyl7lqjz3az7vzh8pw0w4am49fsqgcz67d67x0dvq"; - libName = "windows_strings"; - dependencies = [ - { - name = "windows-link"; - packageId = "windows-link 0.2.1"; - usesDefaultFeatures = false; - } - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; "windows-sys 0.52.0" = rec { crateName = "windows-sys"; version = "0.52.0"; diff --git a/Cargo.toml b/Cargo.toml index e232478f..c80dd301 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" repository = "https://github.com/stackabletech/secret-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry", "versioned", "webhook"], tag = "stackable-operator-0.99.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry", "versioned", "webhook"], tag = "stackable-operator-0.100.0" } krb5 = { git = "https://github.com/stackabletech/krb5-rs.git", tag = "v0.1.0" } anyhow = "1.0" @@ -55,4 +55,4 @@ yasna = "0.5" [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } diff --git a/crate-hashes.json b/crate-hashes.json index 27b0843a..7f1b9343 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,15 +1,15 @@ { - "git+https://github.com/stackabletech//operator-rs.git?branch=main#k8s-version@0.1.3": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-certs@0.4.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-operator-derive@0.3.1": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-operator@0.99.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-shared@0.0.3": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-telemetry@0.6.1": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-versioned-macros@0.8.2": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-versioned@0.8.2": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", - "git+https://github.com/stackabletech//operator-rs.git?branch=main#stackable-webhook@0.6.0": "0h2bwc02wavsw14f1b59pbflcx4mskrw89imq5c3fqdrsacxp674", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#k8s-version@0.1.3": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-certs@0.4.0": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-operator-derive@0.3.1": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-operator@0.100.0": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-shared@0.0.3": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-versioned-macros@0.8.2": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-versioned@0.8.2": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-webhook@0.7.0": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#stackable-telemetry@0.6.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file From ffdab80057cf1b15cc7f15f5e795d1f4a00f657d Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 14:53:02 +0200 Subject: [PATCH 17/23] chore: Apply suggestions Co-authored-by: Sebastian Bernauer --- Cargo.toml | 2 +- rust/operator-binary/src/secretclass.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c80dd301..8fb514f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ const_format = "0.2.34" futures = { version = "0.3", features = ["compat"] } h2 = "0.4" hex = "0.4" -kube-runtime = { version = "2.0.1", features = ["unstable-runtime-stream-control",] } +kube-runtime = { version = "2.0", features = ["unstable-runtime-stream-control",] } ldap3 = { version = "0.11", default-features = false, features = ["gssapi", "tls"] } libc = "0.2" native-tls = "0.2" diff --git a/rust/operator-binary/src/secretclass.yaml b/rust/operator-binary/src/secretclass.yaml index 094d9696..7fd00016 100644 --- a/rust/operator-binary/src/secretclass.yaml +++ b/rust/operator-binary/src/secretclass.yaml @@ -9,5 +9,5 @@ spec: ca: secret: name: secret-provisioner-tls-ca - namespace: stackable-operators + namespace: will-be-overridden-by-secret-operator autoGenerate: true From 60bcfda666322802a046b707cacf8dd3b325016e Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 15:01:17 +0200 Subject: [PATCH 18/23] refactor: Move create_webhook_and_maintainer function --- rust/operator-binary/src/crd/mod.rs | 62 +------------------ rust/operator-binary/src/main.rs | 9 +-- .../src/webhooks/conversion.rs | 62 +++++++++++++++++++ rust/operator-binary/src/webhooks/mod.rs | 1 + 4 files changed, 70 insertions(+), 64 deletions(-) create mode 100644 rust/operator-binary/src/webhooks/conversion.rs create mode 100644 rust/operator-binary/src/webhooks/mod.rs diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index 4791de49..27aa29ec 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -1,16 +1,8 @@ use std::{fmt::Display, ops::Deref}; use serde::{Deserialize, Serialize}; -use snafu::{ResultExt, Snafu}; -use stackable_operator::{ - cli::{MaintenanceOptions, OperatorEnvironmentOptions}, - kube::{Client, core::crd::MergeError}, - schemars::{self, JsonSchema}, - webhook::{ - maintainer::CustomResourceDefinitionMaintainer, - servers::{ConversionWebhookError, ConversionWebhookServer}, - }, -}; +use snafu::Snafu; +use stackable_operator::schemars::{self, JsonSchema}; mod secret_class; mod trust_store; @@ -26,11 +18,8 @@ pub mod v1alpha2 { pub use crate::crd::secret_class::v1alpha2::*; } -use tokio::sync::oneshot; pub use trust_store::{TrustStore, TrustStoreVersion}; -use crate::FIELD_MANAGER; - #[derive(Debug, Snafu)] #[snafu(module)] pub enum InvalidKerberosPrincipal { @@ -87,50 +76,3 @@ impl Deref for KerberosPrincipal { &self.0 } } - -/// Contains errors which can be encountered when creating the conversion webhook server and the -/// CRD maintainer. -#[derive(Debug, Snafu)] -pub enum Error { - #[snafu(display("failed to merge CRD"))] - MergeCrd { source: MergeError }, - - #[snafu(display("failed to create conversion webhook server"))] - CreateConversionWebhook { source: ConversionWebhookError }, -} - -/// Creates and returns a [`ConversionWebhookServer`] and a [`CustomResourceDefinitionMaintainer`]. -pub async fn create_conversion_webhook_and_maintainer<'a>( - operator_environment: &'a OperatorEnvironmentOptions, - maintenance: &MaintenanceOptions, - client: Client, -) -> Result< - ( - ConversionWebhookServer, - CustomResourceDefinitionMaintainer<'a>, - oneshot::Receiver<()>, - ), - Error, -> { - let crds_and_handlers = [ - ( - SecretClass::merged_crd(SecretClassVersion::V1Alpha2).context(MergeCrdSnafu)?, - SecretClass::try_convert as fn(_) -> _, - ), - ( - TrustStore::merged_crd(TrustStoreVersion::V1Alpha1).context(MergeCrdSnafu)?, - TrustStore::try_convert as fn(_) -> _, - ), - ]; - - ConversionWebhookServer::with_maintainer( - crds_and_handlers, - &operator_environment.operator_service_name, - &operator_environment.operator_namespace, - FIELD_MANAGER, - maintenance.disable_crd_maintenance, - client, - ) - .await - .context(CreateConversionWebhookSnafu) -} diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 50684adb..fc41911d 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -30,9 +30,9 @@ use tokio_stream::wrappers::UnixListenerStream; use tonic::transport::Server; use utils::{TonicUnixStream, uds_bind_private}; -use crate::crd::{ - SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion, - create_conversion_webhook_and_maintainer, v1alpha2, +use crate::{ + crd::{SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion, v1alpha2}, + webhooks::conversion::create_webhook_and_maintainer, }; mod backend; @@ -43,6 +43,7 @@ mod format; mod grpc; mod truststore_controller; mod utils; +mod webhooks; pub const OPERATOR_NAME: &str = "secrets.stackable.tech"; pub const FIELD_MANAGER: &str = "secret-operator"; @@ -139,7 +140,7 @@ async fn main() -> anyhow::Result<()> { } let (conversion_webhook, crd_maintainer, initial_reconcile_rx) = - create_conversion_webhook_and_maintainer( + create_webhook_and_maintainer( &operator_environment, &maintenance, client.as_kube_client(), diff --git a/rust/operator-binary/src/webhooks/conversion.rs b/rust/operator-binary/src/webhooks/conversion.rs new file mode 100644 index 00000000..b1c518f8 --- /dev/null +++ b/rust/operator-binary/src/webhooks/conversion.rs @@ -0,0 +1,62 @@ +use snafu::{ResultExt, Snafu}; +use stackable_operator::{ + cli::{MaintenanceOptions, OperatorEnvironmentOptions}, + kube::{Client, core::crd::MergeError}, + webhook::{ + maintainer::CustomResourceDefinitionMaintainer, + servers::{ConversionWebhookError, ConversionWebhookServer}, + }, +}; +use tokio::sync::oneshot; + +use crate::{ + FIELD_MANAGER, + crd::{SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion}, +}; + +/// Contains errors which can be encountered when creating the conversion webhook server and the +/// CRD maintainer. +#[derive(Debug, Snafu)] +pub enum Error { + #[snafu(display("failed to merge CRD"))] + MergeCrd { source: MergeError }, + + #[snafu(display("failed to create conversion webhook server"))] + CreateConversionWebhook { source: ConversionWebhookError }, +} + +/// Creates and returns a [`ConversionWebhookServer`] and a [`CustomResourceDefinitionMaintainer`]. +pub async fn create_webhook_and_maintainer<'a>( + operator_environment: &'a OperatorEnvironmentOptions, + maintenance: &MaintenanceOptions, + client: Client, +) -> Result< + ( + ConversionWebhookServer, + CustomResourceDefinitionMaintainer<'a>, + oneshot::Receiver<()>, + ), + Error, +> { + let crds_and_handlers = [ + ( + SecretClass::merged_crd(SecretClassVersion::V1Alpha2).context(MergeCrdSnafu)?, + SecretClass::try_convert as fn(_) -> _, + ), + ( + TrustStore::merged_crd(TrustStoreVersion::V1Alpha1).context(MergeCrdSnafu)?, + TrustStore::try_convert as fn(_) -> _, + ), + ]; + + ConversionWebhookServer::with_maintainer( + crds_and_handlers, + &operator_environment.operator_service_name, + &operator_environment.operator_namespace, + FIELD_MANAGER, + maintenance.disable_crd_maintenance, + client, + ) + .await + .context(CreateConversionWebhookSnafu) +} diff --git a/rust/operator-binary/src/webhooks/mod.rs b/rust/operator-binary/src/webhooks/mod.rs new file mode 100644 index 00000000..11eb2fc0 --- /dev/null +++ b/rust/operator-binary/src/webhooks/mod.rs @@ -0,0 +1 @@ +pub mod conversion; From 45c3a17b61298bb3d45a16a6d92066057f6dcdcf Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 15:49:12 +0200 Subject: [PATCH 19/23] chore: Remove version and instance label from 'tls' SecretClass --- rust/operator-binary/src/main.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index fc41911d..922d0b1f 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -222,14 +222,10 @@ async fn create_default_secretclass( #[rustfmt::skip] let managed_by = Label::managed_by(OPERATOR_NAME, "secretclass").expect("managed-by label must be valid"); - let version = Label::version(built_info::PKG_VERSION).expect("version label must be valid"); - let instance = Label::instance(OPERATOR_NAME).expect("instance label must be valid"); let name = Label::name(OPERATOR_NAME).expect("name label must be valid"); tls_secret_class .add_label(managed_by) - .add_label(version) - .add_label(instance) .add_label(name) .add_label(Label::stackable_vendor()); From 666d6a40b826063a0ef8cabd8bebaf48b22b8514 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 17 Oct 2025 15:55:35 +0200 Subject: [PATCH 20/23] docs: Mark generateSamAccountName as non-experimantal --- docs/modules/secret-operator/pages/secretclass.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/modules/secret-operator/pages/secretclass.adoc b/docs/modules/secret-operator/pages/secretclass.adoc index 10fb54a1..07247e69 100644 --- a/docs/modules/secret-operator/pages/secretclass.adoc +++ b/docs/modules/secret-operator/pages/secretclass.adoc @@ -296,7 +296,7 @@ on the base container: [#ad-samaccountname] ===== Custom `samAccountName` generation -IMPORTANT: `samAccountName` customization is an experimental preview feature, and may be changed or removed at any time. +NOTE: `samAccountName` customization was marked as non-experimental in SDP 25.11.0. By default, the `samAccountName` for created Active Directory accounts will be generated by Active Directory. @@ -313,13 +313,13 @@ spec: kerberosKeytab: admin: activeDirectory: - experimentalGenerateSamAccountName: + generateSamAccountName: prefix: myprefix- totalLength: 13 ---- -`kerberosKeytab.admin.activeDirectory.experimentalGenerateSamAccountName.prefix`:: A prefix that will be prepended to all generated `samAccountName` values. -`kerberosKeytab.admin.activeDirectory.experimentalGenerateSamAccountName.totalLength`:: The desired length of `samAccountName` values, _including_ `prefix`. Must not be larger than 20. +`kerberosKeytab.admin.activeDirectory.generateSamAccountName.prefix`:: A prefix that will be prepended to all generated `samAccountName` values. +`kerberosKeytab.admin.activeDirectory.generateSamAccountName.totalLength`:: The desired length of `samAccountName` values, _including_ `prefix`. Must not be larger than 20. NOTE: These options only affect _newly created_ accounts. Existing accounts will keep their respective old `samAccountName`. From b5ed105117f5dbea21e755defc62ed77f8875e9e Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 22 Oct 2025 10:04:07 +0200 Subject: [PATCH 21/23] fix: Only select Deployment in Service Co-authored-by: Sebastian Bernauer --- .../secret-operator/templates/controller-deployment.yaml | 4 ++++ deploy/helm/secret-operator/templates/service.yaml | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/deploy/helm/secret-operator/templates/controller-deployment.yaml b/deploy/helm/secret-operator/templates/controller-deployment.yaml index dca71496..6d95141b 100644 --- a/deploy/helm/secret-operator/templates/controller-deployment.yaml +++ b/deploy/helm/secret-operator/templates/controller-deployment.yaml @@ -17,6 +17,8 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} labels: + # TODO (@Techassi): Gate this behind the maintance.customResourceDefinition.maintain field + webhook.stackable.tech/conversion: enabled {{- include "operator.selectorLabels" . | nindent 8 }} spec: {{- with .Values.image.pullSecrets }} @@ -48,6 +50,8 @@ spec: # (which is turn pulls in https://github.com/stackabletech/operator-rs/blob/main/crates/stackable-operator/src/cli.rs) # You can read there about the expected values and purposes. + # TODO (@Techassi): Gate the DISABLE_CRD_MAINTENANCE env var behind maintance.customResourceDefinition.maintain field + # Sometimes products need to know the operator image, e.g. the opa-bundle-builder OPA # sidecar uses the operator image. - name: OPERATOR_IMAGE diff --git a/deploy/helm/secret-operator/templates/service.yaml b/deploy/helm/secret-operator/templates/service.yaml index 0cb05696..534f6e8f 100644 --- a/deploy/helm/secret-operator/templates/service.yaml +++ b/deploy/helm/secret-operator/templates/service.yaml @@ -1,4 +1,3 @@ - --- apiVersion: v1 kind: Service @@ -11,7 +10,9 @@ metadata: {{- include "operator.labels" . | nindent 4 }} spec: selector: - {{- include "operator.selectorLabels" . | nindent 6 }} + # TODO (@Techassi): Gate this behind the maintance.customResourceDefinition.maintain field + webhook.stackable.tech/conversion: enabled + {{- include "operator.selectorLabels" . | nindent 4 }} ports: - name: conversion-webhook protocol: TCP From c216e2e1dfc35746b8086454a5dde679d7a5e107 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 22 Oct 2025 12:02:14 +0200 Subject: [PATCH 22/23] feat(helm): Use new values in templates --- .../secret-operator/templates/controller-deployment.yaml | 6 +++--- .../templates/csi-node-driver-daemonset.yaml | 1 + deploy/helm/secret-operator/templates/roles.yaml | 2 ++ deploy/helm/secret-operator/templates/service.yaml | 3 ++- deploy/helm/secret-operator/values.yaml | 9 +++++++++ 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/deploy/helm/secret-operator/templates/controller-deployment.yaml b/deploy/helm/secret-operator/templates/controller-deployment.yaml index 6d95141b..337ad3a2 100644 --- a/deploy/helm/secret-operator/templates/controller-deployment.yaml +++ b/deploy/helm/secret-operator/templates/controller-deployment.yaml @@ -17,8 +17,9 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} labels: - # TODO (@Techassi): Gate this behind the maintance.customResourceDefinition.maintain field + {{- if .Values.maintenance.customResourceDefinitions.maintain }} webhook.stackable.tech/conversion: enabled + {{- end }} {{- include "operator.selectorLabels" . | nindent 8 }} spec: {{- with .Values.image.pullSecrets }} @@ -50,8 +51,6 @@ spec: # (which is turn pulls in https://github.com/stackabletech/operator-rs/blob/main/crates/stackable-operator/src/cli.rs) # You can read there about the expected values and purposes. - # TODO (@Techassi): Gate the DISABLE_CRD_MAINTENANCE env var behind maintance.customResourceDefinition.maintain field - # Sometimes products need to know the operator image, e.g. the opa-bundle-builder OPA # sidecar uses the operator image. - name: OPERATOR_IMAGE @@ -84,6 +83,7 @@ spec: value: {{ .Values.kubernetesClusterDomain | quote }} {{- end }} {{- include "telemetry.envVars" . | nindent 12 }} + {{- include "maintenance.envVars" . | nindent 12 }} {{- with .Values.controllerService.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml b/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml index 533c4923..b9d6f899 100644 --- a/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml +++ b/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml @@ -91,6 +91,7 @@ spec: value: {{ .Values.kubernetesClusterDomain | quote }} {{- end }} {{- include "telemetry.envVars" . | nindent 12 }} + {{- include "maintenance.envVars" . | nindent 12 }} volumeMounts: - name: csi mountPath: /csi diff --git a/deploy/helm/secret-operator/templates/roles.yaml b/deploy/helm/secret-operator/templates/roles.yaml index 29e6e90c..25d1b651 100644 --- a/deploy/helm/secret-operator/templates/roles.yaml +++ b/deploy/helm/secret-operator/templates/roles.yaml @@ -122,8 +122,10 @@ rules: - secretclasses - truststores verbs: + {{- if .Values.maintenance.customResourceDefinitions.maintain }} - create - patch + {{- end }} - get - watch - list diff --git a/deploy/helm/secret-operator/templates/service.yaml b/deploy/helm/secret-operator/templates/service.yaml index 534f6e8f..5cf6439b 100644 --- a/deploy/helm/secret-operator/templates/service.yaml +++ b/deploy/helm/secret-operator/templates/service.yaml @@ -1,3 +1,4 @@ +{{- if .Values.maintenance.customResourceDefinitions.maintain }} --- apiVersion: v1 kind: Service @@ -10,7 +11,6 @@ metadata: {{- include "operator.labels" . | nindent 4 }} spec: selector: - # TODO (@Techassi): Gate this behind the maintance.customResourceDefinition.maintain field webhook.stackable.tech/conversion: enabled {{- include "operator.selectorLabels" . | nindent 4 }} ports: @@ -18,3 +18,4 @@ spec: protocol: TCP port: 8443 targetPort: 8443 +{{- end }} diff --git a/deploy/helm/secret-operator/values.yaml b/deploy/helm/secret-operator/values.yaml index a0761310..1ac486ab 100644 --- a/deploy/helm/secret-operator/values.yaml +++ b/deploy/helm/secret-operator/values.yaml @@ -119,6 +119,15 @@ secretClasses: # Defaults to the namespace where secret-op is installed. caSecretNamespace: null +maintenance: + endOfSupportCheck: + enabled: true + # mode: offline + # interval: 24h + + customResourceDefinitions: + maintain: true + # See all available options and detailed explanations about the concept here: # https://docs.stackable.tech/home/stable/concepts/telemetry/ telemetry: From e2cbbdcad58a588aef899e57b0369f3ef11de58f Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 22 Oct 2025 12:07:28 +0200 Subject: [PATCH 23/23] feat(helm): Gate create, patch permissions for CRDs --- deploy/helm/secret-operator/templates/roles.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deploy/helm/secret-operator/templates/roles.yaml b/deploy/helm/secret-operator/templates/roles.yaml index 25d1b651..b585326e 100644 --- a/deploy/helm/secret-operator/templates/roles.yaml +++ b/deploy/helm/secret-operator/templates/roles.yaml @@ -45,11 +45,13 @@ metadata: rules: # Required to maintain the CRD. The operator needs to do this, as it needs to enter e.g. it's # generated certificate in the conversion webhook. + {{- if .Values.maintenance.customResourceDefinitions.maintain }} - apiGroups: [apiextensions.k8s.io] resources: [customresourcedefinitions] verbs: - create - patch + {{- end }} - apiGroups: - "" resources: