platform/server/front
Andrey Sobolev 30d9d634c7
UBERF-7665: Fix OOM in sharp (#6138)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-07-28 14:55:41 +07:00
..
config :Apply templates (#3799) 2023-10-07 16:38:21 +06:00
src UBERF-7665: Fix OOM in sharp (#6138) 2024-07-28 14:55:41 +07:00
.eslintrc.js :Apply templates (#3799) 2023-10-07 16:38:21 +06:00
.npmignore initial front implementation 2021-08-28 22:31:45 +02:00
build.sh Change shebangs to /usr/bin/env calls for better portability (#5961) 2024-07-01 23:21:52 +07:00
jest.config.js :Apply templates (#3799) 2023-10-07 16:38:21 +06:00
package.json UBERF-7603: Support multiple transactors (#6086) 2024-07-19 01:04:48 +07:00
readme.md UBERF-7597: Get rid of formats in preview.ts (#6077) 2024-07-16 16:39:30 +07:00
run.sh Change shebangs to /usr/bin/env calls for better portability (#5961) 2024-07-01 23:21:52 +07:00
tsconfig.json Fix validate build (#4780) 2024-02-27 15:29:41 +07:00

Overview

Front service is suited to deliver application bundles and resource assets, it also work as resize/recode service for previews, perform blob storage front operations.

Configuration

  • SERVER_PORT: Specifies the port number on which the server will listen.
  • MONGO_URL: Specifies the URL of the MongoDB database.
  • ELASTIC_URL: Specifies the URL of the Elasticsearch service.
  • ACCOUNTS_URL: Specifies the URL of the accounts service.
  • UPLOAD_URL: Specifies the URL for uploading files.
  • GMAIL_URL: Specifies the URL of the Gmail service.
  • CALENDAR_URL: Specifies the URL of the calendar service.
  • TELEGRAM_URL: Specifies the URL of the Telegram service.
  • REKONI_URL: Specifies the URL of the Rekoni service.
  • COLLABORATOR_URL: Specifies the URL of the collaborator service.
  • COLLABORATOR_API_URL: Specifies the URL of the collaborator API.
  • MODEL_VERSION: Specifies the required model version.
  • SERVER_SECRET: Specifies the server secret.
  • PREVIEW_CONFIG: Specifies the preview configuration.
  • BRANDING_URL: Specifies the URL of the branding service.

Preview service configuration

PREVIEW_CONFIG env variable format.

A ; separated list of triples, providerName|previewUrl|supportedFormats.

  • providerName - a provider name should be same as in Storage configuration. It coult be empty and it will match by content types.
  • previewUrl - an Url with :workspace, :blobId, :downloadFile, :size placeholders, they will be replaced in UI with an appropriate blob values.
  • supportedFormats - a , separated list of file extensions.
  • contentTypes - a ',' separated list of content type patterns.

PREVIEW_CONFIG=*|https://front.hc.engineering/files/:workspace/api/preview/?width=:size&image=:downloadFile

Variables

  • :workspace - a current workspacw public url name segment.
  • :blobId - an uniq blob _id identifier.
  • :size - a numeric value to determine required size of the image, image will not be upscaled, only downscaled. If -1 is passed, original image size value will be used.
  • :downloadFile - an URI encoded component value of full download URI, could be presigned uri to S3 storage.

Passing default variant.

providerName could be set to * in this case it will be default preview provider.

Default variant.

If no preview config are specified, a default one targating a front service preview/resize functionality will be used.

/files/${getCurrentWorkspaceUrl()}?file=:blobId&size=:size

Testing with dev-production/etc.

Only a downloadFile variant of URIs will work, since app is hosted on localhost and token should be valid to use preview on production environment.