Files
appwrite/app/config/collections/projects.php
T

1629 lines
50 KiB
PHP

<?php
use Utopia\Database\Attribute;
use Utopia\Database\Database;
use Utopia\Database\Index;
use Utopia\Query\Schema\ColumnType;
use Utopia\Query\Schema\IndexType;
return [
'databases' => [
'$collection' => '_metadata',
'$id' => 'databases',
'name' => 'Databases',
'attributes' => [
new Attribute(
key: 'name',
type: ColumnType::String,
size: 256,
required: true,
),
new Attribute(
key: 'enabled',
type: ColumnType::Boolean,
default: true,
),
new Attribute(
key: 'search',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'originalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'type',
type: ColumnType::String,
size: 128,
default: 'tablesdb',
),
new Attribute(
key: 'database',
type: ColumnType::String,
size: 128,
),
],
'indexes' => [
new Index(
key: '_fulltext_search',
type: IndexType::Fulltext,
attributes: ['search'],
),
new Index(
key: '_key_name',
type: IndexType::Key,
attributes: ['name'],
lengths: [256],
orders: ['ASC'],
),
],
],
'attributes' => [
'$collection' => '_metadata',
'$id' => 'attributes',
'name' => 'Attributes',
'attributes' => [
new Attribute(
key: 'databaseInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'databaseId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
signed: false,
),
new Attribute(
key: 'collectionInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'collectionId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'key',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'type',
type: ColumnType::String,
size: 256,
),
new Attribute(
key: 'status',
type: ColumnType::String,
size: 16,
),
new Attribute(
key: 'error',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'size',
type: ColumnType::Integer,
),
new Attribute(
key: 'required',
type: ColumnType::Boolean,
),
new Attribute(
key: 'default',
type: ColumnType::String,
size: 16384,
filters: ['casting'],
),
new Attribute(
key: 'signed',
type: ColumnType::Boolean,
),
new Attribute(
key: 'array',
type: ColumnType::Boolean,
),
new Attribute(
key: 'format',
type: ColumnType::String,
size: 64,
),
new Attribute(
key: 'formatOptions',
type: ColumnType::String,
size: 16384,
default: (object) array(
),
filters: ['json', 'range', 'enum'],
),
new Attribute(
key: 'filters',
type: ColumnType::String,
size: 64,
array: true,
),
new Attribute(
key: 'options',
type: ColumnType::String,
size: 16384,
signed: false,
filters: ['json'],
),
],
'indexes' => [
new Index(
key: '_key_db_collection',
type: IndexType::Key,
attributes: ['databaseInternalId', 'collectionInternalId'],
lengths: [255, 255],
orders: ['ASC', 'ASC'],
),
],
],
'indexes' => [
'$collection' => '_metadata',
'$id' => 'indexes',
'name' => 'Indexes',
'attributes' => [
new Attribute(
key: 'databaseInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'databaseId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
signed: false,
),
new Attribute(
key: 'collectionInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'collectionId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'key',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'type',
type: ColumnType::String,
size: 16,
),
new Attribute(
key: 'status',
type: ColumnType::String,
size: 16,
),
new Attribute(
key: 'error',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'attributes',
type: ColumnType::String,
size: Database::LENGTH_KEY,
array: true,
),
new Attribute(
key: 'lengths',
type: ColumnType::Integer,
array: true,
),
new Attribute(
key: 'orders',
type: ColumnType::String,
size: 4,
array: true,
),
],
'indexes' => [
new Index(
key: '_key_db_collection',
type: IndexType::Key,
attributes: ['databaseInternalId', 'collectionInternalId'],
lengths: [255, 255],
orders: ['ASC', 'ASC'],
),
],
],
'functions' => [
'$collection' => '_metadata',
'$id' => 'functions',
'name' => 'Functions',
'attributes' => [
new Attribute(
key: 'execute',
type: ColumnType::String,
size: 128,
array: true,
),
new Attribute(
key: 'name',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'enabled',
type: ColumnType::Boolean,
required: true,
),
new Attribute(
key: 'live',
type: ColumnType::Boolean,
required: true,
),
new Attribute(
key: 'installationId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'installationInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRepositoryId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'repositoryId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'repositoryInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerBranch',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRootDirectory',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerSilentMode',
type: ColumnType::Boolean,
default: false,
),
new Attribute(
key: 'logging',
type: ColumnType::Boolean,
required: true,
),
new Attribute(
key: 'runtime',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'deploymentRetention',
type: ColumnType::Integer,
default: 0,
),
new Attribute(
key: 'deploymentInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'deploymentId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'deploymentCreatedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'latestDeploymentId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'latestDeploymentInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'latestDeploymentCreatedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'latestDeploymentStatus',
type: ColumnType::String,
size: 16,
default: '',
),
new Attribute(
key: 'vars',
type: ColumnType::String,
size: 16384,
filters: ['subQueryVariables'],
),
new Attribute(
key: 'varsProject',
type: ColumnType::String,
size: 16384,
filters: ['subQueryProjectVariables'],
),
new Attribute(
key: 'events',
type: ColumnType::String,
size: 256,
array: true,
),
new Attribute(
key: 'scheduleInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'scheduleId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'schedule',
type: ColumnType::String,
size: 128,
),
new Attribute(
key: 'timeout',
type: ColumnType::Integer,
),
new Attribute(
key: 'search',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'version',
type: ColumnType::String,
size: 8,
default: 'v5',
),
new Attribute(
key: 'entrypoint',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'commands',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'startCommand',
type: ColumnType::String,
size: 20000,
),
new Attribute(
key: 'specification',
type: ColumnType::String,
size: 128,
default: 's-1vcpu-512mb',
signed: false,
),
new Attribute(
key: 'buildSpecification',
type: ColumnType::String,
size: 128,
default: 's-1vcpu-512mb',
signed: false,
),
new Attribute(
key: 'runtimeSpecification',
type: ColumnType::String,
size: 128,
default: 's-1vcpu-512mb',
signed: false,
),
new Attribute(
key: 'scopes',
type: ColumnType::String,
size: Database::LENGTH_KEY,
default: [],
array: true,
),
],
'indexes' => [
new Index(
key: '_key_search',
type: IndexType::Fulltext,
attributes: ['search'],
),
new Index(
key: '_key_name',
type: IndexType::Key,
attributes: ['name'],
lengths: [256],
orders: ['ASC'],
),
new Index(
key: '_key_enabled',
type: IndexType::Key,
attributes: ['enabled'],
orders: ['ASC'],
),
new Index(
key: '_key_installationId',
type: IndexType::Key,
attributes: ['installationId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_installationInternalId',
type: IndexType::Key,
attributes: ['installationInternalId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_providerRepositoryId',
type: IndexType::Key,
attributes: ['providerRepositoryId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_repositoryId',
type: IndexType::Key,
attributes: ['repositoryId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_repositoryInternalId',
type: IndexType::Key,
attributes: ['repositoryInternalId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_runtime',
type: IndexType::Key,
attributes: ['runtime'],
lengths: [64],
orders: ['ASC'],
),
new Index(
key: '_key_deploymentId',
type: IndexType::Key,
attributes: ['deploymentId'],
orders: ['ASC'],
),
],
],
'sites' => [
'$collection' => '_metadata',
'$id' => 'sites',
'name' => 'Sites',
'attributes' => [
new Attribute(
key: 'name',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'enabled',
type: ColumnType::Boolean,
required: true,
),
new Attribute(
key: 'live',
type: ColumnType::Boolean,
required: true,
),
new Attribute(
key: 'installationId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'installationInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRepositoryId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'repositoryId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'repositoryInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerBranch',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRootDirectory',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerSilentMode',
type: ColumnType::Boolean,
default: false,
),
new Attribute(
key: 'logging',
type: ColumnType::Boolean,
required: true,
),
new Attribute(
key: 'framework',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'outputDirectory',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'buildCommand',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'installCommand',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'startCommand',
type: ColumnType::String,
size: 20000,
),
new Attribute(
key: 'fallbackFile',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'deploymentRetention',
type: ColumnType::Integer,
default: 0,
),
new Attribute(
key: 'deploymentInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'deploymentId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'deploymentCreatedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'deploymentScreenshotLight',
type: ColumnType::String,
size: 32,
signed: false,
),
new Attribute(
key: 'deploymentScreenshotDark',
type: ColumnType::String,
size: 32,
signed: false,
),
new Attribute(
key: 'latestDeploymentId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'latestDeploymentInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'latestDeploymentCreatedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'latestDeploymentStatus',
type: ColumnType::String,
size: 16,
default: '',
),
new Attribute(
key: 'vars',
type: ColumnType::String,
size: 16384,
filters: ['subQueryVariables'],
),
new Attribute(
key: 'varsProject',
type: ColumnType::String,
size: 16384,
filters: ['subQueryProjectVariables'],
),
new Attribute(
key: 'timeout',
type: ColumnType::Integer,
),
new Attribute(
key: 'search',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'specification',
type: ColumnType::String,
size: 128,
default: 's-1vcpu-512mb',
signed: false,
),
new Attribute(
key: 'buildSpecification',
type: ColumnType::String,
size: 128,
default: 's-1vcpu-512mb',
signed: false,
),
new Attribute(
key: 'runtimeSpecification',
type: ColumnType::String,
size: 128,
default: 's-1vcpu-512mb',
signed: false,
),
new Attribute(
key: 'buildRuntime',
type: ColumnType::String,
size: 2048,
required: true,
default: '',
),
new Attribute(
key: 'adapter',
type: ColumnType::String,
size: 16,
default: '',
),
],
'indexes' => [
new Index(
key: '_key_search',
type: IndexType::Fulltext,
attributes: ['search'],
),
new Index(
key: '_key_name',
type: IndexType::Key,
attributes: ['name'],
lengths: [256],
orders: ['ASC'],
),
new Index(
key: '_key_enabled',
type: IndexType::Key,
attributes: ['enabled'],
orders: ['ASC'],
),
new Index(
key: '_key_installationId',
type: IndexType::Key,
attributes: ['installationId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_installationInternalId',
type: IndexType::Key,
attributes: ['installationInternalId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_providerRepositoryId',
type: IndexType::Key,
attributes: ['providerRepositoryId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_repositoryId',
type: IndexType::Key,
attributes: ['repositoryId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_repositoryInternalId',
type: IndexType::Key,
attributes: ['repositoryInternalId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_framework',
type: IndexType::Key,
attributes: ['framework'],
lengths: [64],
orders: ['ASC'],
),
new Index(
key: '_key_deploymentId',
type: IndexType::Key,
attributes: ['deploymentId'],
orders: ['ASC'],
),
],
],
'deployments' => [
'$collection' => '_metadata',
'$id' => 'deployments',
'name' => 'Deployments',
'attributes' => [
new Attribute(
key: 'resourceInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'resourceId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'resourceType',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'entrypoint',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'buildCommands',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'startCommand',
type: ColumnType::String,
size: 20000,
),
new Attribute(
key: 'buildOutput',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'sourcePath',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'type',
type: ColumnType::String,
size: 2048,
required: true,
),
new Attribute(
key: 'installationId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'installationInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRepositoryId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'repositoryId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'repositoryInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRepositoryName',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRepositoryOwner',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRepositoryUrl',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerCommitHash',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerCommitAuthorUrl',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerCommitAuthor',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerCommitMessage',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerCommitUrl',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerBranch',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerBranchUrl',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerRootDirectory',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'providerCommentId',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'sourceSize',
type: ColumnType::Integer,
size: 8,
signed: false,
),
new Attribute(
key: 'sourceMetadata',
type: ColumnType::String,
size: 16384,
filters: ['json'],
),
new Attribute(
key: 'sourceChunksTotal',
type: ColumnType::Integer,
signed: false,
),
new Attribute(
key: 'sourceChunksUploaded',
type: ColumnType::Integer,
signed: false,
),
new Attribute(
key: 'activate',
type: ColumnType::Boolean,
default: false,
),
new Attribute(
key: 'screenshotLight',
type: ColumnType::String,
size: 32,
signed: false,
),
new Attribute(
key: 'screenshotDark',
type: ColumnType::String,
size: 32,
signed: false,
),
new Attribute(
key: 'buildStartedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'buildEndedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'buildDuration',
type: ColumnType::Integer,
signed: false,
),
new Attribute(
key: 'buildSize',
type: ColumnType::Integer,
size: 8,
signed: false,
),
new Attribute(
key: 'totalSize',
type: ColumnType::Integer,
size: 8,
signed: false,
),
new Attribute(
key: 'status',
type: ColumnType::String,
size: 16,
default: 'waiting',
),
new Attribute(
key: 'buildPath',
type: ColumnType::String,
size: 16384,
default: '',
),
new Attribute(
key: 'buildLogs',
type: ColumnType::String,
size: 1000000,
default: '',
),
new Attribute(
key: 'adapter',
type: ColumnType::String,
size: 16,
default: '',
),
new Attribute(
key: 'fallbackFile',
type: ColumnType::String,
size: 16384,
),
],
'indexes' => [
new Index(
key: '_key_resource',
type: IndexType::Key,
attributes: ['resourceId'],
orders: ['ASC'],
),
new Index(
key: '_key_resource_type',
type: IndexType::Key,
attributes: ['resourceType'],
orders: ['ASC'],
),
new Index(
key: '_key_sourceSize',
type: IndexType::Key,
attributes: ['sourceSize'],
orders: ['ASC'],
),
new Index(
key: '_key_buildSize',
type: IndexType::Key,
attributes: ['buildSize'],
orders: ['ASC'],
),
new Index(
key: '_key_totalSize',
type: IndexType::Key,
attributes: ['totalSize'],
orders: ['ASC'],
),
new Index(
key: '_key_buildDuration',
type: IndexType::Key,
attributes: ['buildDuration'],
orders: ['ASC'],
),
new Index(
key: '_key_activate',
type: IndexType::Key,
attributes: ['activate'],
orders: ['ASC'],
),
new Index(
key: '_key_type',
type: IndexType::Key,
attributes: ['type'],
lengths: [32],
orders: ['ASC'],
),
new Index(
key: '_key_status',
type: IndexType::Key,
attributes: ['status'],
lengths: [16],
orders: ['ASC'],
),
new Index(
key: '_key_resourceId_resourceType',
type: IndexType::Key,
attributes: ['resourceId', 'resourceType'],
),
new Index(
key: '_key_resource_internal_id',
type: IndexType::Key,
attributes: ['resourceInternalId'],
),
],
],
'executions' => [
'$collection' => '_metadata',
'$id' => 'executions',
'name' => 'Executions',
'attributes' => [
new Attribute(
key: 'resourceInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'resourceId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'resourceType',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'deploymentInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'deploymentId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'trigger',
type: ColumnType::String,
size: 128,
),
new Attribute(
key: 'status',
type: ColumnType::String,
size: 128,
),
new Attribute(
key: 'duration',
type: ColumnType::Float,
),
new Attribute(
key: 'errors',
type: ColumnType::String,
size: 1000000,
),
new Attribute(
key: 'logs',
type: ColumnType::String,
size: 1000000,
),
new Attribute(
key: 'requestMethod',
type: ColumnType::String,
size: 128,
),
new Attribute(
key: 'requestPath',
type: ColumnType::String,
size: 2048,
),
new Attribute(
key: 'requestHeaders',
type: ColumnType::String,
size: 16384,
filters: ['json'],
),
new Attribute(
key: 'responseStatusCode',
type: ColumnType::Integer,
),
new Attribute(
key: 'responseHeaders',
type: ColumnType::String,
size: 16384,
filters: ['json'],
),
new Attribute(
key: 'scheduledAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
new Attribute(
key: 'scheduleInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'scheduleId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
],
'indexes' => [
new Index(
key: '_key_resource',
type: IndexType::Key,
attributes: ['resourceInternalId', 'resourceType', 'resourceId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_trigger',
type: IndexType::Key,
attributes: ['trigger'],
lengths: [32],
orders: ['ASC'],
),
new Index(
key: '_key_status',
type: IndexType::Key,
attributes: ['status'],
lengths: [32],
orders: ['ASC'],
),
new Index(
key: '_key_requestMethod',
type: IndexType::Key,
attributes: ['requestMethod'],
lengths: [128],
orders: ['ASC'],
),
new Index(
key: '_key_requestPath',
type: IndexType::Key,
attributes: ['requestPath'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_deployment',
type: IndexType::Key,
attributes: ['deploymentId'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_responseStatusCode',
type: IndexType::Key,
attributes: ['responseStatusCode'],
orders: ['ASC'],
),
new Index(
key: '_key_duration',
type: IndexType::Key,
attributes: ['duration'],
orders: ['ASC'],
),
new Index(
key: '_key_resourceType',
type: IndexType::Key,
attributes: ['resourceType'],
orders: ['ASC'],
),
],
],
'variables' => [
'$collection' => '_metadata',
'$id' => 'variables',
'name' => 'variables',
'attributes' => [
new Attribute(
key: 'resourceType',
type: ColumnType::String,
size: 100,
required: true,
),
new Attribute(
key: 'resourceInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'resourceId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'key',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'value',
type: ColumnType::String,
size: 8192,
required: true,
filters: ['encrypt'],
),
new Attribute(
key: 'secret',
type: ColumnType::Boolean,
default: false,
),
new Attribute(
key: 'search',
type: ColumnType::String,
size: 16384,
),
],
'indexes' => [
new Index(
key: '_key_resourceInternalId',
type: IndexType::Key,
attributes: ['resourceInternalId'],
lengths: [255],
),
new Index(
key: '_key_resourceType',
type: IndexType::Key,
attributes: ['resourceType'],
orders: ['ASC'],
),
new Index(
key: '_key_resourceId_resourceType',
type: IndexType::Key,
attributes: ['resourceId', 'resourceType'],
lengths: [255, 100],
orders: ['ASC', 'ASC'],
),
new Index(
key: '_key_uniqueKey',
type: IndexType::Unique,
attributes: ['resourceId', 'key', 'resourceType'],
lengths: [255, 255, 100],
orders: ['ASC', 'ASC', 'ASC'],
),
new Index(
key: '_key_key',
type: IndexType::Key,
attributes: ['key'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_fulltext_search',
type: IndexType::Fulltext,
attributes: ['search'],
),
new Index(
key: '_key_resource_internal_id_resource_type',
type: IndexType::Key,
attributes: ['resourceInternalId', 'resourceType'],
),
],
],
'migrations' => [
'$collection' => '_metadata',
'$id' => 'migrations',
'name' => 'Migrations',
'attributes' => [
new Attribute(
key: 'status',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'stage',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'source',
type: ColumnType::String,
size: 8192,
required: true,
),
new Attribute(
key: 'destination',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'credentials',
type: ColumnType::String,
size: 65536,
default: [],
filters: ['json', 'encrypt'],
),
new Attribute(
key: 'options',
type: ColumnType::String,
size: 65536,
default: [],
filters: ['json'],
),
new Attribute(
key: 'resources',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
default: [],
array: true,
),
new Attribute(
key: 'statusCounters',
type: ColumnType::String,
size: 3000,
required: true,
filters: ['json'],
),
new Attribute(
key: 'resourceData',
type: ColumnType::String,
size: 131070,
required: true,
filters: ['json'],
),
new Attribute(
key: 'errors',
type: ColumnType::String,
size: 1000000,
required: true,
array: true,
),
new Attribute(
key: 'search',
type: ColumnType::String,
size: 16384,
),
new Attribute(
key: 'resourceId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'resourceType',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
],
'indexes' => [
new Index(
key: '_key_status',
type: IndexType::Key,
attributes: ['status'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_stage',
type: IndexType::Key,
attributes: ['stage'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_source',
type: IndexType::Key,
attributes: ['source'],
lengths: [255],
orders: ['ASC'],
),
new Index(
key: '_key_resource_id',
type: IndexType::Key,
attributes: ['resourceId'],
lengths: [255],
orders: ['DESC'],
),
new Index(
key: '_fulltext_search',
type: IndexType::Fulltext,
attributes: ['search'],
),
],
],
'resourceTokens' => [
'$collection' => '_metadata',
'$id' => 'resourceTokens',
'name' => 'Resource Tokens',
'attributes' => [
new Attribute(
key: 'resourceId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'resourceInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'resourceType',
type: ColumnType::String,
size: 100,
required: true,
),
new Attribute(
key: 'secret',
type: ColumnType::String,
size: 512,
required: true,
filters: ['encrypt'],
),
new Attribute(
key: 'expire',
type: ColumnType::Datetime,
size: Database::LENGTH_KEY,
filters: ['datetime'],
),
new Attribute(
key: 'accessedAt',
type: ColumnType::Datetime,
signed: false,
filters: ['datetime'],
),
],
'indexes' => [
new Index(
key: '_key_expiry_date',
type: IndexType::Key,
attributes: ['expire'],
orders: ['ASC'],
),
new Index(
key: '_key_accessedAt',
type: IndexType::Key,
attributes: ['accessedAt'],
),
new Index(
key: '_key_resourceInternalId_resourceType',
type: IndexType::Key,
attributes: ['resourceInternalId', 'resourceType'],
),
],
],
'transactions' => [
'$collection' => '_metadata',
'$id' => 'transactions',
'name' => 'Transactions',
'attributes' => [
new Attribute(
key: 'status',
type: ColumnType::String,
size: 16,
default: 'pending',
),
new Attribute(
key: 'operations',
type: ColumnType::Integer,
required: true,
default: 0,
signed: false,
),
new Attribute(
key: 'expiresAt',
type: ColumnType::Datetime,
required: true,
filters: ['datetime'],
),
],
'indexes' => [
new Index(
key: '_key_expiresAt',
type: IndexType::Key,
attributes: ['expiresAt'],
orders: ['DESC'],
),
],
],
'transactionLogs' => [
'$collection' => '_metadata',
'$id' => 'transactionLogs',
'name' => 'Transaction Logs',
'attributes' => [
new Attribute(
key: 'transactionInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'databaseInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'collectionInternalId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
required: true,
),
new Attribute(
key: 'documentId',
type: ColumnType::String,
size: Database::LENGTH_KEY,
),
new Attribute(
key: 'action',
type: ColumnType::String,
size: 32,
required: true,
),
new Attribute(
key: 'data',
type: ColumnType::String,
size: 5000000,
required: true,
signed: false,
filters: ['json'],
),
],
'indexes' => [
new Index(
key: '_key_transaction',
type: IndexType::Key,
attributes: ['transactionInternalId'],
),
],
],
];