The main artifact in Beyond Work is a Workblock. Workblocks are composable units of work that can be created (authored) and executed on the platform.
Users can build workblocks via the platform using natural language. This generates a workblock that consists of modules and tasks, which can then be executed on the platform.
Workblocks are versioned, and only owners and editors can change the workblocks. Depending on customer requirements, the platform allows customers to store workblock definitions in Git repositories and use them for code reviews in order to implement a full software development lifecycle with change management.
By default, the platform tracks all changes and who made them. Workblocks can be tagged, and starting workblocks can be based on tagging so that for example a workblock can have a production tag on a specific version. Even if there is a later version, the production version will be used when starting. This can be used to implement phased rollouts.
— Pull data from an API: the generated Python code can issue API requests to fetch data. In most cases, this requires authentication, see the credentials section for more on that.
— Push data to an API: the generated Python code can use any API to push data. This might be a HTTP/REST based API; it could also be SFTP or similar. See the credentials section for information on how to authenticate.
— Receive data from other systems: the platform currently supports two ingress options:
— Email — it's possible to set up special email addresses that will trigger workblocks to run with the email content.
— HTTP — you can generate a secret token that can be used in HTTP requests against the Beyond Work HTTP API. This API will receive any request and any body. The request will then trigger the workblock to run and to receive the request as input. The generated Python code can then determine how to proceed.
— User triggered via the UI
— An API integration to start a workblock
— An email or HTTP trigger
— Scheduled executions, for example run a workblock every day
— As a child of another workblock
In all cases, the execution happens in a secure sandbox environment where the code cannot directly touch any of the platform, only by issuing requests via the Beyond Work SDK. These requests travel over a secure channel that's tied to a specific execution and user, making it impossible for the sandbox to impersonate other users. Depending on the security policy of the workblock, the sandbox environment might or might not be able to establish outgoing connections.
For access control, an execution has an audience. The audience is configured when the workblock is started, and is the list of users who should have access to the execution (to see it and to interact with it).
Once an execution is complete, a full trace of the execution is stored. This trace contains a full audit trace of who did what during the execution as well as what data was processed.
— Rowstore — tables, primary keys, indexes. Used for workblock-defined schemas; shareable with permissions. Mutable; no joins.
— Blob store — opaque blob keyed by string. Used for documents and similar; no search/index. Mutable.
— Vector store — embeddings + metadata. Used for similarity search. Mutable.
— Run data — append-only, SQL-readable. Used for workblock execution outputs and ad-hoc data. Append-only.
The platform does not provide a general-purpose SQL database. It is possible to connect to an external database from a workblock if such a database is needed.
"There is no general SQL surface. If you need one, you bring one."
Integrations
The platform provides full flexibility for integrating with other systems and platforms in a number of ways:
Integration credentials
Most integrations require some form of authentication. The Beyond Work platform natively supports static key credentials as well as OAuth2 client credentials and token exchange. All credentials are stored in AWS' secure Secrets Manager and are subject to customer-defined access controls.
Execution environment
Workblocks can be started in a number of ways:
Data storage
Workblocks can choose to store data on the platform itself using one of four mechanisms, all of them subject to customer-defined access controls:
Data retention for workblocks
The platform stores full traces of all workblock executions. These are used for cost calculations and auditing, as well as debugging and replays. The traces are stored online for 30 days and for a configurable amount of time in cold storage. The default is to store for 3 years.