All notable changes for the Superblocks' On-Premise Agent will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added support for fetching (and executing) APIs referenced by application ID and path, rather than by api ID
- Updated Snowflake integration to not include
INFORMATION_SCHEMA
data in metadata - Updated Snowflake integration to pipe through database, schema, warehouse, and role for key-pair and sso auth types
- Updated
slim
image to only include JavaScript packages required to run the JavaScript worker - Added support for performing new "oauth on behalf of token exchange" auth type
- Added support for static subject token sources in "oauth2 on-behalf-of token exchange" auth type
- Updated token forwarding auth type with IDP subject tokens to explicitly fail for workflows and scheduled jobs
- Added support for "authTypeField" in integration OAuth flow
- Updated Snowflake integration to support "oauth2 on-behalf-of token exchange" auth type
- Explicitly shutdown prometheus metrics server when Python worker terminates
- Update
CheckAuth
to support integration configurations using the OAuth on-behalf-of token exchange auth type - Updated Snowflake node sdk to
v1.15.0
and disabled OCSP checking when connecting to Snowflake
- Added support for creating a worksheet in GSheets integration
- Refactor
launchdarkly
client to separate wrapper around LaunchDarkly SDK into its own package separate from the interface for agent specific flags - Fixed bug in Redis integration that caused some raw Redis queries to error unexpectedly
- Added support for exposing claims as part of Oauth payloads in the Oauth Code authorization flows
- Upgrade Google Cloud Secret Manager Go package to
v1.14.2
(fixes "certificate_config.json: permission denied" error connecting to GCP secret manager) - Added support for key-pair authentication in Snowflake Plugin
- Add support for machine-to-machine (M2M) authentication for Databricks plugin
- Update
WaitGroup
runnable to blockClose
method on theWaitGroup
completing (addressesredis: client is closed
errors) - Allow branch name to be given in workflow HTTP requests as a header:
X-Superblocks-Branch
- Add
last_updated
field to theResource
proto, and set last updated time in update signature requests to server - Fixed projection for findOne action in MongoDB integration
- Update signing rotation endpoint for APIs
- 403 status codes from the server now return as 403 instead of 500
- Added Superblocks partner ID to the Databricks integration
- Fix scheduled job execution for signed jobs (when signature verification is enabled)
- Now return Kinesis Plugin Metadata
- Add signing key's corresponding public key and algorithm to the
Signature
proto message - Fixes to Couchbase Plugin
- Add "signature rotation errors" field to
UpdateApiSignature
andUpdateApplicationSignature
proto messages (move existingSignature
intoresult
oneof field) - Added
prefix
anddelimeter
support to S3 Plugin - Added
moment-timezone
package to JavaScript worker - Bump superblocksteam/run dep to v0.0.6
- Include signing algorithms with verification keys when registering agent
- Include signing algorithm and public key in response from Sign endpoint (
/v1/signature/sign
) - Set errors on responses for all resources that fail to get re-signed during a signature rotation job
- Improved error messages in Email Plugin
- Updated debian packages to address a few vulnerabilities
- Added support for Okta SSO in the Snowflake plugin
- Fix connection string support for RedShift, MySQL, MariaDB, Postgres, CockroachDB
- Added connection string support for RedShift, MySQL, MariaDB, Postgres, CockroachDB
- Fix Snowflake template version
- Fix connection for Snowflake integration so we do not hang for 90 seconds on an invalid configuration
- Added AWS Kinesis plugin
- Fix worker/js helm limits.memory
- Update shutdown ordering so critical processes are not terminated prior to the webserver
- Update dependencies to remove critical vulnerabilities in wget and libexpat1
- Added support for enabling
restapi
,restapiintegration
,openapi
,graphql
andgraphqlintegration
plugins to return more verbose HTTP response data in result (e.g. response status text, status code, etc.) - Added support for configuring whether or not a step using a
restapi
,restapiintegration
oropenapi
plugin fails if the underlying web request fails - Added support for configuring whether or not a step using a
graphql
orgraphqlintegration
plugin fails if the GraphQL query returns with errors
- Change
v1.security.Resource.config.api
type fromv1.Api
togoogle.protobuf.Value
well known type
- Added support of action config to test method
- Added ViewMode to API start/end logs
- Added ViewMode to Block start/end logs
- Add comprehensive logger fields to oauth code
- Change: Support signing and verifying APIs at different versions than the agent
- Added support for new Akeyless Secrets Manager
- Set component field for remote logs from worker.go and worker.js
- Update worker request baggage to include additional metadata to be included in remote logs
- e.g.
agent-id
,agent-version
,application-id
, etc.
- e.g.
- Update python worker idle milliseconds metric to be active seconds metric
- Change:
signature.enabled
is renamedsignature.verification.enabled
to more accurately represent what it does (disable/enable verification only;signature.signing_key_id
controls signing) - Change: all
signature.keys
are sent during agent registration to server regardless of the value ofsignature.verification.enabled
(v1.10.2 introduced an awkward state where verification keys were not advertised during registration) - Change: when
signature.signing_key_id
is enabled, start watching superblocks server for rotation events - Add: new
signature.batch.size
which configures the batch size of resources to claim from server - Add 8 new LLM integrations.
- Support streaming for the REST integration.
- Change: default
example
signing key and verification keys are removed. - OPAs now skip ratelimiting logic as it's extra network calls for no benefit
- Fix: python file descripter leak resulting in
Too many open files
- Couchbase integration now accepts connection strings
- Switch to using W3C trace propagator
- Fix: Include verification key IDs in agent registration request
- Fix: Integrations with Dynamic Workflow Configuration now pass Profile during "Test Connection"
- Change: Bumped Microsoft SQL integration to support URI connection strings
- Switch to using asymmetric keys (ED25519) for resource signing/verification
- OPAs now skip ratelimiting logic as it's extra network calls for no benefit
- ?
- Support
web3
module in Javascript steps.
- Breaking Defaults for
events.cloud.enabled
set to false, as this was producing large amounts of error logs for EU customers. This flag is only used for signing and signing has not be enabled for EU customers yet.- For customers that have signing enabled, we must ask them to enable
SUPERBLOCKS_ORCHESTRATOR_EVENTS_CLOUD_ENABLED=true
- For customers that have signing enabled, we must ask them to enable
- Fix bug that prevented observability events to be authenticated correctly.
- Ensure redis is shutdown after all executions have been drained.
- Fix bug preventing OpenAPI integrations from honoring delegated binding resolution.
- Auto refresh renewable access tokens for HashiCorp Vault secret integrations.
- Fix the os environment bindings for plugin tests and metadata calls.
- Propagating
X-Superblocks-Authorization
header when talking to the new Global Edge Network. - Add more descriptive
User-Agent
header when talking to Superblocks. - When an API is cancelled, show "context cancelled" instead of
Internal Error
in the audit logs. - Add
application-id
andpage-id
to observability logs.
- Fixed plugin ID in OpenAPI integration step execution logs
- Enable the process pool worker
- Fixed issue in the python worker that resulted synchronous executions of steps
- Fixed issue in the python worker where steps would potentially block against concurrently running steps
- Fixed issue in the python worker where setting log level in non-uppercase would crash the worker
- Fixed observability logging of worker.go to propagate to downstream systems
- Added support for the
Elasticsearch
integration - Expose
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
environment variable in Python sandbox (for use in Python language steps)
- Release slim OPA
- Fixed missing
deasync
dependency in arm OPA image. Moved to buildingdeasync
from source since maintainer does not build the module for all node versions and architectures.
- Deprecated internal gRPC transport and all configuration parameters in favor of adding redis to the all-in-one container
- Fixed memory leak with the v8 plugin
- Fixed hanging apis when running with high parallelism
- Fixed agent panics when running with high parallelism
- Fixed loops timing out when running the REST plugin with basic auth
- Exposed configuration for API timeout
- Enable new integrations for OPA: Confluent, Redpanda, Couchbase, Databricks, Oracle Database
- Reduced baseline memory by 100Mb
- Introduce a shorter version for some of our agent environment variables. For example, you can use
SB_AGENT_KEY
instead of specifying bothSUPERBLOCKS_AGENT_KEY
andSUPERBLOCKS_ORCHESTRATOR_SUPERBLOCKS_KEY
. - Bump a lot of dependencies.
- Start sending traffic JavaScript code that can be run in V8 to the new Go worker.
-
Added the
EXPOSE
directive to the OPA's Dockerfile so that it can be inspected by vendors like Aptible. -
Introduced support for an RSA JWT to be utilized later.
-
Bump a lot of dependencies.
-
Utilized the new superblocksteam/run project.
-
Fix a few flacky tests.
-
Fix a few graceful shutdown issues.
-
Introduced s6 as our process manager for the container. This will ensure that all processes within the container received the proper signals and are given the opportunity to shut down gracefully.
-
Bump a lot of dependencies.
- Introduced s6 as our process manager for the container. This will ensure that all processes within the container received the proper signals and are given the opportunity to shut down gracefully.
- Bump a lot of dependencies.
- Added
date-fns==3.3.1
to the list of JavaScript dependencies
- Fixes an issue where OAuth tokens used in the Authentication Code flow would be too aggressively cached
- Fixes an issue where non-lang plugins could not access the Filepicker
- Log a warning if invalid mode is used in Filepicker
- Separate Kafka Consumer and Producer
- Update multiple Go dependencies
- Pass duration in seconds to quota error
- Use Kafka transactions for 2 and more messages
- Do not default access token's expiration to 1 day if expires_in = 0 or missing in exchange code response
- Fixes an issue with Google Sheets where sheet names dropdown is not loading
- Update multiple Go dependencies.
- Ensure that all operations executed against a v8 isolate occurr in the same go routine it was created in.
- Add gRPC middleware to catch client cancellations to provide a better error message.
- Fixes segfault when logging error detail
- Logs internal error, returned by clients.Check
- Updates orchestrator to parse imports for javascript steps
- Adds support for id_token in OAuth Code flow
- Ensure a step can run for as long as the API has left.
- Add JavaScript polyfile for "console".
- Stops passing the test workflow body values to deployed runs
- Fixes an issue with the observability pipeline where plugin errors and logging were not piped to customer telemetry sinks
- Fixes an issue regarding large nested objects causing Python performance issues
- Allows users to configure size limits in their OPAs, this currently defaults to 30MB. For the OPA these will need to be raised in tandem.
- SUPERBLOCKS_ORCHESTRATOR_GRPC_MSG_REQ_MAX
- SUPERBLOCKS_ORCHESTRATOR_GRPC_MSG_RES_MAX
- Removes the logging of the request values in the orchestrator
- Fixes an issue with the OPA where the healthchecks will return 500 after 30 minutes of the agent being idle
- Fixes an issue with Google Sheets integration metadata call
- Gracefully handle nil pointer dereference when an workflow returns an unexpected nil output
- [SECURITY] Prevents logs from printing out API action configs in the worker logs
- Disables the signing feature in the OPA by default as it's currently still unreleased.
- Fixes issue with subject not being correctly set in emails sent via Email plugin steps
- Adds use of Superblocks-controlled template for emails sent using the Email plugin
- Fixes issues with reading the 2nd file from the Filepicker
- Fixes issues with plugin metadata responses being rejected due to validation error
- Fix panic when a workflow response is null and adds debug logging to surface those issues
- Fixes issue with Python steps being unable to read files due to BlockingIO
- Fixes issue with MongoDB steps failing due to "Unexpected struct type" error
- Adds support for fetching branch-specific API definitions
- Fixes visibility of new REST authentication methods (API tokens forms for integrations like Datadog, CircleCI, etc.)
- Adds support for SMPT integration
- Fixes issue with executing API steps that use OpenAPI integrations
- Introduce ARM image for local testing and deployment
- Addresses python plugin bugs:
- Issue where python plugin is no longer able to use attribute notation to access dictionary keys
- Issue where python was unable to read file contents via the FilePicker component
- Orchestrator based OPA released
- Supports control-flow execution