Warning
This API is outdated. Visit Ecrion Engage API 12.0 to access the latest version of the Ecrion API.
EOS 10.0 Developer Guide
This documentation describes the Application Programming Interfaces (API v2) for Ecrion Omni System (EOS) version 10.0 (Inkay) and later.
Introducing EOS API 2
Using this API, software programmers are able to produce documents in high volumes and manage customer communications, according to the different EOS layers:
EOS-P (Production)
- Render documents dynamically, in real-time, using XML or JSON as input data.
- Use document templates created in Ecrion Design Studio to control layout, styles, colors and other visual aspects.
EOS-DA (Document Assembly) includes all EOS-P features, plus:
- Implement security using users and groups.
- Control document assembly and automation using workflows.
- Create print streams for high-volume printers (Postscript, PDF or AFP).
EOS-CCM (Customer Communications Management) includes all EOS-P and EOS-DA features, plus:
- Use the online version of the Ecrion Design Studio for improved collaboration.
- Create documents interactively by filling out forms.
- Distribute documents to end-customers via print, email, etc.
EOS-CEM (Customer Engagement Management) includes all EOS-P, EOS-DA and EOS-CCM features, plus:
- Create Digital Experience Documents (DXD) for mobile devices and desktop computers
- Use interactive drill-down and intelligent analytics features
- Deliver personalized messages and marketing ads
- Track how end-customers are reading their documents
Ecrion provides the following APIs:
Javascriptfor web programmers through the inclusion ofEcrion.EOS.Client.2.0.jsC#for .NET programmers by adding a reference to theEcrion.EOS.Client.2.0.NET.dllassemblyJavafor Java programmers through theEcrion.EOS.Client.2.0.Java.jarpackage
Notes
The communication between these APIs and the EOS server is performed through REST endpoints via HTTP or HTTPS.
In the cloud however, only HTTPS access is provided (port 443).
Getting Started
Authentication
EOS uses API keys in order to authenticate requests made by clients. Depending on your installation, you can find the authentication keys in the following location:
EOS-P (on premise)Open Management Console, and navigate to EOS Publishing Engine/Engine Settings/HTTP Server Configuration/API KeyEOS-P (cloud)EOS-DAEOS-CCMEOS-CEMFrom your EOS homepage, navigate to Developer/API Keys
All endpoints require a session token. The token can be obtained using the Authorization service.
Single Sign-On
SSO enables users to access all of their enterprise applications by signing in one time for all services. We provide a Security Assertion Markup Language (SAML)-based SSO API that you can use to integrate into your IdP (Identity Provider).
Read more about EOS SSO here.
Template management
EOS uses document templates (.epr files created in Ecrion Design Studio) to merge data points with layout and create personalized documents. This process is called document composition. In EOS-P templates are managed in the file system and can be found in the Management Console, in the Server Templates section, under the Default workspace. In EOS-DA and up, templates are managed in a high-performance repository with versioning capabilities. Use the top-left menu to access your workspaces.
Using EOS JavaScript API
Including the library
The Javascript API is referenced through Ecrion.EOS.Client.2.0.js. If you are working with the cloud version of EOS, use https://eos4.ecrion.com as the server name, however for on-premise installations, make sure to use the correct server name and port number provided by your system administrator:
<html>
<head>
<script src="https://eos4.ecrion.com/sdk/v2/javascript/Ecrion.EOS.Client.2.0.js"></script>
</head>
<body>
<script>
// Javascript code that uses the EOS API
</script>
</body>
</html>
Using the API
The example below uses JavaScript to convert XML to PDF using a template stored on the EOS server. An XML string is sent to the EOS server and a PDF is received back:
// Wait for the API to initialize
eosAPI.ready(function(){
// Authenticate using an API key
eosAPI.authorize("API:59e80576-19e5-4808-98c0-cf2c9da055ea")
.catch(function(response){
// Handle any authentication errors here
alert("Authentication failure: " + response.statusText);
})
});
// Wait for authorize() to complete
eosAPI.authorized(function(){
// Render an xml to pdf using a template
eosAPI.DirectRender.Render({
request: {
InputSettings: {
Template: {
Workspace: "Default",
Path: "Retail\\Bookstore Invoice\\Invoice.epr"
}
},
Input: {
InputFormat: "xml",
Source: '<?xml version="1.0" standalone="yes"?>' +
'<Invoices>' +
'<Invoice>' +
'<InvoiceProperties number="02116" date="2016-09-10" />' +
'<CustomerInformation name="Earl Library Co." address="121 South Main ' +
'Street, Seattle, Washington 92315" email="sales@earlbook.com" ' +
'telephone="(206)321-2345 " />' +
'<Products>' +
'<Product id="1" name="Rendezvous with Rama by Arthur C. Clarke" ' +
'price="15" quantity="3" total="45" description="An all-time science ' +
'fiction classic, Rendezvous with Rama is also one of Clarke\'s best ' +
'novels; it won the Campbell, Hugo, Jupiter, and Nebula Awards." />' +
'<Product id="2" name="Dune Chronicles by Frank Herbert" price="60" ' +
'quantity="5" total="300" description="Dune is one of the most famous ' +
'science fiction novels ever written, and deservedly so. The setting ' +
'is elaborate and ornate, the plot labyrinthine, the adventures ' +
'exciting."/>' +
'</Products>' +
'<Comments comments="Contact us with any questions you may have." />' +
'</Invoice>' +
'</Invoices>'
},
PdfOutput: {}
}
}, {
responseContentType: 'application/pdf'
})
.then(function(response) {
// PDF rendered and received. You can use response.data to retrieve the PDF bytes,
// however for this sample the previewResponse utility is used
// to quickly preview the response bytes in a new window
eosAPI.Util.previewResponse(response);
})
.catch(function(response){
// Handle any render errors here
alert("Render error: " + response.obj.Message);
});
});
Notes
obj property contains the deserialized response. data property contains the response bytes if it's binary. status property contains the HTTP status code. .ready or .authorized wrappers..authorizeWithToken utility instead of authorize.eosAPI.sessionToken.Using EOS .NET API
Downloading the API
In .NET you need to include a reference to Ecrion.EOS.Client.NET.dll. An archive containing the dll file is distributed with all EOS versions and can be found in the following locations:
-
EOS-P (on premise)Open the SDK download page, which by default is located at https://localhost:50101/sdk or http://localhost:50100/sdk -
EOS-P (cloud)EOS-DAEOS-CCMEOS-CEMFrom your EOS homepage, access the Developer app and select Software/EOS APIs.
Using the API
In the zip file there is a README.txt file that explains how to use the API.
If you are working with the cloud version of EOS, use https://eos4.ecrion.com as the eosUrl, however for on-premise installations, make sure to use the correct server name and port number provided by your system administrator:
The code sample below uses EOS API to convert XML to PDF using a template stored on the EOS server. An XML string is sent to the EOS server and a PDF is received back and downloaded locally.
string eosUrl = "https://eos4.ecrion.com";
string apiKey = "API:59e80576-19e5-4808-98c0-cf2c9da055ea";
string downloadFolder = "C:/Downloads/";
string fileName = "eos-sample1-xml2pdf.pdf";
try
{
AuthorizationService authSvc = new AuthorizationService(eosUrl);
string sessionToken = authSvc.GetToken(apiKey).AccessToken;
Console.WriteLine("Your token is: {0}", sessionToken);
// Render XML -> PDF
// Create a new Render API
DirectRenderService renderSvc = new DirectRenderService(eosUrl);
// Create a new render request
RenderRequestEntity request = new RenderRequestEntity()
{
InputSettings = new InputSettings()
{
Template = new Template()
{
Workspace = "Default",
Path = @"Retail\Bookstore Invoice\Invoice.epr"
}
},
Input = new Input()
{
InputFormat = "xml",
Source = "<?xml version=\"1.0\" standalone=\"yes\"?>" +
"<Invoices>" +
"<Invoice>" +
"<InvoiceProperties number=\"02116\" date=\"2016-09-10\" />" +
"<CustomerInformation name=\"Earl Library Co.\" address=\"121 South Main" +
" Street, Seattle, Washington 92315\" email=\"sales@earlbook.com\"" +
" telephone=\"(206)321-2345\" />" +
"<Products>" +
"<Product id=\"1\" name=\"Rendezvous with Rama by Arthur C. Clarke\"" +
" price=\"15\" quantity=\"3\" total=\"45\" description=\"An all-time science" +
" fiction classic, Rendezvous with Rama is also one of Clarke's best" +
" novels; it won the Campbell, Hugo, Jupiter, and Nebula Awards.\" />" +
"<Product id=\"2\" name=\"Dune Chronicles by Frank Herbert\" price=\"60\"" +
" quantity=\"5\" total=\"300\" description=\"Dune is one of the most famous" +
" science fiction novels ever written, and deservedly so. The setting" +
" is elaborate and ornate, the plot labyrinthine, the adventures" +
" exciting.\"/>" +
"</Products>" +
"<Comments comments=\"Contact us with any questions you may have.\" />" +
"</Invoice>" +
"</Invoices>"
},
PdfOutput = new PdfOutput()
};
// Send the request
Stream response = renderSvc.Render(sessionToken, request);
Console.WriteLine("XML -> PDF rendered ok");
// Download the PDF locally
if (!Directory.Exists(downloadFolder))
Directory.CreateDirectory(downloadFolder);
using (System.IO.Stream newFile = System.IO.File.OpenWrite(downloadFolder + fileName))
{
response.CopyTo(newFile);
}
Console.WriteLine("Downloaded response file to folder: {0}", downloadFolder + fileName);
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
Using EOS Java API
Downloading the API
In Java you need to include a reference to Ecrion.EOS.Client.2.0.Java.jar. An archive containing the jar is distributed with all EOS versions and can be found in the following locations:
-
EOS-P (on premise)Use the SDK download page, which by default is located at https://localhost:50101/sdk or http://localhost:50100/sdk
-
EOS-P (cloud)EOS-DAEOS-CCMEOS-CEMFrom your EOS homepage, access the Developer app and select Software/EOS APIs.
Using the API
In the zip file there is a README.txt file that explains how to use the API.
If you are working with the cloud version of EOS, use https://eos4.ecrion.com as the eosUrl, however for on-premise installations, make sure to use the correct server name and port number provided by your system administrator:
The code snippet below uses EOS API to convert XML to PDF using a template stored on the EOS server. An XML string is sent to the EOS server and a PDF is received back:
String eosUrl = "https://eos4.ecrion.com";
String apiKey = "API:59e80576-19e5-4808-98c0-cf2c9da055ea";
String downloadFolder = "C:/Downloads/";
String fileName = "eos-sample1-xml2pdf.pdf";
AuthorizationService authSvc = new AuthorizationService(eosUrl);
String sessionToken = authSvc.getToken(apiKey).getAccessToken();
System.out.format("Your token is: %s%n", sessionToken);
// Create a new render request
RenderRequestEntity renderRequest = new RenderRequestEntity();
InputSettings inputSettings = new InputSettings();
Template template = new Template();
template.setWorkspace("Default");
template.setPath("Retail\\Bookstore Invoice\\Invoice.epr");
inputSettings.setTemplate(template);
renderRequest.setInputSettings(inputSettings);
Input input = new Input();
input.setInputFormat("xml");
input.setSource("<?xml version=\"1.0\" standalone=\"yes\"?>" +
"<Invoices>" +
"<Invoice>" +
"<InvoiceProperties number=\"02116\" date=\"2016-09-10\" />" +
"<CustomerInformation name=\"Earl Library Co.\" address=\"121 South Main" +
" Street, Seattle, Washington 92315\" email=\"sales@earlbook.com\"" +
" telephone=\"(206)321-2345\" />" +
"<Products>" +
"<Product id=\"1\" name=\"Rendezvous with Rama by Arthur C. Clarke\"" +
" price=\"15\" quantity=\"3\" total=\"45\" description=\"An all-time science" +
" fiction classic, Rendezvous with Rama is also one of Clarke's best" +
" novels; it won the Campbell, Hugo, Jupiter, and Nebula Awards.\" />" +
"<Product id=\"2\" name=\"Dune Chronicles by Frank Herbert\" price=\"60\"" +
" quantity=\"5\" total=\"300\" description=\"Dune is one of the most famous" +
" science fiction novels ever written, and deservedly so. The setting" +
" is elaborate and ornate, the plot labyrinthine, the adventures" +
" exciting.\"/>" +
"</Products>" +
"<Comments comments=\"Contact us with any questions you may have.\" />" +
"</Invoice>" +
"</Invoices>");
renderRequest.setInput(input);
renderRequest.setPdfOutput(new PdfOutput());
DirectRenderService renderSvc = new DirectRenderService(eosUrl);
// Send the Request
java.io.InputStream response = renderSvc.render(sessionToken, renderRequest);
// Download the PDF locally
FileOutputStream outputFile = new FileOutputStream(downloadFolder + fileName);
byte[] buffer = new byte[1024];
int bytesRead = -1;
java.io.BufferedInputStream bufferedReader = new java.io.BufferedInputStream(response);
while ((bytesRead = bufferedReader.read(buffer, 0, 1024)) != -1)
outputFile.write(buffer, 0, bytesRead);
response.close();
outputFile.close();
System.out.format("File %s downloaded ok%n", downloadFolder + fileName);
Java SDK Notes
The API Reference documents entities and methods using a simplified model. You will need to use setters and getters when woking with the entities, just like it's used in the above example.
General Notes
Error handling
Each API method can throw error and attempts to return appropriate HTTP status codes. Additional info is included in the body of the response, JSON-formatted.
Example:
//400 BadRequest
{
"Message": "Required parameter 'Path' not found."
}
| Code | Text | Description |
|---|---|---|
| 200 | OK | Success! |
| 201 | Created | Resource created. Usually, the response body represents the newly created resource. |
| 204 | No Content | Request processed. Response is intentionally blank e.g. DELETE operations. |
| 400 | Bad Request | The request was invalid or cannot be otherwise served. An accompanying error message will explain further. |
| 401 | Unauthorized | Missing or incorrect credentials. |
| 403 | Forbidden | The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. This is usually because of the current authenticated user not having permission to manage the resource. |
| 404 | Not Found | The URI requested is invalid or the resource requested, such as a user, does not exist. |
| 410 | Gone | This resource is gone. Used to indicate that an API endpoint has been turned off. |
| 415 | Unsupported Media Type | The payload is in a format not supported by this method on the target resource. The format problem might be due to the request's indicated Content-Type or Content-Encoding, or as a result of inspecting the data directly. |
| 500 | Internal Server Error | Something is broken. Additional explanation is included in the response body. |
Dates and durations
All dates in the API are strings in the ISO 8601 DateTime format:
"2017-01-26T11:29:35Z"
All durations in the API are string in the ISO 8601 Duration format:
"PT1.52S"
API Reference
This Enteprise API reference is organized by services and resource type. Each service groups similar resources together and has one or more methods that changes these resources (create, read, update, delete, etc.). All HTTP routes are relative to Enterprise Website base URI, e.g. api/v2/token refers to https://eos4.ecrion.com/api/v2/token.
Authorization
Authorization.GetTokenAuthorization.DeleteTokenAuthorization.GetTokenWindowsAuthorization.GetTokenSSOSAML Assertion Consumer
GetToken
Generates a session token. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/token
To generate a session token, call this method and supply the user credentials (case sensitive). The preferred way of authenticating is to use an API key. For more information about API keys, see Authentication.
The response contains a session token that needs to be passed via Authorization header using Basic <sessionTokenInbase64> format in order to authorize a generic endpoint.
If you're using our Javascript, .NET or Java client API this process is simplified (examples below).
Parameters
Authorization- User credentials (<apiKey>or<username>:<password>). Required
Returns TokenEntity
AccessToken- Session token ofstringtype
Examples
Javascript
If you're running Javascript inside a browser, you should avoid typing the credentials in plain text because the .js sources are available to the client.
Instead, it is preferred to store the API Key on your server and do the authentication in a secure backend, passing only a sessionToken to the client, using authorizeWithToken utility.
eosAPI.ready(function(){
var sessionToken = obtainTokenFromMyBackend();
eosAPI.authorizeWithToken(sessionToken);
//all subsequent eosAPI calls will use the sessionToken
})
However, if you're using Javascript in a server-side environment or the credentials are provided by the client user, the authorize utility method is available.
Internally, it calls Authorization.GetToken and uses the returned session token for all subsequent calls through the eosAPI global instance:
var apiKey = "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a";
eosAPI.authorize(apiKey)
.catch(function(response){
// Handle any authentication errors here
alert("Authentication failure: " + err.statusText);
});
eosAPI.authorized(function(){
//all eosAPI calls will use the sessionToken obtained based on the apiKey
});
The authorize method supports passing two arguments, i.e. eosAPI.authorize(username, password) if you want to use a username/password combination.
.NET
string apiKey = "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
string sessionToken = authService.GetToken(apiKey).AccessToken;
Alternatively, it's possible to use a username/password combination to authenticate: authSvc.GetToken(username + ":" + password)
Java
String apiKey = "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
String sessionToken = authSvc.getToken(apiKey);
Alternatively, it's possible to use a username/password combination to authenticate: authSvc.getToken(username + ":" + password)
HTTP
curl -u "API:dee401eb-d3e5-4523-9f90-c19a573e7e0a:" "https://eos4.ecrion.com/api/v2/token"
Alternatively, it's possible to use a username/password combination to authenticate. Replace -u apiKey: with -u username:password
__
DeleteToken
Delete a specific session token. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.4 or later
DELETE api/v2/token
Parameters
accessToken- TheTokenEntity.AccessTokenof typestringto delete on the server.
Returns
204 (No Content)- HTTP status code
Examples
.NET
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
string sessionToken = authService.GetToken(apiKey).AccessToken;
authService.DeleteToken(sessionToken);
HTTP
curl -X DELETE "https://eos4.ecrion.com/api/v2/token?accessToken=TOKEN:c87ca566-2587-4480-8a7a-27531f04af80"
__
GetTokenWindows
Generates a session token using Windows Authentication. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/token/windows
To generate an EOS access token, call this method and supply the environment name.
Parameters
environment- The environment name
Returns
This method applies for on-premise installations if Enterprise login with Active Directory is enabled.
If AD user store synchronization is enabled, an EOS user will automatically be created if the current AD user does not have an EOS user synced yet. If synchronization is disabled and an EOS user does not exist the authentication will fail.
This method is available only in .NET SDK.
Examples
.NET
string environment = "Test";
AuthorizationService authSvc = new AuthorizationService("https://eos4.ecrion.com/");
string sessionToken = authSvc.GetTokenWindows(environment).AccessToken;
__
GetTokenSSO
Generates a session token based on a SAML assertion or WS Federation Message EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/token/sso
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Message.environment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
__
SAML Assertion Consumer
Consumes a SAML Assertion Response. Also known as Assertion Consumer Service (ACS) EOS-P EOS-DA EOS-CCM EOS-CEM
POST /Security/ConsumeSAMLToken
When configuring IdPs, use an absolute path, pointing to the right domain and port of the EOS Enterprise Website. This endpoint does not have a SDK method associated.
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Messageenvironment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
- Redirects the authenticated user to the Enterprise homepage.
Examples
Salesforce as IdP
This fills the ACS URL field in the Salesforce configuration:
http://eos4.ecrion.com/Security/ConsumeSAMLToken
{!docs/10.0/Direct Render.md!}
Repository
EOS stores all assets involved in document production (images, templates, stylesheets, etc.) in a file repository. EOS-P provides only a basic level of functionality, while EOS-DA, EOS-CCM and EOS-CEM come with a high performance repository capable of sustaining 1000s of read/write operations per second, versioning and dependency tracking.
Methods:
Repository.DownloadFileRepository.UploadFileRepository.GetFilesRepository.UpdateFileRepository.DeleteFileRepository.GetFileVersionsRepository.RestoreFileVersionRepository.ExportFolderRepository.ImportFolderRepository.CreateFolderRepository.GetFoldersRepository.UpdateFolderRepository.DeleteFolderRepository.GetTagsRepository.RemoveTagRepository.AddTag
Entities:
DownloadFile
Download a file from EOS repository. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/files/content
Parameters
workspace- Workspace name Requiredpath- File path Required
Returns
binary data- File bytes
Examples
Javascript
eosAPI.Repository.DownloadFile({
workspace: "Default",
path: "Retail\\Bookstore Invoice\\Invoice.epr"
})
.then(function(response) {
var content = response.data;
})
__
UploadFile
Upload a file to EOS repository. EOS-P EOS-DA EOS-CCM EOS-CEM
POST api/v2/files/content
Parameters
workspace- Workspace name. Requiredpath- File path. Requiredfile- File bytes. Required
Returns
Examples
.NET
using (FileStream fsSource = new FileStream(@"C:\file.txt", FileMode.Open, FileAccess.Read))
{
RepositoryService repo = new RepositoryService(eosUrl);
FileEntity fileResponse = repo.UploadFile(
"TOKEN:c87ca566-2587-4480-8a7a-27531f04af80", "Default", "NewFolder/eosfile.txt", fsSource);
}
__
GetFiles
Returns a list of files from the EOS repository. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/files
Parameters
workspace- Workspace name. Requiredpath- Path to the folder containing the files or a file path1. Requiredfields- A comma separated list of additional fields to be included.- Allowed Values:
tags - Default:
null
- Allowed Values:
tagName- Name of the tag to search for. If tag is specified2 the endpoint will perform an in depth search of specified folder path.- Default:
null
- Default:
tagValue- Value of the tag to search for. If tag is specified2 the endpoint will perform an in depth search of specified folder path.- Default:
null
- Default:
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Notes
1. If the path is a file the result will contain a list of one file metadata from the specified file path.
2. To search files after a tag you need to specify both tagName and tagValue.
Returns FileEntity[]
Path- Path to the fileWorkspace- The workspace name in which the file is locatedAuthor- The name of the author of the current versionCreatedDate- The date when the current version was created (see Date Format)Type- A friendly file type name (e.g."PDF File")Bytes- The file size in bytesSize- A human-readable description of the file sizeTags- List ofTagEntityfile tags IF asked for. Otherwise it'snullName- Name of the tagValue- Value of the tag
Version- The 1-based version index
Examples
Javascript
// List all files in Bookstore Invoice folder
eosAPI.Repository.GetFiles({
workspace: "Default",
path: "Retail\\Bookstore Invoice"
})
.then(function(response) {
var files = response.obj;
})
__
UpdateFile
Rename, copy or move a file EOS-P EOS-DA EOS-CCM EOS-CEM
PUT /api/v2/files
Parameters
workspace- Workspace name. Requiredpath- Path to the file on which to perform the action. RequiredfileOperation- of typeFileOperationEntity. RequiredPath- The new file path. RequiredAction- The action to perform on file. Can berename,copyormove. RequiredOverwrite- Specifies how to resolve the conflict if the new file path exists- Allowed values:
true,false - Default:
false
- Allowed values:
Returns
204 (No Content)- HTTP status code
Examples
.NET
//duplicate Invoice.epr as Invoice2.epr
RepositoryService repo = new RepositoryService(eosUrl);
repo.UpdateFile("TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:", "Default", "Retail/Bookstore Invoice/Invoice.epr",
new FileOperationEntity()
{
Path = "Retail/Bookstore Invoice/Invoice2.epr",
Action = "copy"
});
HTTP
curl -H "Content-Type: application/json" -X PUT -d "{ 'Path':'Retail/Bookstore Invoice/Invoice Renamed.epr', Action:'rename' }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files?workspace=Default&path=Retail/Bookstore%20Invoice/Invoice.epr"
__
DeleteFile
Delete a file from EOS repository EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE /api/v2/files
Parameters
workspace- Workspace name Requiredpath- The path of the file to be deleted Required
Returns
204 (No Content)- HTTP status code
Examples
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files?workspace=Default&path=Retail/Bookstore%20Invoice/Telephone%20Invoice.epr"
__
GetFileVersions
Return a list of file versions from specified file path and workspace. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/files/versions
Parameters
workspace- Workspace name. Requiredpath- EOS file path. Required
Returns
Examples
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files/versions?workspace=Default&path=Retail/Bookstore%20Invoice/Telephone%20Invoice.epr"
__
RestoreFileVersion
Restore a file version EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/files/versions
Parameters
workspace- Workspace name. Requiredpath- EOS file path. Requiredrequest- RequiredVersion- The 1-based version index to restore.
Returns
204 (No Content)- HTTP status code
Examples
HTTP
curl -H "Content-Type: application/json" -X POST -d "{ 'Version':1 }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files/versions?workspace=Default&path=Telephone%20Invoice/Telephone%20Invoice.epr"
__
ExportFolder
Download a zip file of a folder from EOS repository. EOS-P EOS-DA EOS-CCM EOS-CEM
Parameters
workspace- Workspace name. Requiredpath- Folder path. Required
Returns
binary data- the zip file
Examples
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/folders/content?workspace=Default&path=Retail"
__
ImportFolder
Decompress an archive and uploads its content to EOS repository. EOS-P EOS-DA EOS-CCM EOS-CEM
Parameters
workspace- Workspace name. Requiredpath- Folder path. Requiredfile- Zip file bytes. Required
Returns
Examples
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -F filedata=@"C:\Temp\Monthly Telephone Invoice.zip" "http://eos4.ecrion.com/api/v2/folders/content?workspace=Default&path=Telephone%20Invoice"
__
CreateFolder
Create new folder EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. Required
Returns FolderEntity
Path- Path to the folderWorkspace- Workspace name in which the folder is locatedCreatedDate- Date when the folder was created (see Date Format)FilesCount- Total number of files inside the folder (non recursive)FoldersCount- Total number of folders inside the folder (non recursive)
Examples
Javascript
eosAPI.Repository.CreateFolder({
workspace: "Default",
path: "NewFolder"
})
.then(function(response) {
var folder = response.obj;
})
__
GetFolders
Returns a list of folders in the specified parent path and workspace. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. Requiredstart- Start indexcount- Number of results
Returns
FolderEntity[]- A list ofFolderEntity
Examples
Javascript
// List all folders from a workspace
eosAPI.Repository.GetFolders({
workspace: "Default",
path: ""
})
.then(function(response) {
var folders = response.obj;
})
__
UpdateFolder
Rename, copy or move folder EOS-P EOS-DA EOS-CCM EOS-CEM
PUT /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. RequiredfolderOperation- The operation to be performed on the folder, of typeFolderOperationEntity. RequiredPath- The new folder path. RequiredAction- The action to perform on folder. Can be rename, copy, move. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Rename a folder
eosAPI.Repository.UpdateFolder({
workspace: "Default",
path: "Folder",
folderOperation: {
Path: "New Folder",
Action: "rename"
}
})
.then(function(response) {
//folder renamed
})
__
DeleteFolder
Delete folder EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE /api/v2/folders
Parameters
workspace- Workspace name. Requiredpath- Folder path. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Repository.DeleteFolder({
workspace: "Default",
path: "Folder/Path"
})
.then(function(response) {
var folders = response.obj;
})
__
GetTags
Get tags associated with a repository item. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/files/tags
Parameters
workspace- Workspace name. Requiredpath- File or folder path. Required
Returns
TagEntity[]- The list of tagsName- Name of the tagValue- Value of the tag
Examples
HTTP
curl -X GET -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/files/tags?workspace=Default&path=Retail/Bookstore%20Invoice/Invoice.epr"
__
AddTag
Add a tag to the list of repository item tags. EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/files/tags
Parameters
workspace- Workspace name. Requiredpath- File or folder path. Requiredtag- The tag of typeTagEntityto be added. RequiredName- Name of the tag. RequiredValue- Value of the tag. Required
Returns
204 (No Content)- HTTP status code
Examples
HTTP
curl -H "Content-Type: application/json" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -X POST -d "{'Name':'Priority','Value':'High'}" "http://eos4.ecrion.com/api/v2/files/tags?workspace=Default&path=Retail/Bookstore%20Invoice/Invoice.epr"
__
RemoveTag
Removes a tag from the list of repository item tags. EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE /api/v2/files/tags
Parameters
workspace- Workspace name. Requiredpath- File or folder path. Requiredtag- The tag of typeTagEntityto be removed. RequiredName- Name of the tag. RequiredValue- Value of the tag. Required
Returns
204 (No Content)- HTTP status code
Examples
HTTP
curl -H "Content-Type: application/json" -X DELETE -d {"Name":"Priority","Value":"High"} -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/files/tags?workspace=Default&path=Retail/Bookstore%20Invoice/Invoice.epr"
Jobs
Methods:
Jobs.GetJobsJobs.LookupJobs.CreateJobJobs.RunJobJobs.GetJobJobs.DeleteJobJobs.GetJobInputJobs.DeleteJobInputJobs.DownloadJobInputJobs.UploadJobInputJobs.GetJobOutputJobs.DownloadJobOutputJobs.GetJobLogsJobs.CreateJobLog
Entities:
GetJobs
Returns a list of jobs from the specified workspace. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs
Parameters
type- Communication type- Allowed values:
Interactive,Batch,OnDemand
- Allowed values:
communication- Communication nameworkspace- Workspace namestatus- Job status- Allowed values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted
- Allowed values:
author- The user's username which created the job.start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Notes
You must provide at least one of these filters: Type, Communication or Workspace. Passing in multiple filters will not get a combined result.
Returns
JobEntity[]- A list ofJobEntity
Examples
Javascript
// Get latest 10 jobs from Default workspace
eosAPI.Jobs.GetJobs({
workspace: "Default",
count: 10
})
.then(function(response) {
var jobs = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/jobs?communication=NewLetter"
__
Lookup
Returns a list of jobs. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.6 or later
POST /api/v2/jobs/lookup
Parameters
request- Lookup jobs request parameters, of typeLookupJobsRequest. RequiredType- Communication type- Allowed values:
Interactive,Batch,OnDemand
- Allowed values:
Communication- Communication nameWorkspace- Workspace nameStatus- Job status- Allowed values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted
- Allowed values:
Author- The user's username which created the job.Tags- Job tags, a list ofTagEntity.Start- Start index- Default:
0
- Default:
Count- Number of results- Default:
Int32.MaxValue
- Default:
Notes
You must provide at least one of these filters: Type, Communication or Workspace. Passing in multiple filters will not get a combined result.
Returns
JobEntity[]- A list ofJobEntity
Examples
Javascript
// Get latest 10 jobs from Default workspace
eosAPI.Jobs.Lookup({
workspace: "Default",
count: 10
})
.then(function(response) {
var jobs = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" POST -d "{ 'Communication': 'NewLetter' }" "http://eos4.ecrion.com/api/v2/jobs/lookup"
__
CreateJob
Creates a new job in "WaitingForInput" state and returns it. EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/jobs
Parameters
job- Information about the new job, of typeJobRequestEntity. RequiredWorkflow- The workflow (.wk4 file) to create a job from. Either aWorkflowor aCommunicationis required.Workspace- The workspace name in which the workflow is located.Path- Workflow path.
Communication- The communication name to create job from. Either aWorkflowor aCommunicationis required.Parameters- A list ofJobParameter.Name- Parameter name.Value- Parameter value.
Tags- A list ofTagEntity. version 9.1.6 or later
Returns JobEntity
Id- Job idName- Job friendly nameAuthor- The user's username that started the jobStartDate- Date when job started (see Date Format).EndDate- Date when job ended (see Date Format).Duration- Duration of the job (see Duration Format).Progress- An integer between0and100indicating the progress percentage. A value of-1is returned if something went wrong while determining the progress.Status- Job current status- Allowed values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted
- Allowed values:
Workflow- File path of the workflow that was used to generate the job.Workspace- Job's workspace. Same as workflow's workspace.Communication- Communication nameType- Communication typeManualOutcome- Last manual step outcome executed in the workflow, e.g.Approved,RejectedCurrentStep- The current job step being executed, of typeJobStepEntity. If the job status isFinishedOKthis isnull.Id- Job step idName- Job step friendly nameType- The type of the job step. Possible values are:GetData,Render,Email,SMS,Print,Custom,WebRequest,If,ReviewDocument,ReviewSnapshot,Issue,Task,Merge,Tag,Archive,Decompress,CreateSnapshot,DeleteSnapshot,PublishSnapshot,Group,Append,RunWorkflow,CreateCommunication,CreateInteractiveDocument,Maintenance,ElectronicSignature,Overlay,CopyToFTP,CopyToEOSFolder,CopyToFolder,CopyToSharepoint,CopyToAmazonS3,PostToSocialMediaetc.TaskId- If this is a manual step (e.g.ReviewDocument,ReviewSnapshot,Issue,Task) it contains the id of the newly created task.
Examples
HTTP
curl -H "Content-Type: application/json" -X POST -d "{ 'Workflow': { 'Workspace':'Default', 'Path':'Design\\Telephone Invoice\Main.wk4'} }" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "https://eos4.ecrion.com/api/v2/jobs"
__
RunJob
Runs a job. The job will transition from "WaitingForInput" state. EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/jobs/{id}/run
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredsync- Iftrue, the api will not return until the job is finished
Returns
JobEntity- The updated job, inProcessingstate.
Examples
Javascript
eosAPI.Jobs.RunJob({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var job = response.obj;
})
__
GetJob
Finds a job by id. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs/{id}
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
Examples
Javascript
eosAPI.Jobs.GetJob({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var job = response.obj;
})
__
DeleteJob
Deletes a job by id. EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE /api/v2/jobs/{id}
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Jobs.DeleteJob({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var statusCode = response.status;
})
__
GetJobInput
Gets job's input file. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs/{id}/input
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
Examples
Javascript
eosAPI.Jobs.GetJobInput({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var file = response.obj;
})
__
DeleteJobInput
Deletes job's input file. EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE /api/v2/jobs/{id}/input
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Jobs.DeleteJobInput({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var statusCode = response.status;
})
__
DownloadJobInput
Downloads the job's input file. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs/{id}/input/content
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
binary data- File bytes
Examples
Javascript
eosAPI.Jobs.DownloadJobInput({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var content = response.data;
})
__
UploadJobInput
Uploads the job's input file bytes. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs/{id}/input/content
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredfile- File bytes. Required
Returns
204 (No Content)- HTTP status code
Examples
.NET
using (FileStream fsSource = new FileStream(@"C:\input.xml", FileMode.Open, FileAccess.Read))
{
JobsService jobs = new JobsService(eosUrl);
jobs.UploadJobInput("TOKEN:c87ca566-2587-4480-8a7a-27531f04af80", "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a", "Default", fsSource);
}
__
GetJobOutput
Gets job outputs. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs/{id}/output
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Required
Returns
FileEntity[]- A list ofFileEntity
Examples
Javascript
eosAPI.Jobs.GetJobOutput({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var files = response.obj;
})
__
DownloadJobOutput
Downloads a file zip file that archive a folder EOS repository. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/jobs/{id}/output/content
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. RequiredincludeInputs- Allowed values
true- The zip will contain all folders.false- The zip will include only the outputs in a flat folder.
- Default:
true
- Allowed values
Returns
binary data- the zip file
Examples
Javascript
eosAPI.Jobs.DownloadJobOutput({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var files = response.obj;
})
__
GetJobLogs
Gets the log messages of a job. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.3 or later
GET /api/v2/jobs/{id}/logs
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. Requiredstart- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
LogMessageEntity[]- A list ofLogMessageEntity
Examples
Javascript
eosAPI.Jobs.GetJobLogs({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default"
})
.then(function(response) {
var logMsgs = response.obj;
})
__
CreateJobLog
Logs a message for a specific job. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.3 or later
POST /api/v2/jobs/{id}/logs
Parameters
id- Job's id. Requiredworkspace- Job's workspace name. RequiredstepId- A job step id to associate the log message with.logMessage- The log message, of typeLogMessageRequestEntity. RequiredSeverity- The severity of the message. Required- Allowed Values:
DiagnosticTrace,Error,Information,None,Warning.
- Allowed Values:
Content- The log message content. Required
Returns
201 (Created)- HTTP status code
Examples
Javascript
eosAPI.Jobs.CreateJobLog({
id: "bd822d4e-2bf0-4010-a6b2-9fbaf1c3671a",
workspace: "Default",
logMessage: {
Severity: "Information",
Content: "This message should go to the job log"
}
})
.then(function(response) {
var httpCode = response.status;
})
__
JobStatus
WaitingForInput- job is created and it waits for an input (set by Jobs.CreateJob)Starting- a created job is queued for execution (set by Jobs.RunJob async)Processing- a job is executing (set by the job service when it actually starts the execution)WaitingForTask- a job which is executing is waiting for a task to transitionFinishedOK, FinishedWithErrors- a job finished executing (set by Jobs.RunJob sync)Aborted- a job was stopped explicitly by the user or by the service shut down
Resources
Methods:
Entities:
GetJobResourceToken
Returns the resource token associated with job. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.9 or later
GET /api/v2/resources/jobs
Parameters
id- Job idworkspace- Workspace name
Returns ResourceTokenEntity
AccessToken- Resource token ofstringtype
Use case
The returned AccessToken limits the access to the scope of the specified job. You can pass this limited resource token exactly as you would do with normal tokens. This can be useful in the particular cases of embedding DocumentEditor in external systems.
Examples
Javascript
eosAPI.Resources.GetJobResourceToken({
id: "008a5d3b-f414-4ee3-bc24-6e9021fccf95",
workspace: "Default",
})
.then(function(response) {
var jobResourceToken = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/resources/jobs?id=008a5d3b-f414-4ee3-bc24-6e9021fccf95&workspace=Default"
Distribution
EOS distributes the produced documents on various channels. Using this API you can inspect the email or print communication with your customers.
Distribution.GetEmailTicketsDistribution.GetEmailTicketDistribution.ResendEmailTicketDistribution.GetPrintTicketsDistribution.GetPrintTicketDistribution.ResendPrintTicketDistribution.GetTicketLogs
GetEmailTickets
Returns the list of tickets in email queues, optionally filtered by a queue name, ticket status, job status or job id. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/tickets/email
Parameters
queue- The queue name. If specified, the results will be filtered after the queue.- Default:
null
- Default:
status- The ticket status. If specified, the results will be filtered after the ticket status. You can specify multiple values using commas. Case insensitive.- Allowed Values:
Waiting,Processing,Failed,Sent,Suspended,Bounced,Delivered,Complained,Rejected,Read,Suspended - Default:
null
- Allowed Values:
job- The job id. If specified, the results will be filtered after the job.- Default:
null
- Default:
jobStatus- The job status. If specified, the results will be filtered after the job status. Case insensitive.- Allowed Values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted - Default:
null
- Allowed Values:
fields- A comma separated list of additional fields to be included.- Allowed Values:
content,tags,logs - Default:
null
- Allowed Values:
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
EmailTicketEntity[]- A list ofEmailTicketEntity
Examples
Javascript
eosAPI.Distribution.GetEmailTickets()
.then(function(response) {
var emailTickets = response.obj;
})
__
GetEmailTicket
Returns an email ticket by its id. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/tickets/email/{id}
Parameters
id- The id of the email ticket. Requiredfields- A comma separated list of additional fields to be included.- Allowed Values:
content,tags,logs - Default:
null
- Allowed Values:
Returns EmailTicketEntity
Id- A unique id to identify this ticketFrom- The sender email address.To- Recipient email address.Cc- Cc recipient email address.Bcc- Bcc recipient email address.Subject- Email subject.Attachments- List ofEmailAttachmentEntityName- The name of the attachment.Workspace- The workspace name in which the document is located in EOS repository.Path- The path to the document in EOS repository.
AttachmentsAsLinks- If this is true, the body uses links to the files instead of attaching them.Content- Email content, of typeEmailContentEntityIF asked forBody- The HTML email message body or the plain text email message body.IsHTML- Specifies if the email body is html or not.
Priority- The delivery priority- Allowed Values:
Now,High,Low, andNormal.
- Allowed Values:
Status- The status of the ticket- Allowed Values:
Failed,Processing,Delivered.
- Allowed Values:
StartDate- The date when the ticket was created (see Date Format).EndDate- The date when the ticket finished distributing (see Date Format).QueueName- The name of the queue this ticket is part of.JobId- The id of the job this ticket was generated from.Tags- List ofTicketTagEntityIF asked for. Otherwise it'snullName- Name of the tag.Value- Value of the tag.
Logs- List ofLogMessageEntityIF asked for. Otherwise it'snull
Examples
Javascript
eosAPI.Distribution.GetEmailTicket({
id: 1
})
.then(function(response) {
var emailTicket = response.obj;
})
__
ResendEmailTicket
Resends failed/bounced/complained/rejected/suspended email ticket with new to, cc, bcc or subject. EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/tickets/email/{id}/resend
Parameters
id- The id of the email ticket. Requiredrequest- Information about how to resend the ticket, of typeResendEmailTicketEntity. RequiredTo- The new recipient email address if specifiedCc- The new cc recipient email address if specifiedBcc- The new bcc recipient email address if specifiedSubject- The new email subject if specified
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Distribution.ResendEmailTicket({
id: 123,
request: {
"To": "newaddress@mailserver.com"
}
})
.then(function(response) {
var httpCode = response.status;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -H "Content-Type: application/json" -X POST -d "{'To': 'newaddress@mailserver.com'}" "http://eos4.ecrion.com/api/v2/distribution/email/tickets/123/resend"
__
GetPrintTickets
Returns the list of tickets in print queues, optionally filtered by a queue name, ticket status, job status or job id. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/tickets/print
Parameters
queue- The queue name. If specified, the results will be filtered after the queue.- Default:
null
- Default:
status- The ticket status. If specified, the results will be filtered after the ticket status. You can specify multiple values using commas. Case insensitive.- Allowed Values:
Waiting,Processing,Failed,Sent,Suspended - Default:
null
- Allowed Values:
job- The job id. If specified, the results will be filtered after the job.- Default:
null
- Default:
jobStatus- The job status. If specified, the results will be filtered after the job status. Case insensitive.- Allowed Values:
Starting,WaitingForInput,Processing,WaitingForTask,FinishedWithErrors,FinishedOK,Aborted - Default:
null
- Allowed Values:
fields- A comma separated list of additional fields to be included.- Allowed Values:
tags,logs - Default:
null
- Allowed Values:
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
PrintTicketEntity[]- A list ofPrintTicketEntity
Examples
Javascript
eosAPI.Distribution.GetPrintTickets()
.then(function(response) {
var emailTickets = response.obj;
})
__
GetPrintTicket
Returns a print ticket by its id. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/tickets/print/{id}
Parameters
id- A unique id to identify this ticket. Requiredfields- A comma separated list of additional fields to be included.- Allowed Values:
tags,logs - Default:
null
- Allowed Values:
Returns PrintTicketEntity
Id- A unique id to identify this ticket.Workspace- The workspace name in which the document is located in EOS repository.Path- The path to the document in EOS repository.PrinterName- The printer's name.InputTray- The input tray of the printer.ManualTray- If true, it uses the manual tray.PrinterMode- The printer mode * Allowed Values:Auto,SimplexorDuplex.Copies- The number of copies.ColorMode- Specify whether printing is in color or in monochrome mode.- Allowed Values:
Auto,ColororMonochrome.
- Allowed Values:
Orientation- Specify whether documents are printed in portrait or landscape mode- Allowed Values:
Auto,PortraitorLandscape.
- Allowed Values:
Priority- The delivery priority- Allowed Values:
Now,High,Low, andNormal.
- Allowed Values:
Status- The status of the ticket- Allowed Values:
Failed,Processing,Delivered.
- Allowed Values:
StartDate- The date when the ticket was created (see Date Format).EndDate- The date when the ticket finished distributing (see Date Format).QueueName- The name of the queue this ticket is part of.JobId- The id of the job this ticket was generated from.Tags- List ofTicketTagEntityIF asked for. Otherwise it'snullName- Name of the tag.Value- Value of the tag.
Logs- List ofLogMessageEntityIF asked for. Otherwise it'snull
Examples
Javascript
eosAPI.Distribution.GetPrintTicket({
id: 234
})
.then(function(response) {
var emailTicket = response.obj;
})
__
ResendPrintTicket
Resends failed/suspended print ticket with new printer name. EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/tickets/print/{id}/resend
Parameters
id- The id of the print ticket. Requiredrequest- Information about how to resend the ticket, of typeResendPrintTicketEntity. RequiredPrinterName- The new printer name if specified
Returns
204 (No Content)- HTTP status code
Examples
Javascript
eosAPI.Distribution.ResendPrintTicket({
id: 234,
request: {
"PrinterName": "SV_PRNTR2"
}
})
.then(function(response) {
var httpCode = response.status;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" -H "Content-Type: application/json" -X POST -d "{'PrinterName': 'SV_PRNTR2'}" "http://eos4.ecrion.com/api/v2/distribution/print/tickets/234/resend"
__
GetTicketLogs
Returns the list of logs in the email or print ticket. EOS-P EOS-DA EOS-CCM EOS-CEM
GET /api/v2/tickets/{id}/logs
Parameters
id- The ticket it. Requiredstart- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns LogMessageEntity[]
Severity- The severity of the message.- Allowed Values:
DiagnosticTrace,Error,Information,None,Warning.
- Allowed Values:
Content- The log message content.CreatedDate- The date when the message was logged (see Date Format).
Examples
Javascript
eosAPI.Distribution.GetTicketLogs({
id: 1
})
.then(function(response) {
var logs = response.obj;
})
Security
EOS has the ability to give multiple users access to the system. Permissions are methods to protect users from each other. The system uses groups as a way to organize users, primarily as a security measure.
Methods:
Security.GetUsersSecurity.CreateUserSecurity.GetUserSecurity.UpdateUserSecurity.DeleteUserSecurity.GetGroupsSecurity.CreateGroupSecurity.GetGroupSecurity.UpdateGroupSecurity.DeleteGroupSecurity.GetPortalUsersSecurity.CreatePortalUserSecurity.GetPortalUserSecurity.DeletePortalUser
Entities:
UserRequestEntityUserEntityGroupRequestEntityGroupEntityPermissionsEntityPortalUserRequestEntityPortalUserEntity
GetUsers
Returns the list of users from the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/users
Parameters
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
UserEntity[]- A list ofUserEntity
Examples
Javascript
// List all users in the current environment
eosAPI.Security.GetUsers()
.then(function(response) {
var users = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users"
__
CreateUser
Creates a new user in the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM
POST api/v2/users
Note: The authenticated user must have permission to manage the environment.
Parameters
userof typeUserRequestEntity. RequiredUserName- The username of the user. This needs to be unique and it is used to log in. If not specified, the email will be used as username.Email- The user's email address. RequiredPassword- The user's password. If this is null the server will auto generate a password.FirstName- The user's first name.LastName- The user's last name.Job- Describes user's job title or position.Phone- The user's phone number.AuthenticationMethod- Which authentication method the user is using.- Allowed values:
domain,default.
- Allowed values:
GroupsIds- A list of ids of the groups for the user to join. If the current authenticated user can't manage the environment this field is ignored.Permissions- Permissions explicitly granted to the user (see Permissions). If the current authenticated user can't manage the environment this field is ignored.Disabled- Iftrue, the user can't log in the environment.- Allowed values:
true,false. - Default:
false.
- Allowed values:
Returns UserEntity
Id- The id of the user account. This id is unique.UserName- The username of the user. This is unique and it is used to log in.FullName- The user's full name. This is determined based on first and last name.FirstName- The user's first name.LastName- The user's last name.Email- The user's email address.Job- Describes user's job title or position.Phone- The user's phone number.LastLogInDate- The date when the user last logged in (see Date Format) or0001-01-01T00:00:00+00:00if the user never logged in.AuthenticationMethod- Which authentication method the user is using.- Allowed values:
domain,default.
- Allowed values:
Permissions- Permissions explicitly granted to the user (see Permissions).Groups- The groups the user is member of. List ofUserGroupEntityId- The id of the group. This id is unique.Name- Name of the group.
Examples
Javascript
eosAPI.Security.CreateUser({
user: {
Email: "test@test.com"
}
})
.then(function(response) {
var user = response.obj;
})
HTTP
curl -H "Content-Type: application/json" -X POST -d "{'Email': 'user@company.com'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users"
__
GetUser
Returns a users by its id from the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/users/{id}
Parameters
id- The id of the user account. Required
Returns
Examples
Javascript
// Get the user with id=123 from the current environment
eosAPI.Security.GetUser({
id: 123
})
.then(function(response) {
var user = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users/123"
__
UpdateUser
Updates a user with the provided information. EOS-P EOS-DA EOS-CCM EOS-CEM
PUT api/v2/users/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The user's id. Requireduser- The user information to be updated, of typeUserRequestEntity. RequiredUserName- The username of the user. This needs to be unique and it is used to log in. If not specified, the email will be used as username.Email- The user's email address.Password- The user's password. If this is null the server will auto generate a password.FirstName- The user's first name.LastName- The user's last name.Job- Describes user's job title or position.Phone- The user's phone number.AuthenticationMethod- Which authentication method the user is using.- Allowed values:
domain,default.
- Allowed values:
GroupsIds- A list of ids of the groups for the user to join. If the current authenticated user can't manage the environment this field is ignored.Permissions- Permissions explicitly granted to the user (see Permissions). If the current authenticated user can't manage the environment this field is ignored.Disabled- Iftrue, the user can't log in the environment.- Allowed values:
true,false. - Default:
false.
- Allowed values:
Returns
UserEntity- The updated user
Examples
Javascript
// Change user's password
eosAPI.Security.UpdateUser({
id: 75,
user: {
Password: "n3wp@$$w0rd"
}
})
.then(function(response) {
var statusCode = response.status;
})
HTTP
curl -H "Content-Type: application/json" -X PUT -d {"LastName":"My new name"} -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users/2"
__
DeleteUser
Deletes a user by id. EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE api/v2/users/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The user's id. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Delete the user with id=75
eosAPI.Security.DeleteUser({
id: 75
})
.then(function(response) {
var statusCode = response.status;
})
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/users/1"
__
GetGroups
Returns the list of groups in the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/groups
Parameters
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
fields- A comma separated list of additional fields to be included.- Allowed values:
users - Default:
null
- Allowed values:
Returns
GroupEntity[]- A list ofGroupEntity
Examples
Javascript
// List all groups in the current environment
eosAPI.Security.GetGroups()
.then(function(response) {
var groups = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups"
__
CreateGroup
Creates a new group in the current environment. If provided, the permissions and users will be attached to the group. EOS-P EOS-DA EOS-CCM EOS-CEM
POST api/v2/groups
Note: The authenticated user must have permission to manage the environment.
Parameters
groupof typeGroupRequestEntity. RequiredName- Name of the group. RequiredPermissions- Permissions granted to the group. Users part of this group with no explicit permissions defined will inherit these permissions. If the current authenticated user can't manage the environment this field is ignored. (see Permissions)UsersIds- The users ids which are part of the group. This field is ignored if it'snull.
Returns GroupEntity
Id- The id of the group. This id is unique.Name- The Name of the groupPermissions- Describes the group's permissions (see Permissions).UsersIds- The users ids which are part of the groupUsers- List ofUserEntitywhich are part of this group IF asked for. Otherwise it'snull.
Examples
Javascript
eosAPI.Security.CreateGroup({
group: {
Name: "Sales",
UserIds: [1, 2, 3, 4, 5]
}
})
.then(function(response) {
var group = response.obj;
})
HTTP
curl -H "Content-Type: application/json" -X POST -d "{'Name':'Marketing','Permissions':[{'Workspace':'Default','Access':false,'Manage':false}],'Users':[]}" -u token: "http://eos4.ecrion.com/api/v2/groups"
__
GetGroup
Returns a group by its id from the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/groups/{id}
Parameters
id- The id of the group. Requiredfields- A comma separated list of additional fields to be included.- Allowed values:
users - Default:
null
- Allowed values:
Returns
Examples
Javascript
// Get the group with id=23 from the current environment
eosAPI.Security.GetGroup({
id: 23,
fields: "users"
})
.then(function(response) {
var group = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups/23"
__
UpdateGroup
Updates a group with the provided information. Can be used to rename the group, change group permissions and add/remove users. EOS-P EOS-DA EOS-CCM EOS-CEM
PUT api/v2/groups/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The user's id. Requiredgroup- The group information to be updated, of typeGroupRequestEntity. RequiredName- Name of the group.Permissions- Permissions granted to the group. Users part of this group with no explicit permissions defined will inherit these permissions. If the current authenticated user can't manage the environment this field is ignored. (see Permissions)UsersIds- The users ids which are part of the group. This field is ignored if it'snull.
Returns
GroupEntity- The updated group
Examples
Javascript
// Change user's password
eosAPI.Security.UpdateGroup({
id: 75,
group: {
name: "US Sales"
}
})
.then(function(response) {
var statusCode = response.status;
})
HTTP
curl -H "Content-Type: application/json" -X PUT -d {"name":"US Sales"} -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups/2"
__
DeleteGroup
Deletes a group by id. EOS-P EOS-DA EOS-CCM EOS-CEM
DELETE api/v2/groups/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The group's id. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Delete the group with id=2
eosAPI.Security.DeleteGroup({
id: 2
})
.then(function(response) {
var statusCode = response.status;
})
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/groups/2"
__
Permissions
Permissions can be granted to users and groups on both environment and workspace level.
PermissionsEntity- Permissions explicitly granted to the user or the group. If the user is also part of a group, both group permissions and explicit user permission are considered when authorizing.EnvironmentPermissions- Describes the user's or group's permissions in the environment, of typeEnvironmentPermissionsEntity.ManagePortal- Allowed values
true- The user or group can manage the Portal Website. This includes changing how the Portal looks and managing Portal users.false- The permission flag is not set
- Allowed values
ManageEnvironment- Allowed values
true- The user or group can manage the current environment. This will override all other permissions totrue, including workspace permissions.false- The permission flag is not set
- Allowed values
WorkspacePermissions[]- Describes the user's or group's permissions in the workspaces, of typeWorkspacePermissionsEntity[]Workspace- The current workspace name for which the permissions are enumeratedAccessWorkspace- Allowed values
true- The user can access the current workspace.false- The permission flag is not set
- Allowed values
ManageWorkspace- Allowed values
true- The user can manage the current workspace. This also implies access to the workspace.false- The permission flag is not set.
- Allowed values
__
GetPortalUsers
Returns the list of portal users from the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.8 or later
GET api/v2/portal/users
Parameters
start- Start index- Default:
0
- Default:
count- Number of results- Default:
Int32.MaxValue
- Default:
Returns
PortalUserEntity[]- A list ofPortalUserEntity
Examples
Javascript
// List all portal users in the current environment
eosAPI.Security.GetPortalUsers()
.then(function(response) {
var portalUsers = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users"
__
CreatePortalUser
Creates a new portal user in the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.8 or later
POST api/v2/portal/users
Note: The authenticated user must have permission to manage the environment.
Parameters
userof typePortalUserRequestEntity. RequiredUserName- The username of the portal user. This needs to be unique and it is used to log in. RequiredPassword- The user's password. RequiredContactSynchronizationId- Unique identifier of this contact in an external system used for synchronization purposes. For example, if EOS is synchronized with Salesforce, this field would be the contact or lead id.ContactProperties- Additional properties to set on the contact that is automatically created and associated with the portal user.
Returns PortalUserEntity
Id- The id of the portal user account. This id is unique.UserName- The username of the portal user. This is used to log in.Email- The email of the portal user. This is computed based on the associated contact.DisplayName- The display name of the portal user. This is computed based on the associated contact.Contact- The contact associated with the portal user, of typeContactEntityId- The id of the contact. This id is unique.SynchronizationId- Unique identifier of this contact in an external system used for synchronization purposes. For example, if EOS is synchronized with Salesforce, this field would be the contact or lead id.Properties- The properties of the contact.
Examples
Javascript
eosAPI.Security.CreatePortalUser({
user: {
UserName: "portal.username",
Password: "p0rt@l.p@$$w0rd"
}
})
.then(function(response) {
var portalUser = response.obj;
})
HTTP
curl -H "Content-Type: application/json" -X POST -d "{'UserName': 'portal.username','Password': 'p0rt@l.p@ssw0rd'}" -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users"
__
GetPortalUser
Returns a portal users by its id from the current environment. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.8 or later
GET api/v2/portal/users/{id}
Parameters
id- The id of the portal user account. Required
Returns
Examples
Javascript
// Get the portal user with id=123 from the current environment
eosAPI.Security.GetPortalUser({
id: 123
})
.then(function(response) {
var portalUser = response.obj;
})
HTTP
curl -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users/123"
__
DeletePortalUser
Deletes a portal user by id. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.8 or later
DELETE api/v2/portal/users/{id}
Note: The authenticated user must have permission to manage the environment.
Parameters
id- The portal user's id. Required
Returns
204 (No Content)- HTTP status code
Examples
Javascript
// Delete the portal user with id=12
eosAPI.Security.DeletePortalUser({
id: 12
})
.then(function(response) {
var statusCode = response.status;
})
HTTP
curl -X DELETE -u "TOKEN:c87ca566-2587-4480-8a7a-27531f04af80:" "http://eos4.ecrion.com/api/v2/portal/users/12"
Portal API Reference
Available starting with version 9.1.3
This Portal API reference is organized by services and resource type. Each service groups similar resources together and has one or more methods that changes these resources. All HTTP routes are relative to Portal Website base URI, e.g. api/v2/token refers to https://eos4portal.ecrion.com/api/v2/token.
Authorization
GetToken
Generates a session token. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/token
To generate a session token, call this method and supply the user credentials (case sensitive) and environment name.
The response contains a session token that needs to be passed via Authorization header using Basic <sessionTokenInbase64> format in order to authorize a generic endpoint.
If you're using our Javascript, .NET or Java client API this process is simplified.
Parameters
Authorization- User credentials (<portalusername>:<password>). Requiredenvironment- Environment name. Required
Returns TokenEntity
AccessToken- Session token ofstringtype
Examples
.NET
string credentials = "portaluser:portalpassword";
AuthorizationService authSvc = new AuthorizationService("https://eos4portal.ecrion.com/");
string sessionToken = authService.GetToken(credentials, "Test").AccessToken;
__
DeleteToken
Delete a specific session token. EOS-P EOS-DA EOS-CCM EOS-CEM version 9.1.4 or later
DELETE api/v2/token
Parameters
accessToken- TheTokenEntity.AccessTokenof typestringto delete on the server.
Returns
204 (No Content)- HTTP status code
Examples
.NET
AuthorizationService authSvc = new AuthorizationService("https://eos4portal.ecrion.com/");
string sessionToken = authService.GetToken(apiKey).AccessToken;
authService.DeleteToken(sessionToken);
HTTP
curl -X DELETE "https://eos4portal.ecrion.com/api/v2/token?accessToken=PORTAL:c87ca566-2587-4480-8a7a-27531f04af80"
__
GetTokenSSO
Generates a session token based on a SAML assertion or WS Federation Message EOS-P EOS-DA EOS-CCM EOS-CEM
POST /api/v2/token/sso
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Message.environment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
__
SAML Assertion Consumer
Consumes a SAML Assertion Response. Also known as Assertion Consumer Service (ACS) EOS-P EOS-DA EOS-CCM EOS-CEM
POST /Security/ConsumeSAMLToken
When configuring IdPs, use an absolute path, pointing to the right domain and port of the EOS Portal Website. This endpoint does not have a SDK method associated.
Parameters are sent using form data:
SAMLResponse- Used in SAML 2.0. Contains the SAML xml in base64.wresult- Used in WS Federation Messageenvironment- The environment name. Optional if it can be autodetected. If no value is provided the system tries to obtain the value based on the Request URI, for e.g. if the environment is mapped to a subdomain. This is a query parameter (present in the URI).
You must provide SAMLResponse or wresult.
Returns
- Redirects the authenticated user to the Portal homepage.
Examples
Salesforce as IdP
This fills the ACS URL field in the Salesforce configuration:
http://eos4portal.ecrion.com/Security/ConsumeSAMLToken
Communications
RunCommunication
Runs a communication job. EOS-P EOS-DA EOS-CCM EOS-CEM
GET api/v2/communications
Parameters
communicationName- Communication name; must be shared with the user. Required
Returns
binary data- The communication job output
The endpoint will wait for the job to finish and return any rendered files. If the job output consists of more than one file, a ZIP archive will be returned.
Examples
.NET
CommunicationsService commSvc = new CommunicationsService("https://eos4portal.ecrion.com/");
Stream output = commSvc.RunCommunication(sessionToken, "Telephone Invoice");
Single Sign-On (SSO)
This section describes the SAML instance where EOS is the service provider (SP) and uses 3rd party identity providers (IdP).
Set up
This set up applies to both Enterprise and Portal Websites.
To set up EOS service provider SAML with 3rd party IdPs, step through the following process:
- Access the Sysadmin Website. Login as a sysadmin and go to Environments and select the environment you want to enable SSO for.
- Select SSO or Portal SSO based on which website you want to enable SSO for and click Configure SSO button.
- Select SAML 2.0 as SSO Type.
- Enter the IdP Login URL to setup IdP (identity provider). Use HTTPS. The Login Url is used when a user attempts to login. EOS triggers a redirect to the URL and expects a POST request with the SAML Assertion Response on the SAML Assertion Consumer endpoint,
/Security/ConsumeSAMLToken. In response, the EOS service provider produces an EOS access token for the assertion subject and redirects the now authenticated user to EOS homepage. - Provide the X.509 public key certificate in PEM format from the IdP. This establishes a trust relationship between the SP and the IdP. During runtime EOS uses the certificate to validate that the digital signature originated from the IdP.
- Optionally, you can provide a Logout URL.
Portal
EOS uses the information asserted in the SAML Assertion to identify the portal user. Additionally, EOS can keep certain parameters up to date, for e.g. updating the last name of the portal user in EOS service provider by reading the SAML Assertion last name attribute received from the IdP.
To enable this behavior, you can map parameters to be linked with certain EOS portal user fields when you setup SSO.
Creating EOS Portal Users on the fly
If the SAML assertion subject is not associated with any EOS portal user then the EOS service provider will create a portal user.
Using SSO API
In some scenarios you might not want to use the URL redirection behavior provided by the SAML Assertion Consumer endpoint.
For e.g., if you want to use SSO in a backend to backend system to obtain a session token in order to produce documents for a certain user.
In this case, use Authorization.GetTokenSSO endpoint and pass the SAML Assertion to get an EOS enterprise/portal session token which can be used throughout the Enterprise/Portal API.