mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-08-14 17:58:27 +00:00
fix trailing-whitespace
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# Transformer k8s liveness and readiness probes
|
||||
|
||||
>**Note:** The transform-specific liveness probes are currently disabled by default in the
|
||||
Alfresco Docker Transformers **2.0.0-RC3** release. They can be enabled through the
|
||||
>**Note:** The transform-specific liveness probes are currently disabled by default in the
|
||||
Alfresco Docker Transformers **2.0.0-RC3** release. They can be enabled through the
|
||||
"**livenessTransformEnabled**" environment variable.
|
||||
>
|
||||
> The T-Engine liveness probes will be reevaluated/changed/improved as part of the ATS-138 story.
|
||||
>
|
||||
> Without the transform-specific liveness probees, calls to the "/live" endpoint of the
|
||||
> Without the transform-specific liveness probees, calls to the "/live" endpoint of the
|
||||
T-Engines only check if the JVM is alive.
|
||||
|
||||
The transformer's liveness and readiness probes perform small test transformations to check that a pod has fully started up and that it is still healthy.
|
||||
|
@@ -3,22 +3,22 @@ info:
|
||||
description: |
|
||||
**Alfresco Transform Engines REST API**
|
||||
|
||||
Transform Request & Response API to allow a source file to be transformed into a
|
||||
target file, given a set of transform options.
|
||||
|
||||
Transform Request & Response API to allow a source file to be transformed into a
|
||||
target file, given a set of transform options.
|
||||
|
||||
The new JSON-based Transform Engines API is used by the Alfresco Transform Service (ATS).
|
||||
ATS provides an independently-scalable transform service, initially used by ACS
|
||||
ATS provides an independently-scalable transform service, initially used by ACS
|
||||
Content Repository, as part of the overall Alfresco Digital Business Platform (DBP).
|
||||
|
||||
|
||||
Note: Each kind of Transform Engine implements this Transform Engines API, including:
|
||||
|
||||
|
||||
* ImageMagick
|
||||
* LibreOffice
|
||||
* PDF Renderer
|
||||
* Tika
|
||||
|
||||
|
||||
In the future, this Transform Engines API may form the basis for adding custom Transform Engines.
|
||||
|
||||
|
||||
version: '1'
|
||||
title: Alfresco Transform Engines REST API
|
||||
basePath: /alfresco/api/-default-/private/transformer/versions/1
|
||||
@@ -34,22 +34,22 @@ paths:
|
||||
summary: Transform Engines API
|
||||
description: |
|
||||
**Note:** available with Alfresco Transform Engines 2.0 and newer versions.
|
||||
|
||||
This endpoint supports both JSON and Multipart. The JSON API is used within the
|
||||
Alfresco Transform Service (eg. ACS 6.1). The Multipart API remains for backwards
|
||||
|
||||
This endpoint supports both JSON and Multipart. The JSON API is used within the
|
||||
Alfresco Transform Service (eg. ACS 6.1). The Multipart API remains for backwards
|
||||
compatibility (eg. ACS 6.0).
|
||||
|
||||
|
||||
**Using JSON (application/json -> application/json)**
|
||||
|
||||
The ACS Content Repository 6.1 (or higher) provides the option to offload
|
||||
|
||||
The ACS Content Repository 6.1 (or higher) provides the option to offload
|
||||
supported transformations to the Alfresco Transform Service.
|
||||
|
||||
The JSON API is used within the Alfresco Transform Service. It relies on the
|
||||
source and target files being stored and retrieved via the Alfresco Shared File
|
||||
Store (see also [alfresco-sfs.yaml](https://github.com/Alfresco/alfresco-shared-file-store/blob/master/docs/api-definitions/alfresco-sfs.yaml)).
|
||||
|
||||
|
||||
The JSON API is used within the Alfresco Transform Service. It relies on the
|
||||
source and target files being stored and retrieved via the Alfresco Shared File
|
||||
Store (see also [alfresco-sfs.yaml](https://github.com/Alfresco/alfresco-shared-file-store/blob/master/docs/api-definitions/alfresco-sfs.yaml)).
|
||||
|
||||
Here's a pseudo-example transform request:
|
||||
|
||||
|
||||
```JSON
|
||||
{
|
||||
"schema": 1,
|
||||
@@ -68,9 +68,9 @@ paths:
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Here's a pseudo-example response of a successful transform:
|
||||
|
||||
|
||||
```JSON
|
||||
{
|
||||
"schema": 1,
|
||||
@@ -81,9 +81,9 @@ paths:
|
||||
"targetReference": "5bc81e48-e17a-4727-bd1c-3a279aa6b421"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Here's a pseudo-example response of a failed transform:
|
||||
|
||||
|
||||
```JSON
|
||||
{
|
||||
"schema": 1,
|
||||
@@ -94,21 +94,21 @@ paths:
|
||||
"sourceReference": "598387b8-d85d-4557-816e-50f44c969e04"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
**Using Multipart (multipart/form-data -> application/octet-stream)**
|
||||
|
||||
The Multipart API remains for backwards compatibility (eg. ACS 6.0). It requires
|
||||
the source file to be uploaded via multipart/form-data (along with transformation
|
||||
|
||||
The Multipart API remains for backwards compatibility (eg. ACS 6.0). It requires
|
||||
the source file to be uploaded via multipart/form-data (along with transformation
|
||||
options). The target file is returned as a binary response (application/octet-steam).
|
||||
|
||||
|
||||
operationId: transformOperation
|
||||
parameters:
|
||||
- in: body
|
||||
name: transformRequest
|
||||
description: The Transform Request including source reference and transform options
|
||||
description: The Transform Request including source reference and transform options
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/transformRequest'
|
||||
$ref: '#/definitions/transformRequest'
|
||||
consumes:
|
||||
- application/json
|
||||
- multipart/form-data
|
||||
@@ -194,7 +194,7 @@ definitions:
|
||||
transformRequestOptions:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: string
|
||||
transformReply:
|
||||
type: object
|
||||
properties:
|
||||
|
@@ -12,7 +12,7 @@ The `.travis.yml` config file can be found in the root of the repository.
|
||||
Travis CI builds differ by branch:
|
||||
* `master` / `SP/*` / `HF/*` branches:
|
||||
- regular builds which include the _Build_ stage;
|
||||
> On the `master` branch only the _Build_ stage updates the `latest` T-Engines images on
|
||||
> On the `master` branch only the _Build_ stage updates the `latest` T-Engines images on
|
||||
> both Quay and DockerHub:
|
||||
> - alfresco/alfresco-pdf-renderer
|
||||
> - alfresco/alfresco-imagemagick
|
||||
@@ -20,9 +20,9 @@ Travis CI builds differ by branch:
|
||||
> - alfresco/alfresco-libreoffice
|
||||
> - alfresco/alfresco-transform-misc
|
||||
> - alfresco/alfresco-transform-core-aio
|
||||
- if the commit message contains the `[trigger release]` tag, the builds will also
|
||||
- if the commit message contains the `[trigger release]` tag, the builds will also
|
||||
include the _Release_ stage;
|
||||
- PR builds where the latest commit contains the `[trigger release]` tag will execute dry runs
|
||||
- PR builds where the latest commit contains the `[trigger release]` tag will execute dry runs
|
||||
of the release jobs (no artifacts will be published until the PR is actually merged).
|
||||
* `ATS-*` branches:
|
||||
- regular builds which include only the _Build_ and _Tests_ stages;
|
||||
@@ -32,11 +32,11 @@ All other branches are ignored.
|
||||
|
||||
## Release process steps & info
|
||||
Prerequisites:
|
||||
- the `master` / `SP/*` / `HF/*` branch is green and it contains all the changes that should be
|
||||
- the `master` / `SP/*` / `HF/*` branch is green and it contains all the changes that should be
|
||||
included in the next release.
|
||||
|
||||
Steps:
|
||||
1. Create a new branch with the name `ATS-###_release_version` from the `master` / `SP/*`/ `HF/*`
|
||||
1. Create a new branch with the name `ATS-###_release_version` from the `master` / `SP/*`/ `HF/*`
|
||||
branch.
|
||||
2. Update the project version if the current POM version is not the next desired release; use a
|
||||
maven command, i.e.
|
||||
@@ -45,12 +45,12 @@ maven command, i.e.
|
||||
```
|
||||
3. Update the project's dependencies (remove the `-SNAPSHOT` suffixes - only for dependencies, not
|
||||
for the local project version).
|
||||
4. Create a new commit with the `[trigger release]` tag in its message. If no local changes have
|
||||
4. Create a new commit with the `[trigger release]` tag in its message. If no local changes have
|
||||
been generated by steps (2) and (3), then an empty commit should be created - e.g.
|
||||
```bash
|
||||
git commit --allow-empty -m "ATS-###: Release T-Core (T-Engines) #.##.# [trigger release]"
|
||||
```
|
||||
|
||||
|
||||
> The location of the `[trigger release]` tag in the commit message is irrelevant.
|
||||
|
||||
> If for any reason your PR contains multiple commits, the commit with the `[trigger release]`
|
||||
@@ -58,6 +58,6 @@ been generated by steps (2) and (3), then an empty commit should be created - e.
|
||||
5. Open a new Pull Request from the `ATS-###_release_version` branch into the original
|
||||
`master` / `SP/*` / `HF/*` branch and wait for a green build; the **Release** stage on the PR build
|
||||
will only execute a _Dry_Run_ of the release.
|
||||
6. Once it is approved, merge the PR, preferably through the **Rebase and merge** option. If the
|
||||
**Create a merge commit** (_Merge pull request_) or **Squash and merge** options are used, you
|
||||
6. Once it is approved, merge the PR, preferably through the **Rebase and merge** option. If the
|
||||
**Create a merge commit** (_Merge pull request_) or **Squash and merge** options are used, you
|
||||
need to ensure that the _commit message_ contains the `[trigger release]` tag (sub-string).
|
||||
|
@@ -1,7 +1,7 @@
|
||||
## T-Engine configuration
|
||||
|
||||
T-Engines provide a */transform/config* end point for clients (e.g. Transform-Router or
|
||||
Alfresco-Repository) that indicate what is supported. T-Engines store this
|
||||
T-Engines provide a */transform/config* end point for clients (e.g. Transform-Router or
|
||||
Alfresco-Repository) that indicate what is supported. T-Engines store this
|
||||
configuration as a JSON resource file named *engine_config.json*.
|
||||
|
||||
The config can be found under `alfresco-transform-core\<t-engine-name>\src\main\resources
|
||||
@@ -65,9 +65,9 @@ The config can be found under `alfresco-transform-core\<t-engine-name>\src\main\
|
||||
and **pdfboxOptions** which has a group of options **targetEncoding** and
|
||||
**notExtractBookmarksText**. Unless an option has a **"required": true** field it is
|
||||
considered to be optional. You don't need to specify *sourceMimetype*,
|
||||
*targetMimetype*, *sourceExtension* or *targetExtension* as options as
|
||||
*targetMimetype*, *sourceExtension* or *targetExtension* as options as
|
||||
these are automatically added.
|
||||
|
||||
|
||||
*Snippet from ImageMagick T-engine configuration:*
|
||||
```json
|
||||
"transformOptions": {
|
||||
@@ -85,32 +85,32 @@ The config can be found under `alfresco-transform-core\<t-engine-name>\src\main\
|
||||
},
|
||||
```
|
||||
* There are two types of transformOptions, *transformOptionsValue* and *transformOptionsGroup*:
|
||||
* _TransformOptionsValue_ is used to represent a single transformation option, it is defined
|
||||
* _TransformOptionsValue_ is used to represent a single transformation option, it is defined
|
||||
by a **name** and an optional **required** field.
|
||||
* _TransformOptionGroup_ represents a group of one or more options, it is used to group
|
||||
* _TransformOptionGroup_ represents a group of one or more options, it is used to group
|
||||
options that define a
|
||||
characteristic. In the above snippet all the options for crop are defined under a group, it is recommended to
|
||||
use this approach as it is easier to read. A transformOptionsGroup can contain one or more transformOptionsValue
|
||||
and transformOptionsGroup.
|
||||
|
||||
use this approach as it is easier to read. A transformOptionsGroup can contain one or more transformOptionsValue
|
||||
and transformOptionsGroup.
|
||||
|
||||
**Limitations**:
|
||||
* For a transformOptions to be referenced in a different T-engine, another transformer
|
||||
with the complete definition of the transformOptions needs to return the config to the client.
|
||||
* In a transformOptions definition it is not allowed to use a reference to another tranformOption.
|
||||
|
||||
|
||||
### Transformers
|
||||
* **transformers** - A list of transformer definitions.
|
||||
Each transformer definition should have a unique **transformerName**,
|
||||
specify a **supportedSourceAndTargetList** and indicate which
|
||||
options it supports. As it is shown in the Tika snippet, an *engine_config*
|
||||
can describe one or more transformers, as a T-engine can have
|
||||
multiple transformers (e.g. Tika, Misc). A transformer configuration may
|
||||
multiple transformers (e.g. Tika, Misc). A transformer configuration may
|
||||
specify references to 0 or more transformOptions.
|
||||
|
||||
### Supported Source and Target List
|
||||
* **supportedSourceAndTargetList** is simply a list of source and target
|
||||
Media Types that may be transformed, optionally specifying a
|
||||
**maxSourceSizeBytes** and a **priority** value.
|
||||
**maxSourceSizeBytes** and a **priority** value.
|
||||
* *maxSourceSizeBytes* is used to set the upper size limit of a transformation.
|
||||
* If not specified, the default value for maxSourceSizeBytes is **unlimited**.
|
||||
* *priority* it is used by clients to determine which transfomer to call or by T-engines
|
||||
@@ -121,7 +121,7 @@ The config can be found under `alfresco-transform-core\<t-engine-name>\src\main\
|
||||
* If not specified, the default value for priority is **50**.
|
||||
* Note: priority values are like the order in a queue, the **lower** the number the **higher the
|
||||
priority** is.
|
||||
|
||||
|
||||
## Transformer selection strategy
|
||||
The ACS repository will use the T-Engine configuration to choose which T-Engine will perform a transform.
|
||||
A transformer definition contains a supported list of source and target Media Types. This is used for the
|
||||
@@ -132,7 +132,7 @@ Order for selection is:
|
||||
2. transformOptions
|
||||
3. maxSourceSizeBytes
|
||||
4. priority
|
||||
|
||||
|
||||
#### Case 1:
|
||||
```
|
||||
Transformer 1 defines options: Op1, Op2
|
||||
@@ -165,4 +165,4 @@ Rendition provides values for options: Op1, Op2
|
||||
```
|
||||
If we assume both transformers support the required source and target Media Types and
|
||||
*priority1* < *priority2*, Transformer 1 will be selected because its priority is higher.
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user