Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
From the User Settings page, you can:
Upload an image to use to represent your account.
Change your Ephemeral password.
Manage your API tokens, used to make calls to the Ephemeral API.
Manage your SSH tokens, used to connect to an Ephemeral database.
To display the User Settings page:
Click your user image at the top right of Ephemeral.
In the menu, click User Settings.
To change the user image that is displayed at the top right of Ephemeral.
Click Upload.
Search for and select the image to use.
To change your Ephemeral password:
In the Current password field, type your current Ephemeral password.
In the New password field, type the new password that you want to use.
In the Repeat new password field, type the new password again.
Click Confirm.
To make calls to the Ephemeral API, you must have an API token. From the User Settings page, you can create and revoke API tokens.
To create an API token:
Under User API Token, click Create Token.
On the token creation panel, in the Name field, type a name for the token.
Click Create API Key.
On the confirmation panel, to copy the key to the clipboard, click Copy to Clipboard.
To remove an API token from the list:
Click the Delete option for the token.
On the confirmation panel, click Delete.
Ephemeral databases are protected behind an SSH bastion. The connection details for each database include both the database connection and the bastion connection.
When you connect to an Ephemeral database, you provide the private key to connect to the bastion. Your Ephemeral account must have a corresponding public key associated with it.
From the User Settings page, you can add and remove the public key values.
To add an SSH public key to your account:
Under SSH Token, click Add SSH Token.
In the Name field, type a name to assign to the token.
In the Key field, paste the public key value.
Click Add SSH Key.
To remove an SSH public key from the list:
Click the Delete option for the token.
On the confirmation panel, click Delete.
Configure required resources
Set the disk space allocation and compute resources for a database
Configure the database expiration
Set whether the database expires, and how to determine when the database expires
Provide a custom configuration file
Enter the content of a custom configuration file for a MySQL or PostgreSQL database
For a Tonic Ephemeral database, you can specify disk space and compute resources. After you set these values for a database, you cannot change them.
In the Disk space allocation field, specify the size in gigabytes to allocate to the database and to each of its snapshots. For a free trial, a database cannot use more than 100 GB.
Ephemeral uses that value to calculate the amount of space being used by the current databases and snapshots, and to determine the amount of disk space that can be used before Ephemeral displays a warning. For information about how to monitor disk space usage and configure the alert threshold, go to Monitoring your disk storage.
From the Compute resources dropdown list, select the option to use for the combination of vCPUs and memory:
Nano - 0.125 vCPU with 0.5 GB RAM
Micro - 0.5 vCPU with 2 GB RAM
Small - 1 vCPU with 4 GB RAM
Medium - 2 vCPU with 8 GB RAM
Large - 4 vCPU with 16 GB RAM
For a MySQL or PostgreSQL database, you can provide a customization file to ensure that the database is configured correctly.
On the Settings tab of the database details panel, to provide the customization file:
Toggle Custom configuration file to the on position.
In the text area, paste the contents of the customization file.
For each active database, Tonic Ephemeral provides access to the connection details for the database.
The connection details include the SSH tunnel connection information, and the general connection information for the database.
To connect to a database, your Ephemeral account must have an associated public key for the SSH bastion private key. For information on how to add public keys to your account, go to #ephemeral-account-ssh-tokens.
The connection information is on the Connection Details tab of the database details panel.
From the Databases page, to display the connection details for the database:
Click the database icon for the database.
Click the options icon for the database, then click Connection Info.
On the Connection Details tab, each field includes a copy icon to allow you to copy the value to the clipboard.
On Ephemeral Cloud, the database connection is always through an SSH tunnel.
The connection details include:
Information for the SSH tunnel connection
Connection information for the database
A self-hosted Ephemeral instance can be configured to either use SSH tunnels or use direct connections on DNS.
If the instance uses SSH tunnels, then the connection details include:
Information for the SSH tunnel connection
Connection information for the database
If the instance uses direct DNS connections, then the connection details only include the database connection information.
For information on how to configure the connection type, go to Configuring database access on a self-hosted instance.
To create an SSH tunnel to a database from a local machine:
ssh -N -L <localport>:<database-hostname>:<database-port> <bastion-username>@<bastion-host> -p <bastion-port>
For example:
ssh -N -L 9999:svc-bd391f5270d64defb63100cc1bdaa32b:5432 jumper@db.ephemeral.tonic.ai -p 9000
In the command:
-N
tells SSH to not open a shell. Ephemeral does not allow shell access.
<localport>
is the port the database will be accessible at on your local machine.
The other values (<database-hostname>
, <database-port>
, <bastion-username>
, <bastion-host>
, <bastion-port>
) are available from the Connection Info panel.
If the private key file is not configured in your SSH agent, then you can optionally add -i
to specify the private key file.
ssh -N -L <localport>:<database-hostname>:<database-port> <bastion-username>@<bastion-host> -p <bastion-port> -i <private-key-file>
For example:
ssh -N -L 9999:svc-bd391f5270d64defb63100cc1bdaa32b:5432 jumper@db.ephemeral.tonic.ai -p 9000 -i ephemeral-key.pem
If you are not sure that the connection is successful, or are unable to connect to the database, then here are a couple of troubleshooting steps to check that the tunnel is open and you can connect to the database.
To verify that the tunnel is open, try to connect in a tool such as telnet or netcat. Test the connection from the same machine that you used when you ran the command to open the tunnel.
For example, to use netcat to try to connect from your local machine:
Or for telnet:
If the tool does not return an error, then the tunnel is open.
After you verify that the tunnel is open, to verify that you can connect to the database, use a terminal client to issue a query against the database.
If the query from the terminal client is successful, but you are unable to connect from your database client, then there might be an issue with your database client.
To interact with an Ephemeral database programmatically, instead of issuing individual commands to create the SSH tunnel, you can use an SSH sidecar.
In Ephemeral, an SSH sidecar is a Kubernetes sidecar container that creates an SSH tunnel to a remote host through a bastion. It runs alongside other containers in a single pod.
The other containers use the sidecar to connect to an Ephemeral database without having to create the SSH tunnel themselves.
You deploy an SSH sidecar for each database connection.
The image is published at quay.io/tonicai/ephemeral_ssh_sidecar. We recommend that you use the latest
tag.
The private key that is used to authenticate with the SSH host should be mounted to the container as a secret.
To ensure that the SSH client does not reject the key, mount the secret with 0600 file permissions.
Use the following environment variables to configure the sidecar for an Ephemeral database connection.
The SSH host and remote host information for the database is included in the database connection information that is returned by the Ephemeral API. For more information, go to Getting information about Ephemeral databases.
The following variables are used to configure the authentication to the SSH host.
The following settings identify the host and port where the Ephemeral database is located:
The following setting identifies the local port from which to make the connection:
Thee following setting configures the retry behavior for the tunnel creation:
Here is an example of a Kubernetes deployment that uses an SSH sidecar to connect to an Ephemeral database through an SSH tunnel:
When you configure your application to use the sidecar to connect to an Ephemeral database, the connection information is:
Host
- The IP address or hostname of the pod that runs the SSH tunnel image. If it is on the same pod, then Host
is localhost
.
Port
- The value that you configured for LOCAL_PORT
.
Username
and Password
- The values of the Username and Password fields in the Ephemeral database connection information.
From the Databases list, you can display the details for a database, and edit the following:
Database name
Database description
To display the details panel for a database:
Either:
Click the database name.
Click the options icon for the database, then click Settings.
On the Settings tab of the details panel, update the configuration.
After you change the configuration, to save the changes, click Save.
On Ephemeral Cloud, each new Ephemeral account starts as a two-week free trial to allow you to get a feel for Ephemeral and how it works before you purchase it.
The free trial provides access to all of the Ephemeral features and functions. It does limit the allocated storage for your Ephemeral databases to 100 GB each.
In Tonic Structural, when you choose to write data generation output to Ephemeral, an account is created for if you do not already have one.
To create an Ephemeral free trial account:
Go to the .
To use a corporate Google email address to create the account, click Create account using Google.
Otherwise, to provide the account information:
In the First Name and Last Name fields, type your first and last names.
In the Email Address field, type your email address.
In the Password field, type the password that you want to use for your Ephemeral account.
In the Confirm Password field, type the password again.
Click Create Account. Ephemeral sends an activation email to the email address that you provided.
In the activation email, click Activate account. Ephemeral activates your account.
On the Ephemeral login page, provide your email address and password, then click Log In. Ephemeral displays the use case selection panel.
On the use case selection panel, click each use case that applies to you, then click Next. Ephemeral displays the Databases page.
The quick start checklist highlights Ephemeral's main features.
Importing data from an external source
Starting a new database
Connecting to a database
Managing user snapshots
It also provides information about subsetting in Tonic Structural, which is one way to create a smaller set of data that you might use to create an Ephemeral database or user snapshot.
The checklist displays automatically when you first create your account.
You can close the checklist, for example, to ensure that you can view the entire Ephemeral page.
To reopen the checklist, in the Ephemeral heading, click Quick Start Checklist.
When you click a checklist entry, Ephemeral displays an overview panel for the task.
The overview panel provides a brief description of the task.
Ephemeral can also highlight the option to select in order to perform that task.
As you complete each task, Ephemeral marks the task as complete on the checklist.
When you complete all of the items, Ephemeral replaces the checklist with a panel to indicate that you finished the checklist. The panel includes a link to return to the checklist. It also contains a link to start a chat with the Tonic.ai sales team.
When the free trial period ends, you can no longer start a new database. Ephemeral also deactivates your existing databases.
The Databases page displays the list of active, inactive, and expired databases for your organization.
It does not include databases that were created more than a week before the current date.
To display the Databases page, in the Tonic Ephemeral navigation menu, click Databases.
For each database, the list includes:
The name of the database
The allocated size and compute resources for the database
The database status, which includes:
Whether the database is currently active
The configured life span for the database
The amount of time remaining before the database expires
When the database was created
The user who created the database
You can filter the list based on the name or database status. Ephemeral saves your current filters - when you leave and then return to the Databases page, the list uses the most recent filters.
To add a filter:
To filter by name, in the filter field, begin to type text that is in the database name.
As you type, Ephemeral filters the list to only include matching databases.
To filter by status:
in the Status column heading, click the filter icon.
To exclude a status, uncheck its checkbox.
You can sort the list by any of the columns. Ephemeral saves the current sorting - when you leave and then return to the Databases page, the most recent sorting is used.
To sort by a column, click the column heading.
To reverse the sort order, click the column heading again.
You can reset an active database to either:
An empty database.
To a selected auto or user snapshot of the database.
Before it completes the reset, Tonic Ephemeral creates an auto snapshot of the current database.
From the Databases list, to reset the database:
Click the options menu for the database.
In the options menu, click Reset.
On the confirmation panel:
To reset the database to an empty database, click Empty Database.
To reset the database to the a selected snapshot, click Snapshot Cache, then from the Snapshot drop-down list, select the snapshot to use. You can choose either an auto snapshot or a user snapshot.
Check Yes, I want to reset this database.
Click Reset.
SSH_USER
The user that is used to connect to the SSH host.
SSH_HOST
The SSH host for the SSH tunnel.
SSH_PORT
The port on the SSH host.
PRIVATE_KEY_FILE_PATH
The path to the private key file that is used to authenticate with the SSH host.
REMOTE_HOST
The remote host to create the SSH tunnel to. This is the host for the Ephemeral database.
REMOTE_PORT
The port on the remote host.
LOCAL_PORT
The port on the local host from which the SSH tunnel is created.
RETRY_ON_COLLAPSE
Whether the sidecar attempts to recreate a collapsed tunnel.
The default is false
.
Before you set this to true
, make sure that your configuration is correct. If the SSH tunnel collapses because of a misconfiguration, it can start an unending cycle of the tunnel collapsing and the sidecar attempting to recreate it.
If you have existing data that you want to use in Tonic Ephemeral databases, you can import that data into a new Ephemeral user snapshot.
When you import data into an Ephemeral user snapshot, Ephemeral creates a temporary Ephemeral database. It provides the connection details for that database. You use those credentials to import the data into the temporary database.
When you finish importing the data, Ephemeral removes the temporary database and creates the user snapshot. You have up to 48 hours to finish the data import before the temporary database expires.
To create a user snapshot with imported data:
On the Databases page, click Import Data.
On the import options panel, click Import Data.
On the Import data panel:
In the Snapshot Name field, provide the name of the new snapshot.
Optionally, in the Description field, provide a longer description of the snapshot.
Under Select database type, select the type of database for the snapshot.
From the Image dropdown list, select the image to use. Select the image that corresponds to the database version.
In the Disk space allocation field, provide the size in GB to allocate for the data.
Click Next.
Ephemeral uses the snapshot configuration details to create a temporary Ephemeral database.
The Import Data panel displays the connection details for the temporary database. The connection details include both the database credentials and information on how to create an SSH tunnel to the database.
You use the connection details to connect to the temporary database so that you can import data into it from your external system.
From the Import Data panel, when you finish importing data into the temporary database, click Create Snapshot.
Ephemeral uses the imported data to create the user snapshot. It deletes the temporary database.
You do not need to immediately import data into the database. To do the data import later, on the Import Data panel, click Import data later.
On the Databases page, the temporary database has the name Import (<Snapshot name>) and a status Pending data import.
The database remains active for 48 hours.
To display the connection details so that you can complete the data import, click the Import option for the database.
Ephemeral displays the Import Data panel with the connection details for the temporary database. When you are finished importing data, click Create Snapshot.
From the Databases page, to completely cancel the data import, click the close icon for the temporary database.
On the confirmation panel, click Confirm.
You can deactivate an active database.
When you deactivate a database, Tonic Ephemeral creates an auto snapshot of the current database.
From the Databases page, to deactivate a database:
Click the options menu for the database.
In the options menu, click Deactivate.
On the confirmation panel, check Yes, I want to deactivate this database.
Click Deactivate.
On the Databases page, the database status is changed to inactive. Ephemeral creates the auto snapshot.
When a database expires or is deactivated, it displays in the Databases list as an inactive database.
Ephemeral reactivates the database from the most recent available snapshot that was created from the database. This might be either an auto snapshot or a user snapshot.
To reactivate a database:
If needed, update the database status filter to display deactivated databases.
Click the reactivate icon for the database.
On the confirmation panel, click Reactivate.
The database status changes to active. Ephemeral also creates an auto snapshot of the database.
The Snapshots page provides access to your user snapshots. To display the Snapshots page, in the Tonic Ephemeral navigation menu, click Snapshots.
You can sort the list by any of the columns. To sort by a column, click the column heading. To reverse the sort order, click the column heading again. Ephemeral saves the current sorting - when you leave and then return to the Snapshots page, the most recent sorting is used.
The Snapshots list contains the following information about each user snapshot:
The name of the user snapshot
The user snapshot size
The number of days until the user snapshot is deleted, if you configure Ephemeral to automatically delete user snapshots
When the snapshot was most recently used
When the user snapshot was created, and the user who created the snapshot
To filter the list by the snapshot name, in the filter field, begin to type text that is in the name.
As you type, Ephemeral filters the list to only include the matching snapshots.
Ephemeral saves your current filter - when you leave and then return to the Snapshots page, the list uses the most recent filter.
Tonic Ephemeral allows you to create temporary databases that you can use for demos, development, and testing.
Need help with Ephemeral? Contact support@tonic.ai.
Tonic Ephemeral creates each database from an image, a snapshot, or a data volume. The databases run in Kubernetes.
Ephemeral provides the connection information to use to connect to each database.
Snapshots are data volumes that are stored in cloud block storage. You can use a snapshot to start, copy, reset, and restart a database. You can configure Ephemeral to delete snapshots automatically after a specified period of time.
Tonic Ephemeral currently allows you to create databases of the following types:
MySQL
Oracle
PostgreSQL
SQL Server
Ephemeral provides empty base images for its supported database types. When you create a database from an image, Ephemeral creates an empty database.
You can use Ephemeral user snapshots to create a database.
You can create user snapshots on-demand from an existing Ephemeral database. You can also create a user snapshot:
With data that you import from an external source. For more information, go to Creating a user snapshot from imported data.
Ephemeral also supports auto snapshots, which it creates automatically when specific database events occur, such as a database start, deactivation, or expiration.
You can also create data volumes to use as the basis for new Ephemeral databases. You store the data volumes in your container repository.
This option is not recommended for data larger than 10 GB. In that case, we recommend that you write the output to an Ephemeral user snapshot.
To start a database, you can either:
Create a completely new database from a base image or volume
Copy an existing Tonic Ephemeral database
For a new database, you can create the database from either:
A user snapshot. The new database is populated with the data from the snapshot. This might be:
A user snapshot created from another Ephemeral database. For more information, go to Creating a user snapshot from an Ephemeral database.
A user snapshot created by importing data from an external source. For more information, go to Creating a user snapshot from imported data.
A user snapshot created from a Tonic Structural data generation where the workspace is configured to write output to an Ephemeral user snapshot. For more information, in the Structural documentation, go to .
A data volume that is in your container registry. The database is populated from the data volume. This might be a data volume created from a Tonic Structural data generation where the workspace is configured to write output to a container repository. For more information, in the Structural documentation, go to . The data volumes are in a location that you configure in Ephemeral. For more information, go to Setting the registry location for data volumes.
An image that Ephemeral provides. This creates an empty database.
When you copy an existing database, it uses the current data in the copied database.
For both new and cloned databases, you can configure the allocated disk storage and expiration.
To start and configure a new database, on the Databases page, click Start Database.
The database creation panel displays.
In the Name field, provide a name for the database.
Optionally, in the Description field, provide a longer description of the database.
To create the database from a user snapshot:
On the database creation panel, under Source data from, click Snapshot.
From the User snapshots dropdown list, select the user snapshot to use for the database. To search for a specific snapshot, begin to type the snapshot name.
Note that you can also start a database from a snapshot on the Snapshots page. From the Snapshots page, you can create a database from either a user snapshot or an auto snapshot.
To create the database from a data volume in your container registry, under Source data from, click Registry.
In the Volume field, specify the volume.
An Ephemeral data volume is an OCI artifact that contains one layer. The layer consists of a tar.gz of the database’s data directory, and a JSON file that provides database metadata. To specify the volume, use one of the following formats:
<registry URL>/<repository path>:<tag>
(For example, quay.io/tonicai/ephemeral-volumes:myvolume
)
<registry URL>/<repository path>@<digest>
(For example, quay.io/tonicai/ephemeral-volumes@sha256:930513081gpwl92fda75560fa67ul9afe03bc19e250258c915abceb72f8329da2
)
To create an empty database:
Under Source data from, click Create an empty database.
Under Select database type, click the type of database Ephemeral currently supports the following database types:
MySQL
Oracle
PostgreSQL
SQL Server
From the Image dropdown list, select the image to use. The list includes the images for different versions of the database type that you selected.
For Ephemeral Cloud, you can only select the Oracle 23c image that we provide. This image has the following limitations:
A maximum of 12GB of user data
A maximum of 2CPU cores and 2GB of RAM
On a self-hosted instance, the available images include any custom images that you added. For more information, go to Managing custom images.
After you set the source information for the database:
Configure the storage and compute resources for the database. For more information, go to Setting the required resources for a database.
Configure the expiration for the database. For more information, go to Setting the database expiration.
For a MySQL database, optionally provide a custom configuration file. For more information, go to Providing a custom configuration file.
After you complete the configuration, to start the database, click Start.
Tonic Ephemeral adds the database to the list, and creates an auto snapshot of the database.
You can also start a new database by copying an existing database. When you copy a database, you start with the data that is currently in the copied database.
For a cloned database, you can only change the allocated space and the expiration settings.
To copy an existing database to a new database:
On the Databases page, click the options menu for the database to clone.
In the options menu, click Copy Database.
On the details panel, in the Name field, provide the name for the new database.
Optionally, in the Description field, provide a longer description for the new database.
Configure the storage and compute resources for the database. For details, go to Setting the required resources for a database. Note that the allocated disk space for the copy cannot be less than the allocated space for the original database.
Configure the expiration for the database. For details, go to Setting the database expiration.
Click Save. Ephemeral adds the database to the list, and creates an auto snapshot of the database.
For each database, Tonic Ephemeral tracks events that affect the database, including when:
The database is started
The database configuration is updated
The database is copied
A user snapshot is created
A user deactivates the database
A user reactivates the database
The activity log does not indicate when a database expires or is deactivated automatically.
To display the activity log for a database:
On the Databases page, click the options menu for the database.
In the options menu, click Activity Log.
On the Activity tab of the details panel, the entries are in reverse order by date, with the most recent entries at the top of the panel.
The entries are grouped by date. To download the logs that are associated with the event, click the download icon.
To close the panel, click Close.
You can create a user snapshot from a Tonic Ephemeral database at any time. The user snapshot reflects the state of the database at that time. You can use user snapshots to preserve specific data milestones.
To create a user snapshot from an Ephemeral database:
In the Databases list, click the options menu for the database.
In the options menu, click Create snapshot.
On the Create User Snapshot panel, in the Snapshot name field, type the name of the new snapshot.
Optionally, in the Snapshot description field, provide a longer description of the snapshot.
Click Create User Snapshot.
Tonic Ephemeral can automatically expire databases, and delete snapshots, but does not automatically delete any databases.
From the Databases page, you can completely remove databases that you no longer need. You can delete both active and inactive databases.
When you delete a database, Ephemeral deletes both the database and any associated auto snapshots. It does not delete user snapshots.
To delete a database:
On the Databases page, click the options menu for the database.
In the options menu, click Delete.
On the confirmation panel, check Yes, I want to delete this database.
Click Delete.
Auto snapshots are data volumes that are stored in Ephemeral. An auto snapshot reflects the state of an Ephemeral database after a specific database event occurs.
Ephemeral creates an auto snapshot when:
You start a database.
You reset a database.
The database expires.
You deactivate a database.
You reactivate a database.
On the database details panel, the Auto Snapshots tab contains the auto snapshots for the database.
For each auto snapshot, the list includes:
The event that triggered the auto snapshot
When the auto snapshot was created
You can configure Tonic Ephemeral to automatically delete auto snapshots after a specified period of time. For details, go to Configuring automatic deletion of snapshots.
To delete an auto snapshot manually, click the options menu for the snapshot, then click Delete Snapshot.
Note that when you delete auto snapshots, it does not affect the database, but it can increase the time required to reactivate or to copy the database.
For an existing user snapshot, you can edit the name and description.
To edit a user snapshot:
In the Snapshots list, click the snapshot name or settings icon.
On the snapshot details panel, edit the name or description.
Click Save.
You can configure the database to expire automatically, or to pause outside of business hours. When you start a new database, the default configuration is to expire the database after 8 hours of inactivity.
To set the expiration, on the Settings tab of the details panel, Establish an expiration timer for the database must be in the on position.
When you enable expiration, the options are:
Inactivity - The database expires when it hasn't been used for a specified amount of time. For example, expire the database after it hasn't been used for 3 hours. By default, a database expires after 8 hours of inactivity.
A set duration - The database expires after a specific amount of time. For example, expire the database 3 days after it is created. If the database is in use when it is scheduled to expire, Tonic Ephemeral waits to expire the database until an hour after it is no longer in use.
Business hours - The database is only active during specified business hours, and pauses outside of those hours. The database does not expire. For example, pause the database each weekday at 5:00 PM, and resume it the next weekday at 7:00 AM. If the database is in use when the business hours end, Ephemeral waits to pause the database until an hour after it is no longer in use.
To set the expiration based on inactivity:
Click Inactivity.
Select the length of inactivity after which the database expires.
Ephemeral provides built-in options to expire the database after 3, 8, or 24 hours of inactivity. To configure a custom expiration:
Click Custom.
In the value field, provide the number of hours or days of inactivity after which to expire the database.
Click the unit to use (Hours or Days).
To set the expiration based on a specific time period:
Click Set Duration.
Select the length of time that the database is active.
In the value field, provide the number of hours or days that the database is active.
Click the unit to use for the duration (Hours or Days).
To limit a database to specified business hours:
Click Business Hours.
From the Timezone dropdown, select the time zone to use to determine the business hours.
From the From and To dropdowns, select the start and end days when business hours are in effect. For example, for a traditional 5-day work week, the start day is Monday and the end day is Friday.
From the Start and End dropdowns, select the start and end time for each business day. For example, your business hours might be from 7:00 AM to 6:00 PM.
A user snapshot is a data volume that is stored in Ephemeral.
A user snapshot is created in one of the following ways:
You , to capture a specific state of the database.
You create a user snapshot from data that you import from an external source. For more information, go to .
Tonic Structural creates a user snapshot as the output of a Structural data generation. For more information, in the Structural documentation, go to .
You can .
Ephemeral can also use a user snapshot that is created from an existing database to , if the snapshot is the most recent snapshot of that database.
As the output of a Tonic Structural data generation. For more information, in the Structural documentation, go to .
Tonic Structural can create a data volume as the output of a data generation. For more information, in the Structural documentation, go to .
On a self-hosted instance of Ephemeral, you can configure how users can connect to Ephemeral databases.
You can require them to use an SSH tunnel, or you can enable direct access to the databases.
In the Helm chart, you use the settings in the database_access
section to configure the database access. The Helm chart provides the configuration instructions.
To require SSH tunnels for database connections:
Set type
to SshBastion
.
Configure the bastion
settings.
To use direct connections to databases:
Set type
to Direct
.
Configure the direct
settings.
A Tonic Ephemeral Helm chart is located at oci://quay.io/tonicai/ephemeral.
During the onboarding process, Tonic.ai provides you with the access credentials to our Quay repository, which includes both the Helm chart and the application images.
Before you pull the Helm chart from the repository, you must authenticate Helm to Quay:
helm registry login quay.io
After you authenticate, to get the values file for the Helm chart, use:
helm show values oci://quay.io/tonicai/ephemeral --version 1.023.0
The file includes documentation about the configuration options and values.
The chart version corresponds to the version of Ephemeral. For example, Ephemeral version 023 has a chart version of 1.023.0.
To install Ephemeral:
helm install -n <your-namespace> ephemeral oci://quay.io/tonicai/ephemeral --version 1.<ephemeral-version>.0 -f values.yaml
To upgrade to a newer version of Ephemeral:
helm upgrade -n <your-namespace> ephemeral oci://quay.io/tonicai/ephemeral --version 1.<ephemeral-version>.0 -f values.yaml
Every user belongs to an Ephemeral organization.
Users who belong to the same organization can see all of the databases for that organization.
By default, when you create an Ephemeral Cloud account, Ephemeral also creates an organization for your account.
You might want all of the users that have your company email domain to be added to the same organization. To enable this behavior, contact Ephemeral support.
When Ephemeral Cloud ties an email domain to a specific organization, then when a user with that email creates an Ephemeral account, Ephemeral adds them to that organization.
On a self-hosted instance of Ephemeral, all users belong to a single organization.
When a user creates an account, they are automatically added to that organization.
On a self-hosted instance of Ephemeral, you can configure the nodes where Ephemeral can schedule pods.
If your Kubernetes nodes are configured with taints, then you can configure the tolerations that enable the pods to be scheduled on the nodes. Overview of taints and tolerations in Kubernetes documentation.
You can also configure node selectors. Overview of node selectors in the Kubernetes documentation.
In the Helm chart, you use the following settings to configure the tolerations and node selectors.
Here are the settings for node selectors:
Here are the settings for tolerations:
Create an account
Start your Ephemeral account.
Start a database
Start a new Ephemeral database.
Create a user snapshot
Create a user snapshot of an Ephemeral database.
Connect to a database
View connection details for an Ephemeral database
Monitor usage
Track your Ephemeral billed usage across databases
The following diagram shows how data and requests flow within a self-hosted instance of Tonic Ephemeral. Ephemeral can be deployed on AWS, Azure, or Google Cloud Platform (GCP):
The following diagram shows how data and requests flow within Ephemeral Cloud. On Ephemeral Cloud, all connections to Ephemeral databases go through an SSH Bastion.
The Ephemeral application database is a PostgreSQL database that stores the Ephemeral database, snapshot, and application configuration, including:
Ephemeral users
Registry location
Disk space alert threshold
Database configuration, including:
Name and description
Database type
Required resources
Expiration configuration
Associated auto snapshots
Activity history
User snapshots list
The container registry stores any data volumes that you use to create databases.
The Ephemeral web server runs the Ephemeral user interface, and processes requests and calls from the Ephemeral API.
Ephemeral databases are stored in either:
For AWS, in Amazon EBS
For Azure, in Azure Disk Storage
For GCP, in Persistent Disk
A self-hosted instance can enable either direct connections to databases through DNS, or connections through an SSH Bastion.
On Ephemeral Cloud, all database connections must go through an SSH Bastion.
When you start a new Ephemeral database, you can select a user snapshot as the basis for the database.
You can also start a database directly from a user snapshot in the Snapshots list.
To create a new database from a snapshot on the Snapshots page:
Either:
On the Snapshots page, click the create database icon for the snapshot.
On the snapshot details panel, click Start database from snapshot.
On the database creation panel, configure:
Database name and description
Click Start.
useNodeSelector
Whether to use a node selector to manage node access.
The default is false
.
To enable the node selector, set this to true
.
nodeSelectorKey
The node selector key.
appWorkloadLabel
The label to apply to the pod that runs the Ephemeral API.
bastionWorkloadLabel
The label to apply to the pod that manages SSH access to Ephemeral databases.
databaseWorkloadLabel
The label to apply to the pod that Ephemeral creates for databases.
volumeExtractorWorkloadLabel
The label to apply to the pod that prepares a registry artifact to be used to start a new Ephemeral database.
dataPackerWorkloadLabel
The label to apply to the pod that processes the API option to create a snapshot when a database expires.
useTolerations
Whether to use tolerations to manage node access.
The default is false
.
To enable tolerations, set this to true
.
tolerationsKey
The tolerations key.
tolerationsOperatorProperty
The tolerations operator.
appTolerationsValue
The tolerations value to apply to the pod that runs the Ephemeral API.
bastionTolerationsValue
The tolerations value to apply to the pod that manages SSH access to Ephemeral databases.
databaseTolerationsValue
The tolerations value to apply to the pods that Ephemeral creates for databases.
volumeExtractorTolerationsValue
The tolerations value to apply to the pod that prepares a registry artifact to be used to start a new Ephemeral database.
dataPackerTolerationsValue
The tolerations value to apply to the pod that processes the API option to create a snapshot when a database expires.
tolerationsEffect
The tolerations effect.
Use these instructions to set up Google as your SSO provider for Tonic Ephemeral.
Click Create credentials, located near the top.
Select OAuth client ID.
Select Web application as the application type.
Choose a name.
Under Authorized redirect URIs, add the URL of the Ephemeral server with the endpoint /sso/callback
.
For example, for a local Ephemeral server at http://localhost:3000, you would need to set the redirect URL tohttp://localhost:3000/sso/callback
.
Also note that internal URLs might not work.
On the confirmation page, note the client ID and client secret. You will need to provide them to Ephemeral.
After you complete the configuration in Google, you uncomment and configure the following values in the Ephemeral Helm chart.
The client ID
The client secret
In values.yaml:
Use these instructions to set up Okta as your SSO provider for Tonic Structural.
You complete the following configuration steps within Okta:
Create a new application. Choose the OIDC - OpenId Connect method with the Single-Page Application option.
Click Next, then fill out the fields with the values below:
App integration name: The name to use for the Ephemeral application. For example, Ephemeral
, Ephemeral-Prod
, Ephemeral-Dev
.
Grant type: Implicit (hybrid)
Sign-in redirect URIs: <base-url>/sso/callback/okta
Sign-out redirect URIs: <base-url>/sso/logout
Base URIs: The URL to your Ephemeral instance
Controlled access: Configure as needed to limit Ephemeral access to the appropriate users
After saving the above, navigate to the General Settings page for the application and make the following changes:
Grant type: Check Implicit (Hybrid) and Allow ID Token with implicit grant type.
Login initiated by: Either Okta or App
Application visibility: Check Display application icon to users
Initiate login URI: <base-url>
After you complete the configuration in Okta, uncomment and configure the following values in the Ephemeral helm chart.
In values.yaml:
Custom images are only supported on self-hosted instances of Ephemeral.
You can only create custom images for Oracle.
Ephemeral uses images to create an empty database. Ephemeral provides base images for different versions of its supported databases.
For Oracle, you can add custom images to use to create Ephemeral databases.
You manage custom images from the Custom Images list on the User Settings page. To display the User Settings page:
Click your user image at the top right of Ephemeral.
In the menu, click User Settings.
On Ephemeral Cloud, users who have a corporate Google email address can use the built-in Google single sign-on (SSO) configuration to sign up for and log into Ephemeral.
You can also enable SSO on a self-hosted instance. Tonic Ephemeral respects the access control policy of your single sign-on (SSO) provider. To access Ephemeral, users must be granted access to the Ephemeral application within your SSO provider.
To enable SSO on your self-hosted instance, you first complete the required configuration in the SSO provider. You then configure Ephemeral to connect to it.
After you enable SSO, users can use SSO to create an account in Ephemeral.
To only allow SSO authentication, in your Helm chart, set sso.isRequired
to true
.
For self-hosted instances, Ephemeral supports the following SSO providers:
For Tonic Ephemeral, the configured container registry is used to store data volumes that are used to create databases. These can include data volumes that Tonic Structural creates when it writes output to a container repository.
If you change the registry location, then when you start a new database, you won't have access to volumes that were in the original location. You must manually move the volumes to the new location.
If you only update the credentials, then you must make sure that the new credentials have the required permissions for the existing repositories.
To change the registry location:
In the Ephemeral heading, click Registry.
In the Registry URL field, provide the URL to the registry location.
Provide the credentials for Ephemeral to use to read from and write to the registry. On a self-hosted instance, you can either provide a username and access token, or provide a secret.
On Ephemeral Cloud, you must provide a username and access token.
A self-hosted instance of Tonic Ephemeral has the following requirements.
The Ephemeral application database stores information about Ephemeral objects and users.
For the application database, you must provide a PostgreSQL database with the following characteristics:
The Kubernetes cluster where you deploy Ephemeral has the following requirements:
Runtime is either:
AWS EKS - For this option, AWS EBS CSI driver must be installed and configured. For details, go to the AWS EBS documentation.
Azure AKS - For this option, Azure Disk CSI driver must be installed and configured. For details, go to the Azure Disk documentation.
Google Cloud Platform (GCP) Google Kubernetes Engine (GKE) - For this option, the Google Compute Engine persistent disk CSI driver must be installed and configured. For details, go to the GKE documentation.
Volume Snapshot CRDs and the Volume Snapshot controller are installed and configured. For installation instructions, go to the kubernetes-csi documentation. For snapshotter documentation, go to the external-snapshotter GitHub repository.
external-dns is installed and configured. For details, go to the external-dns GitHub repository.
(Optional) Kubernetes autoscaler is installed and configured. For details, go to the autoscaler GitHub repository.
An Oracle custom image includes the following configuration.
In the Image Reference field, provide the image reference for this image.
The image reference value must follow the Open Container Specification addressable image format:
[<registry>/][<project>/]<image>[:<tag>|@<digest>]
The image reference is a path that identifies the image and where it is located.
In the Container Data Mount Path field, provide the path in the container to the database's data directory.
These settings provide connection information for databases that are created from the image:
Port - The port to use for connections to a database created from this image.
Data directory group - The Linux group identifier to mount the data directory of the database as.
Database username - The admin user for the database that is created by this image. Ephemeral uses this to create a non-admin user and a pluggable database, and to interact with the database in general.
Password environment variable - The name of the environment variable to set on the database container, to configure the password for the admin user, which is defined in the Database username field.
You specify whether the image automatically creates an initial database on startup, and provide the name of the initial database. If the image does not automatically create an initial database on startup, then Ephemeral uses the provided name to create the initial database.
By default, Ephemeral assumes that the image creates an initial database on startup, and Contains initial database is toggled to the on position. If the image does not create an initial database on startup, then toggle Contains initial database to the off position.
In the Initial database name field, provide the name of the initial database. If the image already contains an initial database, then this name must match the name of that database. If the image does not contain an initial database, then Ephemeral uses the name to create the initial database.
In the Minimum storage field, enter the minimum storage in GB that is required for databases that are created from this image.
When you start a database from this image, Ephemeral automatically generates a password for the database user.
In the Max password length field, type the maximum length for the password.
In the Oracle DBA Privilege field, provide the name of the database role that the database user assumes when it connects to the database.
In the Oracle Schema field, provide the name of the schema for the database.
You can also provide values for any additional environment variables.
Under Custom Environment Variables, to add a variable:
Click Add custom environment variable.
In the Name field for the variable, type the name of the variable.
In the Value field, type the value for the variable
To remove an environment variable, click its delete icon.
Users on both Ephemeral Cloud and self-hosted instances belong to an Ephemeral organization.
On Ephemeral Cloud, users who have a corporate Google email address can use our built-in Google single sign-on (SSO) configuration to sign up for and log into Ephemeral.
Self-hosted instances can also set up SSO to manage access to Ephemeral.
To create a custom image:
On the User Settings page, under Custom Images, click Create custom image.
In the Name field, provide a name for the image.
Under Select database type, click the database to create the image for. You can only create images for Oracle.
Click Create.
To edit an existing custom image:
Under Custom Images, click the edit icon for the image.
Click Save.
To delete a custom image, under Custom Images, click the delete icon for the image.
To display the disk storage summary, on the Usage Metrics page, click Disk Storage Settings.
The Disk Storage Settings panel displays the current amount of storage usage that your databases are using.
The panel includes:
The total data storage currently in use. If there is a disk storage alert threshold, then the storage is also displayed relative to the threshold value.
A color-coded visualization to indicate the proportion of data storage used by databases, auto snapshots, and user snapshots.
By default, Ephemeral has a disk storage alert threshold of 100 gigabytes. You can change the alert threshold, or disable the threshold.
If the threshold is enabled, then when the databases and snapshots use more than the threshold, Ephemeral displays a warning.
To configure a disk storage alert threshold:
Toggle Enable storage threshold alert to the on position.
In the field, type the limit in gigabytes.
To disable the disk storage alert, toggle Enable storage threshold alert to the off position.
Provide the configuration details. For a list of the configuration fields, go to .
Update the configuration. You cannot change the database type.
Version:
PostgreSQL 16+
Database user:
Must have permission to:
Create a database
Create tables
Insert
Select
Manage custom images
Create, edit, and delete a custom image
Oracle image configuration
Configuration fields for an Oracle custom image
Configure Google SSO for access to Ephemeral
Okta
Configure Okta for access to Ephemeral
System requirements
Requirements for the application database and Kubernetes cluster.
Deploy Ephemeral with Helm
Use the Ephemeral Helm chart to install or upgrade Ephemeral.
Manage Ephemeral users
How Ephemeral users are assigned to organizations
Enable SSO
Use SSO to manage Ephemeral access on a self-hosted instance
For an existing Tonic Ephemeral database, to update the configuration, use:
PUT /api/database/{databaseId}
For an existing database, you can change the expiration configuration.
To reset a database, use:
POST /api/database/{databaseId}/reset
The request includes whether to reset to an empty database or to a specific snapshot, and identifies the snapshot.
To deactivate an active database, use:
POST /api/database/{databaseId}/deactivate
To reactivate an inactive database based on the most recent snapshot, use:
POST /api/database/{databaseId}/reactivate
To delete a database, use:
DELETE /api/database/{id}
You can use the Tonic Ephemeral API to perform Ephemeral tasks.
Before you can call the Ephemeral API, you must create an Ephemeral API key for your account. For details, go to #ephemeral-account-api-tokens.
When you call the Ephemeral API, you must add an authorization header that has the following value:
Apikey <api-key-value>
For Ephemeral, there is generated Swagger documentation that provides details about the API endpoints and models.
The generated API documentation is available at https://ephemeral.tonic.ai/swagger/index.html.
Tonic Ephemeral uses the registry location and access credentials to store data volumes that you can use to create Ephemeral databases.
To set the initial registry configuration, use:
POST /api/registry
The request body contains the configuration, which includes the URL, the authentication type, and the credentials for the specified authentication type.
To get the current registry configuration, use:
GET /api/registry
The response includes the registry identifier, which you need to use to update the current registry configuration.
To update the registry configuration, use:
PUT /api/registry/{registryId}
You can configure how much Ephemeral storage is used before Ephemeral displays an alert. You can also configure whether to automatically delete snapshots after a specified period of time.
To get the current settings, use:
​​GET /api/organization/disk-storage-settings
To change the current storage alert threshold and snapshot deletion configuration, use:
PUT /api/organization/disk-storage-settings
To retrieve a list of Ephemeral databases, use:
GET /api/database
You can optionally provide query parameters to filter the list based on the database name, database type, and database status.
The response contains the list of databases. For each database, the response includes:
Database identifier
Database status
Database configuration
Connection information
List of snapshots
To get detailed information about an Ephemeral database, use:
GET /api/database/{id}
The response provides details about the specified database, including:
Database identifier
Database status
Database configuration
Connection information
List of snapshots
From Tonic Ephemeral, you can track your organization's Ephemeral usage across a specified time period.
You are charged for your Ephemeral usage based on database billing units.
For Ephemeral Cloud, a unit is equal to one eighth of a vCPU running for an hour. To calculate the number of database billing units for a database:
Database billing units = <vCPUs> x <Active hours> x 8
For example, for a database that is configured with .5 vCPU and that runs for 3 hours:
.5 x 3 x 8 = 12 database billing units
For self-hosted instances of Ephemeral, where the databases run on the customer's own equipment, a database billing unit is equivalent to an hour of database activity.
Database billing units = <Active hours>
For example, for a database that runs for 3 hours, the customer is charged for 3 database billing units.
In the Ephemeral navigation bar, the usage summary displays the number of database billing units for your organization during the current calendar month.
For example, if the current date is June 15, then the usage summary displays the number of database billing units from June 1 to June 15.
The usage metrics are updated once every 24 hours. The Usage Metrics page indicates when the metrics were most recently updated.
The displayed metrics do not include activity that occurred since the most recent calculation. For example, suppose that the metrics were most recently calculated 10 hours ago. In that case, the Usage Metrics page does not include any activity from the previous 10 hours, including new databases.
To display the Usage Metrics page, click the usage summary.
The Usage Metrics page includes:
The time frame selector
Summary metrics for the database billing units and databases activated
A list of databases that were active at any time during the selected time frame
By default, the Usage Metrics page displays the metrics for the current calendar month.
You can specify the time period to display the metrics for.
To set the time period, select the start and end dates.
The left side of the Usage Metrics page contains summary metrics for the selected time period.
For the selected time period, the Database Billing Units panel displays:
The total number of database billing units
The average number of database billing units for each database
For the selected time period, the Databases Activated panel displays:
The number of databases that were activated
The average number databases that were activated each day
For the selected time period, the database list displays the list of databases that accrued database billing units.
You can filter the list by the database name.
For each database, the list includes:
Database name, hostname, and port
Database billing units for the database for the selected time period
The configured resources, including:
vCPUs
RAM
Allocated storage
The number of database billing units that the database accrues each hour while it runs
The number of hours that the database was active during the selected time period
To save disk space, you can configure Tonic Ephemeral to automatically delete both user snapshots and auto snapshots. There are separate settings for the different snapshot types.
By default:
Auto snapshots are deleted automatically after 7 days.
User snapshots are deleted automatically after 30 days.
You configure automatic deletion from the Usage Metrics page. To configure the automatic deletion:
In the Ephemeral heading, click the usage summary.
On the Usage Metrics page, click Disk Storage Settings. The Auto delete system snapshots after setting controls whether and when to automatically delete auto snapshots. The Auto delete user snapshots after setting controls whether and when to automatically delete user snapshots.
For each setting:
To enable automatic deletion of the snapshots, toggle the setting to the on position. In the field, specify the number of days after which to delete the snapshots.
To disable automatic deletion, toggle the setting to the off position.
Click Save.
To get the current list of snapshots for your Tonic Ephemeral databases, use:
GET /api/database/volume-snapshots
The response contains the list of snapshots, with detailed information about each snapshot.
You can create a user snapshot to preserve a milestone that you might want to use later or be able to return to.
To create a user snapshot of a database, use:
POST /api/database/{databaseId}/volume-snapshots
The request includes the snapshot name and description.
You can change the name and description of a user snapshot.
To update a user snapshot, use:
PUT /api/database/volume-snapshots/{volumeSnapshotId}
The request includes the updated name and description.
To delete a snapshot, use:
DELETE /api/database/volume-snapshots/{volumeSnapshotId}
Every Tonic Ephemeral database requires an associated base image, used to run and load the data. Ephemeral provides empty base images for PostgreSQL and MySQL.
When you start a new database, you must provide the identifier of the base image. To get the list of available base images, use:
GET /api/database/images
The response includes the image identifier and the associated database type.
When you start a new database, including when you copy an existing database, you specify the required compute resources. The compute resource includes the number of vCPUs and the amount of RAM.
To specify the compute resources, you provide the identifier of the resource group. To get the list of available resource groups, use:
GET /api/database/resource-groups
For each available resource group, the response includes the identifier, name, number of vCPUs, and the amount of RAM.
To start a completely new database, use:
POST /api/database
The request includes:
Database name and description
The base image, volume, or user snapshot
Expiration configuration
Storage size
Resource group identifier
The response contains the database identifier.
You can also start a database by cloning an existing database. Specifically, you clone the new database from a snapshot of the original database.
To clone a database, use:
POST /api/database/clone/{volumeSnapshotId}
The request includes:
The required disk storage allocation for the new database
The resource group identifier
The expiration configuration for the new database
The response provides detailed information about the new database.
You can configure Tonic Ephemeral to automatically delete user snapshots after a specified period of time. For details, go to Configuring automatic deletion of snapshots.
From the Snapshots page, you can also delete individual snapshots at any time.
Note that when you delete a user snapshot, it does not affect any active databases. If you delete a user snapshot that was used to create a database, it can increase the time required to reactivate or to copy the database.
From the Snapshots list, to delete an individual snapshot:
Click the delete icon for the snapshot.
On the confirmation panel, check Yes, I want to delete this snapshot.
Click Delete.