Skip to content

SaaS

SaaS enables multi-tenant applications with account-aware data isolation.

It provides:

  • account lifecycle and status management,
  • account-aware persistence helpers,
  • UI and remote modules for tenant operations.
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.api</artifactId>
<version>26.4.0</version>
</dependency>

<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.jpa</artifactId>
<version>26.4.0</version>
</dependency>

<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas</artifactId>
<version>26.4.0</version>
</dependency>

<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.ui</artifactId>
<version>26.4.0</version>
</dependency>

<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.remote</artifactId>
<version>26.4.0</version>
</dependency>
implementation 'tools.dynamia.modules:tools.dynamia.modules.saas.api:26.4.0'
implementation 'tools.dynamia.modules:tools.dynamia.modules.saas.jpa:26.4.0'
implementation 'tools.dynamia.modules:tools.dynamia.modules.saas:26.4.0'
implementation 'tools.dynamia.modules:tools.dynamia.modules.saas.ui:26.4.0'
implementation 'tools.dynamia.modules:tools.dynamia.modules.saas.remote:26.4.0'
Terminal window
pnpm add @dynamia-tools/saas-sdk @dynamia-tools/sdk
import { DynamiaClient } from '@dynamia-tools/sdk';
import { SaasApi } from '@dynamia-tools/saas-sdk';
const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: '...' });
const saas = new SaasApi(client.http);
const account = await saas.getAccount('account-uuid');
console.log(account.name, account.status);
import jakarta.persistence.Entity;
import jakarta.validation.constraints.NotNull;
import tools.dynamia.modules.saas.api.AccountAware;
@Entity
public class Person implements AccountAware {
@NotNull
private Long accountId;
@Override
public Long getAccountId() {
return accountId;
}
@Override
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
}