Accounts
Accounts are the fundamental container for your Faraday resources, defining data isolation and API access.
Accounts overview
Accounts are the secure container for your organization's resources and data on the Faraday platform. Defined rigorously in our code as a well-structured resource with clearly defined data structures, the Account object establishes the boundary for data ownership and API access.
While an account is typically created automatically when you sign up on the website, it remains a distinct object with properties that can be managed programmatically. Specifically:
- Identity: An account has a name.
- Membership: Users (you) are members of an account.
- Access: The account is tied to an API key, which determines the scope of resources you can access or create.
Sub-accounts
The Account abstraction is essential for creating sub-accounts. This feature is commonly used by "Powered by Faraday" users or partners who need to provision Faraday environments for their own clients.
Creating a sub-account allows you to achieve the necessary logical data isolation required by your client's specific security posture.
Provisioning flow
The standard workflow for provisioning a new client environment via the API involves the following steps:
- Authenticate as Parent: Use your parent account API key to initiate the process.
- Create Sub-account: Use the create account endpoint (
POST accounts) to generate a new sub-account. - Retrieve Credentials: Upon creation, you will receive a new API key specific to that sub-account.
- Provision Resources: Switch contexts and use the new sub-account API key to configure connections, datasets, and other resources inside that isolated environment.
Inheritance and isolation
When managing sub-accounts, it is critical to understand what is shared and what is isolated.
| Feature | Inheritance Status | Description |
|---|---|---|
| Billing Plan | Inherited | The billing plan is inherited from the parent account to the sub-account. |
| Resources | Not Inherited | No resources are shared between sub-accounts, nor are they shared from the parent to the sub-account. They must be affirmatively created again in the sub-account. |
| Data | Not Inherited | Data (datasets, connections) is not shared, ensuring logical data isolation. |
📘Resource creation in sub-accounts
Because resources are not shared, you must use the sub-account's specific API key to create any necessary infrastructure (such as Connections or Datasets) inside the new environment.
Managing accounts
You can interact with the Account abstraction to retrieve basic details, such as the account name, and in some cases update them programmatically.
- Look up: You can use the API to look up and retrieve the name of an account.
- Update: You can change the name of an account programmatically.