Merge branch 'development'
16
.editorconfig
Normal file
@@ -0,0 +1,16 @@
|
||||
# Specifies editor configuration
|
||||
# http://editorconfig.org/
|
||||
|
||||
root = true
|
||||
|
||||
# General style
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
18
.gitignore
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# Specifies intentionally untracked files to ignore when using Git
|
||||
# https://git-scm.com/docs/gitignore
|
||||
|
||||
# Logs
|
||||
*.log*
|
||||
|
||||
# Node
|
||||
node_modules/
|
||||
|
||||
# NPM / Yarn (use PNPM instead)
|
||||
package-lock.json
|
||||
yarn.lock
|
||||
|
||||
# Mac
|
||||
.DS_Store
|
||||
|
||||
# Data
|
||||
data/data.db
|
||||
8
.prettierrc
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"arrowParens": "always",
|
||||
"bracketSpacing": true,
|
||||
"printWidth": 120,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "es5"
|
||||
}
|
||||
6
README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# PCA Pijac
|
||||
|
||||
## Administrator
|
||||
|
||||
cd backend
|
||||
pnpm directus users create --email <email> --password <password> --role 067808bd-7c13-40be-8c11-9ba654b79465
|
||||
327
backend/.env
Normal file
@@ -0,0 +1,327 @@
|
||||
####################################################################################################
|
||||
###### DIRECTUS ####################################################################################
|
||||
####################################################################################################
|
||||
#
|
||||
# These values set environment variables which modify core settings of Directus.
|
||||
#
|
||||
# Values in square brackets are the default values.
|
||||
#
|
||||
# The following options are not all possible options. For more, see
|
||||
# https://docs.directus.io/self-hosted/config-options/
|
||||
#
|
||||
####################################################################################################
|
||||
####################################################################################################
|
||||
|
||||
### General
|
||||
|
||||
# IP or host the API listens on ["0.0.0.0"]
|
||||
HOST="0.0.0.0"
|
||||
|
||||
# The port Directus will run on [8055]
|
||||
PORT=8055
|
||||
|
||||
# The URL where your API can be reached on the web. It is also used for things like OAuth redirects,
|
||||
# forgot-password emails, and logos that needs to be publicly available on the internet. ["/"]
|
||||
# PUBLIC_URL="http://localhost:8055"
|
||||
PUBLIC_URL="http://0.0.0.0:8055"
|
||||
|
||||
# What level of detail to log. [info]
|
||||
# "fatal", "error", "warn", "info", "debug", "trace", "silent"
|
||||
# LOG_LEVEL="info"
|
||||
|
||||
# Render the logs human readable (pretty) or as JSON (raw), [pretty]
|
||||
# "pretty", "raw"
|
||||
# LOG_STYLE="pretty"
|
||||
|
||||
# Controls the maximum request body size. Accepts number of bytes, or human readable string ["1mb"]
|
||||
# MAX_PAYLOAD_SIZE="1mb"
|
||||
|
||||
# Where to redirect to when navigating to /. Accepts a relative path, absolute URL, or false to disable ["./admin"]
|
||||
# ROOT_REDIRECT="./admin"
|
||||
|
||||
# Whether or not to serve the Admin App under /admin. [true]
|
||||
# SERVE_APP=true
|
||||
|
||||
# Whether or not to enable GraphQL Introspection [true]
|
||||
# GRAPHQL_INTROSPECTION=true
|
||||
|
||||
# The maximum number of items for batch mutations when creating, updating and deleting. ["Infinity"]
|
||||
# MAX_BATCH_MUTATION="Infinity"
|
||||
|
||||
####################################################################################################
|
||||
### Database
|
||||
|
||||
# All DB_* environment variables are passed to the connection configuration of a Knex instance.
|
||||
# Based on your project's needs, you can extend the DB_* environment variables with any config
|
||||
# you need to pass to the database instance.
|
||||
|
||||
DB_CLIENT="sqlite3"
|
||||
DB_FILENAME="../data/data.db"
|
||||
|
||||
## Postgres
|
||||
# DB_CLIENT="pg"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=5432
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="postgres"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
## CockroachDB
|
||||
# DB_CLIENT="cockroachdb"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=26257
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD=""
|
||||
|
||||
## MySQL 8
|
||||
# DB_CLIENT="mysql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
## MariaDB
|
||||
# DB_CLIENT="mysql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
## MS SQL
|
||||
# DB_CLIENT="mssql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=1343
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="sa"
|
||||
# DB_PASSWORD="Test@123"
|
||||
|
||||
## OracleDB
|
||||
# DB_CLIENT="oracledb"
|
||||
# DB_CONNECT_STRING="localhost:1521/XE"
|
||||
# DB_USER="secretsysuser"
|
||||
# DB_PASSWORD="secretpassword"
|
||||
|
||||
## SQLite Example
|
||||
# DB_CLIENT="sqlite3"
|
||||
# DB_FILENAME="./data.db"
|
||||
|
||||
## MySQL 5.7
|
||||
# DB_CLIENT="mysql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
####################################################################################################
|
||||
### Rate Limiting
|
||||
|
||||
# Whether or not to enable rate limiting on the API [false]
|
||||
RATE_LIMITER_ENABLED=false
|
||||
|
||||
# Where to store the rate limiter counts [memory]
|
||||
# memory, redis, memcache
|
||||
RATE_LIMITER_STORE=memory
|
||||
# RATE_LIMITER_REDIS="redis://@127.0.0.1:5105"
|
||||
# RATE_LIMITER_MEMCACHE="localhost:5109"
|
||||
|
||||
# The amount of allowed hits per duration [50]
|
||||
RATE_LIMITER_POINTS=25
|
||||
|
||||
# The time window in seconds in which the hits are counted [1]
|
||||
RATE_LIMITER_DURATION=1
|
||||
|
||||
####################################################################################################
|
||||
### Caching
|
||||
|
||||
# Whether or not caching is enabled. [false]
|
||||
CACHE_ENABLED=false
|
||||
|
||||
# How long the cache is persisted ["5m"]
|
||||
# CACHE_TTL="30m"
|
||||
|
||||
# How to scope the cache data ["directus-cache"]
|
||||
# CACHE_NAMESPACE="directus-cache"
|
||||
|
||||
# Automatically purge the cache on create, update, and delete actions. [false]
|
||||
# CACHE_AUTO_PURGE=true
|
||||
|
||||
# memory | redis | memcache
|
||||
CACHE_STORE=memory
|
||||
|
||||
# How long assets will be cached for in the browser. Sets the max-age value of the Cache-Control header ["30d"]
|
||||
ASSETS_CACHE_TTL="30d"
|
||||
|
||||
# CACHE_REDIS="redis://@127.0.0.1:5105"
|
||||
# CACHE_MEMCACHE="localhost:5109"
|
||||
|
||||
####################################################################################################
|
||||
### File Storage
|
||||
|
||||
# A CSV of storage locations (eg: local,digitalocean,amazon) to use. You can use any names you'd like for these keys ["local"]
|
||||
STORAGE_LOCATIONS="local"
|
||||
STORAGE_LOCAL_DRIVER="local"
|
||||
STORAGE_LOCAL_ROOT="../data/uploads"
|
||||
|
||||
## S3 Example (location name: DigitalOcean)
|
||||
# STORAGE_DIGITALOCEAN_DRIVER="s3"
|
||||
# STORAGE_DIGITALOCEAN_KEY="abcdef"
|
||||
# STORAGE_DIGITALOCEAN_SECRET="ghijkl"
|
||||
# STORAGE_DIGITALOCEAN_ENDPOINT="https://ams3.digitaloceanspaces.com"
|
||||
# STORAGE_DIGITALOCEAN_BUCKET="my-files"
|
||||
# STORAGE_DIGITALOCEAN_REGION="ams3"
|
||||
|
||||
## Google Cloud Storage Example (location name: Google)
|
||||
# STORAGE_GOOGLE_DRIVER="gcs"
|
||||
# STORAGE_GOOGLE_KEY_FILENAME="abcdef"
|
||||
# STORAGE_GOOGLE_BUCKET="my-files"
|
||||
|
||||
## A comma-separated list of metadata keys to collect during file upload. Use * for all
|
||||
# Extracting all metadata might cause memory issues when the file has an unusually large set of metadata
|
||||
# [ifd0.Make,ifd0.Model,exif.FNumber,exif.ExposureTime,exif.FocalLength,exif.ISO]
|
||||
# FILE_METADATA_ALLOW_LIST=
|
||||
|
||||
####################################################################################################
|
||||
### Security
|
||||
|
||||
# Unique identifier for the project
|
||||
# KEY="xxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx"
|
||||
KEY="78457793-f4ea-4057-a9ae-87d0f6d32cc8"
|
||||
|
||||
# Secret string for the project
|
||||
# SECRET="abcdef"
|
||||
SECRET="cJweH2dRpkM515hQJZSR64jiYCb6QJrZ"
|
||||
|
||||
# The duration that the access token is valid ["15m"]
|
||||
ACCESS_TOKEN_TTL="15m"
|
||||
|
||||
# The duration that the refresh token is valid, and also how long users stay logged-in to the App ["7d"]
|
||||
REFRESH_TOKEN_TTL="7d"
|
||||
|
||||
# Whether or not to use a secure cookie for the refresh token in cookie mode [false]
|
||||
REFRESH_TOKEN_COOKIE_SECURE=false
|
||||
|
||||
# Value for sameSite in the refresh token cookie when in cookie mode ["lax"]
|
||||
REFRESH_TOKEN_COOKIE_SAME_SITE="lax"
|
||||
|
||||
# Name of refresh token cookie ["directus_refresh_token"]
|
||||
REFRESH_TOKEN_COOKIE_NAME="directus_refresh_token"
|
||||
|
||||
# Which domain to use for the refresh cookie. Useful for development mode.
|
||||
# REFRESH_TOKEN_COOKIE_DOMAIN
|
||||
|
||||
# The duration in milliseconds that a login request will be stalled for,
|
||||
# and it should be greater than the time taken for a login request with an invalid password [500]
|
||||
# LOGIN_STALL_TIME=500
|
||||
|
||||
# Whether or not to enable the CORS headers [false]
|
||||
CORS_ENABLED=true
|
||||
|
||||
# Value for the Access-Control-Allow-Origin header. Use true to match the Origin header, or provide a domain or a CSV of domains for specific access [false]
|
||||
CORS_ORIGIN=true
|
||||
|
||||
# Value for the Access-Control-Allow-Methods header [GET,POST,PATCH,DELETE]
|
||||
CORS_METHODS=GET,POST,PATCH,DELETE
|
||||
|
||||
# Value for the Access-Control-Allow-Headers header [Content-Type,Authorization]
|
||||
CORS_ALLOWED_HEADERS=Content-Type,Authorization
|
||||
|
||||
# Value for the Access-Control-Expose-Headers header [Content-Range]
|
||||
CORS_EXPOSED_HEADERS=Content-Range
|
||||
|
||||
# Whether or not to send the Access-Control-Allow-Credentials header [true]
|
||||
CORS_CREDENTIALS=true
|
||||
|
||||
# Value for the Access-Control-Max-Age header [18000]
|
||||
CORS_MAX_AGE=18000
|
||||
|
||||
####################################################################################################
|
||||
### Argon2
|
||||
|
||||
# How much memory to use when generating hashes, in KiB [4096]
|
||||
# HASH_MEMORY_COST=81920
|
||||
|
||||
# The length of the hash function output in bytes [32]
|
||||
# HASH_HASH_LENGTH=32
|
||||
|
||||
# The amount of passes (iterations) used by the hash function. It increases hash strength at the cost of time required to compute [3]
|
||||
# HASH_TIME_COST=10
|
||||
|
||||
# The amount of threads to compute the hash on. Each thread has a memory pool with HASH_MEMORY_COST size [1]
|
||||
# HASH_PARALLELISM=2
|
||||
|
||||
# The variant of the hash function (0: argon2d, 1: argon2i, or 2: argon2id) [2]
|
||||
# HASH_TYPE=2
|
||||
|
||||
# An extra and optional non-secret value. The value will be included B64 encoded in the parameters portion of the digest []
|
||||
# HASH_ASSOCIATED_DATA=foo
|
||||
|
||||
####################################################################################################
|
||||
### Auth Providers
|
||||
|
||||
# A comma-separated list of auth providers []
|
||||
AUTH_PROVIDERS=""
|
||||
# AUTH_PROVIDERS="github"
|
||||
|
||||
# AUTH_GITHUB_DRIVER="oauth2"
|
||||
# AUTH_GITHUB_CLIENT_ID="73e...4b"
|
||||
# AUTH_GITHUB_CLIENT_SECRET="b9...98"
|
||||
# AUTH_GITHUB_AUTHORIZE_URL="https://github.com/login/oauth/authorize"
|
||||
# AUTH_GITHUB_ACCESS_URL="https://github.com/login/oauth/access_token"
|
||||
# AUTH_GITHUB_PROFILE_URL="https://api.github.com/user"
|
||||
# AUTH_GITHUB_ALLOW_PUBLIC_REGISTRATION=true
|
||||
# AUTH_GITHUB_DEFAULT_ROLE_ID="82424427-c9d4-4289-8bc5-ed1bf8422c90"
|
||||
# AUTH_GITHUB_ICON="github"
|
||||
# AUTH_GITHUB_LABEL="GitHub"
|
||||
# AUTH_GITHUB_EMAIL_KEY="email"
|
||||
# AUTH_GITHUB_IDENTIFIER_KEY="login"
|
||||
|
||||
####################################################################################################
|
||||
### Extensions
|
||||
|
||||
# Path to your local extensions folder ["./extensions"]
|
||||
EXTENSIONS_PATH="./extensions"
|
||||
|
||||
# Automatically reload extensions when they have changed [false]
|
||||
EXTENSIONS_AUTO_RELOAD=false
|
||||
|
||||
####################################################################################################
|
||||
### Email
|
||||
|
||||
# Email address from which emails are sent ["no-reply@directus.io"]
|
||||
EMAIL_FROM="no-reply@directus.io"
|
||||
|
||||
# What to use to send emails. One of
|
||||
# sendmail, smtp, mailgun, sendgrid, ses.
|
||||
EMAIL_TRANSPORT="sendmail"
|
||||
EMAIL_SENDMAIL_NEW_LINE="unix"
|
||||
EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
|
||||
|
||||
## Email (Sendmail Transport)
|
||||
|
||||
# What new line style to use in sendmail ["unix"]
|
||||
# EMAIL_SENDMAIL_NEW_LINE="unix"
|
||||
|
||||
# Path to your sendmail executable ["/usr/sbin/sendmail"]
|
||||
# EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
|
||||
|
||||
## Email (SMTP Transport)
|
||||
# EMAIL_SMTP_HOST="localhost"
|
||||
|
||||
# Use SMTP pooling
|
||||
# EMAIL_SMTP_POOL=true
|
||||
# EMAIL_SMTP_PORT=465
|
||||
# EMAIL_SMTP_SECURE=false # Use TLS
|
||||
# EMAIL_SMTP_IGNORE_TLS=false
|
||||
# EMAIL_SMTP_USER="username"
|
||||
# EMAIL_SMTP_PASSWORD="password"
|
||||
|
||||
## Email (Mailgun Transport)
|
||||
# EMAIL_MAILGUN_API_KEY="key-1234123412341234"
|
||||
# EMAIL_MAILGUN_DOMAIN="a domain name from https://app.mailgun.com/app/sending/domains"
|
||||
|
||||
## Email (SendGrid Transport)
|
||||
# EMAIL_SENDGRID_API_KEY="key-1234123412341234"
|
||||
327
backend/.env.production
Normal file
@@ -0,0 +1,327 @@
|
||||
####################################################################################################
|
||||
###### DIRECTUS ####################################################################################
|
||||
####################################################################################################
|
||||
#
|
||||
# These values set environment variables which modify core settings of Directus.
|
||||
#
|
||||
# Values in square brackets are the default values.
|
||||
#
|
||||
# The following options are not all possible options. For more, see
|
||||
# https://docs.directus.io/self-hosted/config-options/
|
||||
#
|
||||
####################################################################################################
|
||||
####################################################################################################
|
||||
|
||||
### General
|
||||
|
||||
# IP or host the API listens on ["0.0.0.0"]
|
||||
HOST="0.0.0.0"
|
||||
|
||||
# The port Directus will run on [8055]
|
||||
PORT=8055
|
||||
|
||||
# The URL where your API can be reached on the web. It is also used for things like OAuth redirects,
|
||||
# forgot-password emails, and logos that needs to be publicly available on the internet. ["/"]
|
||||
# PUBLIC_URL="http://localhost:8055"
|
||||
PUBLIC_URL="http://admin.dev.civokram.com"
|
||||
|
||||
# What level of detail to log. [info]
|
||||
# "fatal", "error", "warn", "info", "debug", "trace", "silent"
|
||||
# LOG_LEVEL="info"
|
||||
|
||||
# Render the logs human readable (pretty) or as JSON (raw), [pretty]
|
||||
# "pretty", "raw"
|
||||
# LOG_STYLE="pretty"
|
||||
|
||||
# Controls the maximum request body size. Accepts number of bytes, or human readable string ["1mb"]
|
||||
# MAX_PAYLOAD_SIZE="1mb"
|
||||
|
||||
# Where to redirect to when navigating to /. Accepts a relative path, absolute URL, or false to disable ["./admin"]
|
||||
# ROOT_REDIRECT="./admin"
|
||||
|
||||
# Whether or not to serve the Admin App under /admin. [true]
|
||||
# SERVE_APP=true
|
||||
|
||||
# Whether or not to enable GraphQL Introspection [true]
|
||||
# GRAPHQL_INTROSPECTION=true
|
||||
|
||||
# The maximum number of items for batch mutations when creating, updating and deleting. ["Infinity"]
|
||||
# MAX_BATCH_MUTATION="Infinity"
|
||||
|
||||
####################################################################################################
|
||||
### Database
|
||||
|
||||
# All DB_* environment variables are passed to the connection configuration of a Knex instance.
|
||||
# Based on your project's needs, you can extend the DB_* environment variables with any config
|
||||
# you need to pass to the database instance.
|
||||
|
||||
DB_CLIENT="sqlite3"
|
||||
DB_FILENAME="/data/data.db"
|
||||
|
||||
## Postgres
|
||||
# DB_CLIENT="pg"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=5432
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="postgres"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
## CockroachDB
|
||||
# DB_CLIENT="cockroachdb"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=26257
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD=""
|
||||
|
||||
## MySQL 8
|
||||
# DB_CLIENT="mysql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
## MariaDB
|
||||
# DB_CLIENT="mysql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
## MS SQL
|
||||
# DB_CLIENT="mssql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=1343
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="sa"
|
||||
# DB_PASSWORD="Test@123"
|
||||
|
||||
## OracleDB
|
||||
# DB_CLIENT="oracledb"
|
||||
# DB_CONNECT_STRING="localhost:1521/XE"
|
||||
# DB_USER="secretsysuser"
|
||||
# DB_PASSWORD="secretpassword"
|
||||
|
||||
## SQLite Example
|
||||
# DB_CLIENT="sqlite3"
|
||||
# DB_FILENAME="./data.db"
|
||||
|
||||
## MySQL 5.7
|
||||
# DB_CLIENT="mysql"
|
||||
# DB_HOST="localhost"
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE="directus"
|
||||
# DB_USER="root"
|
||||
# DB_PASSWORD="secret"
|
||||
|
||||
####################################################################################################
|
||||
### Rate Limiting
|
||||
|
||||
# Whether or not to enable rate limiting on the API [false]
|
||||
RATE_LIMITER_ENABLED=false
|
||||
|
||||
# Where to store the rate limiter counts [memory]
|
||||
# memory, redis, memcache
|
||||
RATE_LIMITER_STORE=memory
|
||||
# RATE_LIMITER_REDIS="redis://@127.0.0.1:5105"
|
||||
# RATE_LIMITER_MEMCACHE="localhost:5109"
|
||||
|
||||
# The amount of allowed hits per duration [50]
|
||||
RATE_LIMITER_POINTS=25
|
||||
|
||||
# The time window in seconds in which the hits are counted [1]
|
||||
RATE_LIMITER_DURATION=1
|
||||
|
||||
####################################################################################################
|
||||
### Caching
|
||||
|
||||
# Whether or not caching is enabled. [false]
|
||||
CACHE_ENABLED=false
|
||||
|
||||
# How long the cache is persisted ["5m"]
|
||||
# CACHE_TTL="30m"
|
||||
|
||||
# How to scope the cache data ["directus-cache"]
|
||||
# CACHE_NAMESPACE="directus-cache"
|
||||
|
||||
# Automatically purge the cache on create, update, and delete actions. [false]
|
||||
# CACHE_AUTO_PURGE=true
|
||||
|
||||
# memory | redis | memcache
|
||||
CACHE_STORE=memory
|
||||
|
||||
# How long assets will be cached for in the browser. Sets the max-age value of the Cache-Control header ["30d"]
|
||||
ASSETS_CACHE_TTL="30d"
|
||||
|
||||
# CACHE_REDIS="redis://@127.0.0.1:5105"
|
||||
# CACHE_MEMCACHE="localhost:5109"
|
||||
|
||||
####################################################################################################
|
||||
### File Storage
|
||||
|
||||
# A CSV of storage locations (eg: local,digitalocean,amazon) to use. You can use any names you'd like for these keys ["local"]
|
||||
STORAGE_LOCATIONS="local"
|
||||
STORAGE_LOCAL_DRIVER="local"
|
||||
STORAGE_LOCAL_ROOT="/data/uploads"
|
||||
|
||||
## S3 Example (location name: DigitalOcean)
|
||||
# STORAGE_DIGITALOCEAN_DRIVER="s3"
|
||||
# STORAGE_DIGITALOCEAN_KEY="abcdef"
|
||||
# STORAGE_DIGITALOCEAN_SECRET="ghijkl"
|
||||
# STORAGE_DIGITALOCEAN_ENDPOINT="https://ams3.digitaloceanspaces.com"
|
||||
# STORAGE_DIGITALOCEAN_BUCKET="my-files"
|
||||
# STORAGE_DIGITALOCEAN_REGION="ams3"
|
||||
|
||||
## Google Cloud Storage Example (location name: Google)
|
||||
# STORAGE_GOOGLE_DRIVER="gcs"
|
||||
# STORAGE_GOOGLE_KEY_FILENAME="abcdef"
|
||||
# STORAGE_GOOGLE_BUCKET="my-files"
|
||||
|
||||
## A comma-separated list of metadata keys to collect during file upload. Use * for all
|
||||
# Extracting all metadata might cause memory issues when the file has an unusually large set of metadata
|
||||
# [ifd0.Make,ifd0.Model,exif.FNumber,exif.ExposureTime,exif.FocalLength,exif.ISO]
|
||||
# FILE_METADATA_ALLOW_LIST=
|
||||
|
||||
####################################################################################################
|
||||
### Security
|
||||
|
||||
# Unique identifier for the project
|
||||
# KEY="xxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx"
|
||||
KEY="78457793-f4ea-4057-a9ae-87d0f6d32cc8"
|
||||
|
||||
# Secret string for the project
|
||||
# SECRET="abcdef"
|
||||
SECRET="cJweH2dRpkM515hQJZSR64jiYCb6QJrZ"
|
||||
|
||||
# The duration that the access token is valid ["15m"]
|
||||
ACCESS_TOKEN_TTL="15m"
|
||||
|
||||
# The duration that the refresh token is valid, and also how long users stay logged-in to the App ["7d"]
|
||||
REFRESH_TOKEN_TTL="7d"
|
||||
|
||||
# Whether or not to use a secure cookie for the refresh token in cookie mode [false]
|
||||
REFRESH_TOKEN_COOKIE_SECURE=false
|
||||
|
||||
# Value for sameSite in the refresh token cookie when in cookie mode ["lax"]
|
||||
REFRESH_TOKEN_COOKIE_SAME_SITE="lax"
|
||||
|
||||
# Name of refresh token cookie ["directus_refresh_token"]
|
||||
REFRESH_TOKEN_COOKIE_NAME="directus_refresh_token"
|
||||
|
||||
# Which domain to use for the refresh cookie. Useful for development mode.
|
||||
# REFRESH_TOKEN_COOKIE_DOMAIN
|
||||
|
||||
# The duration in milliseconds that a login request will be stalled for,
|
||||
# and it should be greater than the time taken for a login request with an invalid password [500]
|
||||
# LOGIN_STALL_TIME=500
|
||||
|
||||
# Whether or not to enable the CORS headers [false]
|
||||
CORS_ENABLED=true
|
||||
|
||||
# Value for the Access-Control-Allow-Origin header. Use true to match the Origin header, or provide a domain or a CSV of domains for specific access [false]
|
||||
CORS_ORIGIN=true
|
||||
|
||||
# Value for the Access-Control-Allow-Methods header [GET,POST,PATCH,DELETE]
|
||||
CORS_METHODS=GET,POST,PATCH,DELETE
|
||||
|
||||
# Value for the Access-Control-Allow-Headers header [Content-Type,Authorization]
|
||||
CORS_ALLOWED_HEADERS=Content-Type,Authorization
|
||||
|
||||
# Value for the Access-Control-Expose-Headers header [Content-Range]
|
||||
CORS_EXPOSED_HEADERS=Content-Range
|
||||
|
||||
# Whether or not to send the Access-Control-Allow-Credentials header [true]
|
||||
CORS_CREDENTIALS=true
|
||||
|
||||
# Value for the Access-Control-Max-Age header [18000]
|
||||
CORS_MAX_AGE=18000
|
||||
|
||||
####################################################################################################
|
||||
### Argon2
|
||||
|
||||
# How much memory to use when generating hashes, in KiB [4096]
|
||||
# HASH_MEMORY_COST=81920
|
||||
|
||||
# The length of the hash function output in bytes [32]
|
||||
# HASH_HASH_LENGTH=32
|
||||
|
||||
# The amount of passes (iterations) used by the hash function. It increases hash strength at the cost of time required to compute [3]
|
||||
# HASH_TIME_COST=10
|
||||
|
||||
# The amount of threads to compute the hash on. Each thread has a memory pool with HASH_MEMORY_COST size [1]
|
||||
# HASH_PARALLELISM=2
|
||||
|
||||
# The variant of the hash function (0: argon2d, 1: argon2i, or 2: argon2id) [2]
|
||||
# HASH_TYPE=2
|
||||
|
||||
# An extra and optional non-secret value. The value will be included B64 encoded in the parameters portion of the digest []
|
||||
# HASH_ASSOCIATED_DATA=foo
|
||||
|
||||
####################################################################################################
|
||||
### Auth Providers
|
||||
|
||||
# A comma-separated list of auth providers []
|
||||
AUTH_PROVIDERS=""
|
||||
# AUTH_PROVIDERS="github"
|
||||
|
||||
# AUTH_GITHUB_DRIVER="oauth2"
|
||||
# AUTH_GITHUB_CLIENT_ID="73e...4b"
|
||||
# AUTH_GITHUB_CLIENT_SECRET="b9...98"
|
||||
# AUTH_GITHUB_AUTHORIZE_URL="https://github.com/login/oauth/authorize"
|
||||
# AUTH_GITHUB_ACCESS_URL="https://github.com/login/oauth/access_token"
|
||||
# AUTH_GITHUB_PROFILE_URL="https://api.github.com/user"
|
||||
# AUTH_GITHUB_ALLOW_PUBLIC_REGISTRATION=true
|
||||
# AUTH_GITHUB_DEFAULT_ROLE_ID="82424427-c9d4-4289-8bc5-ed1bf8422c90"
|
||||
# AUTH_GITHUB_ICON="github"
|
||||
# AUTH_GITHUB_LABEL="GitHub"
|
||||
# AUTH_GITHUB_EMAIL_KEY="email"
|
||||
# AUTH_GITHUB_IDENTIFIER_KEY="login"
|
||||
|
||||
####################################################################################################
|
||||
### Extensions
|
||||
|
||||
# Path to your local extensions folder ["./extensions"]
|
||||
EXTENSIONS_PATH="./extensions"
|
||||
|
||||
# Automatically reload extensions when they have changed [false]
|
||||
EXTENSIONS_AUTO_RELOAD=false
|
||||
|
||||
####################################################################################################
|
||||
### Email
|
||||
|
||||
# Email address from which emails are sent ["no-reply@directus.io"]
|
||||
EMAIL_FROM="no-reply@directus.io"
|
||||
|
||||
# What to use to send emails. One of
|
||||
# sendmail, smtp, mailgun, sendgrid, ses.
|
||||
EMAIL_TRANSPORT="sendmail"
|
||||
EMAIL_SENDMAIL_NEW_LINE="unix"
|
||||
EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
|
||||
|
||||
## Email (Sendmail Transport)
|
||||
|
||||
# What new line style to use in sendmail ["unix"]
|
||||
# EMAIL_SENDMAIL_NEW_LINE="unix"
|
||||
|
||||
# Path to your sendmail executable ["/usr/sbin/sendmail"]
|
||||
# EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
|
||||
|
||||
## Email (SMTP Transport)
|
||||
# EMAIL_SMTP_HOST="localhost"
|
||||
|
||||
# Use SMTP pooling
|
||||
# EMAIL_SMTP_POOL=true
|
||||
# EMAIL_SMTP_PORT=465
|
||||
# EMAIL_SMTP_SECURE=false # Use TLS
|
||||
# EMAIL_SMTP_IGNORE_TLS=false
|
||||
# EMAIL_SMTP_USER="username"
|
||||
# EMAIL_SMTP_PASSWORD="password"
|
||||
|
||||
## Email (Mailgun Transport)
|
||||
# EMAIL_MAILGUN_API_KEY="key-1234123412341234"
|
||||
# EMAIL_MAILGUN_DOMAIN="a domain name from https://app.mailgun.com/app/sending/domains"
|
||||
|
||||
## Email (SendGrid Transport)
|
||||
# EMAIL_SENDGRID_API_KEY="key-1234123412341234"
|
||||
17
backend/package.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"db:dump": "sqlite3 ../data/data.db < ../schema/clean_and_dump.sql > ../schema/dump.sql",
|
||||
"db:import": "rm -f ../data/data.db && sqlite3 ../data/data.db < ../schema/dump.sql",
|
||||
"dev": "nodemon --exec directus start",
|
||||
"start": "directus start"
|
||||
},
|
||||
"dependencies": {
|
||||
"directus": "10.4.2",
|
||||
"sqlite3": "5.1.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "3.0.1",
|
||||
"uuid": "9.0.0"
|
||||
}
|
||||
}
|
||||
8526
backend/pnpm-lock.yaml
generated
Normal file
2
data/uploads/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# Ignore auto-genrated files
|
||||
*__*.*
|
||||
BIN
data/uploads/0023b5d9-cc11-45e0-8e10-d2d012f03f67.png
Normal file
|
After Width: | Height: | Size: 871 B |
BIN
data/uploads/00e72a4a-3aed-4f53-bf28-75197dbead88.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
data/uploads/00fb6a3e-f393-4b85-a7a0-221e8a9024d1.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
data/uploads/01145770-b5c0-4491-b5dc-c6bad2e2eb3b.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
data/uploads/015b68a2-c4b2-45e3-9c90-4202d135c49b.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
data/uploads/022d7552-10e8-4212-9d90-a61f61ceb3fb.jpg
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
data/uploads/02327553-f752-4545-97e3-65ea292fa5ea.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
data/uploads/024ce8f2-b8d4-4cbd-a682-891457695658.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
data/uploads/0277a8ea-45bc-4841-b852-ab5196b85ddf.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
data/uploads/02a21d05-404f-429b-99ca-669b7d1ac02b.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
data/uploads/02be8a51-ce96-4d3c-807e-1813ffdf6528.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
data/uploads/03d4a55d-72ca-438f-8c7c-04aa6e1f44ff.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
data/uploads/042b909d-bb08-4a73-b6de-4aed39af508a.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
data/uploads/04525548-d30e-4b4c-b41d-9775a7e92e00.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
data/uploads/0515a136-5b87-42b6-becc-229a9b079057.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
data/uploads/058a6c45-802d-4adb-bb49-3dbfded98164.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
data/uploads/05f53d58-4095-40a3-ad3e-cc69e208c071.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
data/uploads/0641b198-0e5c-431a-ba08-3d29afc14818.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
data/uploads/0649c0a2-f138-4fd0-9949-66f8479a024e.png
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
data/uploads/0679441f-3e49-411c-9d86-7f02a5f4eeea.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
data/uploads/0681d503-305d-44e0-9af9-3db3cd7c5528.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
data/uploads/080b7f6b-1d1f-42d8-8670-cb0138a400b4.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
data/uploads/08534930-b5f7-458b-b0d5-a9021c20e599.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
data/uploads/0885bed2-d4da-4f55-a275-624810277cfe.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
data/uploads/08e5455a-8d2d-40fc-8fe8-0beac5670ddb.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
data/uploads/092272d5-e088-4967-a6be-d7f5d42c310b.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
data/uploads/0947d18b-1437-4ee8-a693-e113217d6ca8.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
data/uploads/0a321e46-5d6f-41d4-bc5b-f1c0d5d4c41e.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
data/uploads/0a564f50-b51e-4abd-9b57-3d662277e4e5.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
data/uploads/0a6ac87e-dfc8-4e3c-bc03-1772da1bbd01.jpg
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
data/uploads/0aa66fd9-7aa0-42c1-8e0d-279619ad9f03.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
data/uploads/0b2485b3-4153-4011-9fec-8d5922044fc2.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
data/uploads/0b99a4bf-4608-43ac-8c1d-cca5314bfba9.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
data/uploads/0bb352f0-02e9-4693-a60e-72be012a4809.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
data/uploads/0bdde198-3663-4340-8ae8-4d887a1a05fb.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
data/uploads/0ce70074-9c5a-4d96-8b12-fe72bd9060a9.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
data/uploads/0d047f71-dfee-45b7-9992-3f5771ee9648.jpeg
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
data/uploads/0d7df842-279d-4cfe-8185-9c52e6841c2e.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
data/uploads/0dd827d5-d627-4460-8d4e-c16ab7c7ad0a.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
data/uploads/0f42acd6-4648-4240-92c7-643f097dd127.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
data/uploads/0fc6ebd3-a1ad-46f2-a60c-4cffcc292fc2.jpg
Normal file
|
After Width: | Height: | Size: 884 KiB |
BIN
data/uploads/10aab815-3c54-4d66-af4d-7ad76b999d5d.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
data/uploads/114974a8-a9db-4952-83f0-8540e0e6eddf.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
data/uploads/114a2301-ea0b-4040-be0e-e3f88119613c.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
data/uploads/11ad6397-3737-42eb-bb87-affff3b05d75.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/uploads/12102fb4-1732-4cae-9fa7-1ae6eb7a889a.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
data/uploads/12a0c626-70c6-410c-ad5d-73923c62253f.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
data/uploads/140a626e-f40c-474f-b010-5f96a890069a.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/uploads/155266b1-976e-44f3-887f-6b8eb3981dbb.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
data/uploads/160f3cac-ae0c-478d-91fa-599c5bcec5a4.jpg
Normal file
|
After Width: | Height: | Size: 523 KiB |
BIN
data/uploads/161e78af-7ea9-428d-98af-6ce1729be3d4.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
data/uploads/164f59d8-de1f-40d4-b740-cf448209ca86.jpeg
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
data/uploads/170edd81-7ac5-41dc-baeb-763f636c8768.JPG
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
data/uploads/173a3fd8-bd17-4c77-98ea-336b8811828e.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
data/uploads/177bf6dd-1b3e-4ae7-9a5a-31461d45f5d7.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
data/uploads/17872cea-9276-4fcd-a5ae-1553384ffd33.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
data/uploads/17bf8a5e-8f29-44cf-8df4-7ed9522e3937.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
data/uploads/18b42233-3219-4539-b663-6216398f9926.jpg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
data/uploads/19bba364-71a0-410c-b9a5-69b38c133d43.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
data/uploads/1a8c60b0-c3bd-4495-90fe-5b0ab77d949a.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
data/uploads/1be6b2a3-94b9-4c4d-86ad-0b957c3d66e5.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
data/uploads/1cf8195b-b939-43db-85a2-a4c50bd04d48.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
data/uploads/1d6cb867-f04c-477b-b6a3-ff00f98d17c0.jpg
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/uploads/1e3758b3-bc76-4b71-91d1-331531d328af.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
data/uploads/1f0e6384-82db-4ad4-832a-da6f107cf600.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
data/uploads/1f0f28c8-4a95-40f5-94c4-5393102f8a6d.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
data/uploads/1f8be747-0db2-486e-b2f4-df557c038dba.jpg
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
data/uploads/1f9b9f14-8eb8-4836-9ce7-1f58ae4d9ec9.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
data/uploads/204032ce-ee74-44e4-87f0-4284e81ac2e5.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
data/uploads/209df123-174c-468f-ae15-d6648206de3c.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
data/uploads/20efe404-f3dd-4340-be5b-1861e5e52308.JPG
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
data/uploads/21e6bc8d-e614-4ace-97c8-d28dd8e2d94e.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
data/uploads/23bf22ee-4d16-48e2-98aa-4381c5cd3dee.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
data/uploads/244cd577-9423-4f46-ac95-0de6f345ea5e.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
data/uploads/258d1bc6-7dce-4f6f-8b95-948102a12b34.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
data/uploads/25ed5455-ec75-43df-932f-4c2f52111871.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
data/uploads/260216c3-b94b-47a1-8d26-40ba9fc2c2e1.jpg
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
data/uploads/26034204-f261-4d72-9492-d49a1fa94418.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
data/uploads/26e028a6-eb66-4fcb-a8c6-fcf7a5096261.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
data/uploads/2726dd91-e659-4ff8-af86-152b82e7dc0c.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
data/uploads/284e63ba-a07d-445e-87b2-87e26a7253ee.jpg
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
data/uploads/289d2def-2f47-4491-a541-0247f09495b1.jpg
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
data/uploads/29218fc5-be3c-4d97-9fd5-348d6bb3827f.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
data/uploads/29e4a4c3-80b9-4a28-8b47-8c727f03df08.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
data/uploads/2c86325b-555b-480b-a1da-4b92fa64d419.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
data/uploads/2cb9426d-4710-4e87-b2a1-ecddaca9d6b9.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
data/uploads/2cd1ce6e-f042-46c3-b993-fdb38f552ec4.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
data/uploads/2cd2444c-6a34-49ac-a611-0fff178e4f80.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
data/uploads/2d0396b0-f531-4fe4-8591-0d5a0804bce6.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
data/uploads/2d6e33de-c3c2-49b9-8017-73f2361ba8cd.jpg
Normal file
|
After Width: | Height: | Size: 944 KiB |
BIN
data/uploads/2e00f314-aa57-4d08-a685-a97b8f3cf270.png
Normal file
|
After Width: | Height: | Size: 13 KiB |