SlideShare una empresa de Scribd logo
1 de 67
Harmony API
Developers documentation

Version 2.2
Overview
• Harmony exposes all its functionality as a set
of web services.
• JSON is the format of the messages, HTTPS is
the transport.
• Basic authentication is used to authenticate
all API calls or a token provided when user
has previously logged in.
• All web services have a single end-point:
– https://<domainname>/handler.yaws - when
used with security token
– https://<domainname>/ws/handler.yaws –
when used with basic authentication
Message and response format
• An API call consists of URL parameters.
These parameters can be simple strings
or JSON formatted structures
• A response of an API call is always
returned as JSON object. If it contains
“exception” property, the call was
unsuccessful. The lack of exception
property signifies the success of the API
call.
Exceptions
•
•

The returned JSON object contains the exception property
{exception, <exception_type>} and possibly some other information
Here is a list of the exceptions Harmony can return:

– not_authenticated : user is not authenticated to make this
call
– not_authorized: user is not authorized to perform the
specified action
– dialog_already_submitted – has also dialog_id and key
– dialog_withdrawn– has also dialog_id and key
– search_query_invalid
– key_not_found
– dialog_name_not_found
– harmony_down – Harmony is not responding
– improper_event_format
– no_facts_or_ref_objects
– no_event_name
– event_not_found
– unkown_facts
Required parameters
• message - determines the operation
of the web service to be executed;
should appear in every API call
• token - security token – not needed
for all messages; only required when
using “token” authentication; not
required when using basic
authentication.
Types of messages
• Based on the authentication state of
the user
– (0) When no configuration is uploaded
– (1) When user is not authenticated
– (2) When config is uploaded and user is
authenticated
– (3) If user is member of the Admin group
0. No config API calls
• When no configuration is uploaded, only
these 3 calls are allowed:
– get_all_lucidchart_diagrams
– get_lucidchart_diagram
– create_empty_config

• For all other API calls, Harmony would return
{exception, no_config}
• If configuration is present but still one of
these three calls are performed, Harmony
will return no_token, not_authenticated or
config_present exception depending whether
the user is already authenticated or not.
No config API calls
get_all_lucidchart_diagrams
• Description: This call will ask Harmony
to start a OAuth communication with
LucidChart.com for retrieving the user’s
diagrams.
• Input parameters:
– No additional parameters other than the
default “message”

• Response: The URL to redirect the
browser to. This is the OAuth page of
LicidChart.com Web service where the
user should enter the credentials.
get_all_lucidchart_diagrams
get_lucidchart_diagram
• Description: This call will ask Harmony to start a OAuth
communication with LucidChart.com for retrieving a specific
user diagram. If successful, the diagram will be converted to
Harmony’s configuration. Then Harmony will start a OAuth
communication with Google. After receiving permission, a
new spreadsheet document with the same name as the
diagram will be generated in the user’s Google account. The
configuration will be uploaded to Harmony and will populate
the spreadsheet.
• Input parameters:
– diagram_id – the LucidChart.com identification of the diagram.

• Response: The URL to redirect the browser to. This is the
OAuth page of LicidChart.com Web service where the user
should enter the credentials.
get_lucidchart_diagram
create_empty_config
• Description: With this API call, Harmony will start a
OAuth communication with Google. After receiving
permission, a new spreadsheet document with the
supplied name will be generated in the user’s Google
account. The configuration will be uploaded to
Harmony. This configuration contains an example dialog
“test dialog” and an example rule.
• Input parameters:
– config_name – the name of the Google spreadsheet that
will be created.

• Response: The URL to redirect the browser to. This is
the OAuth page of Google documents .Web service
where the user should enter the credentials.
create_empty_config
1. Not authenticated API calls
• Two calls are allowed when (a) user is
not authenticated, but (b) there is a
configuration uploaded:
– get_public_token
– login

• All other calls will fail with
{exception, not_authenticated} or
{exception, no_token}
get_public_token
• Description: This call will try to get a
public token for accessing the public
resources Harmony provides. This is
usually done on page load. Note that if
there are no public resources, Harmony
will return
{exception, not_authenticated}.
• Input parameters:
– No additional parameters required.

• Response: JSON object, containing:
– token – the newly generated public token
get_public_token
login
•

•

Description: Sent when user tries to authenticate. Harmony supports
four forms of authentication: through OpenID (for Yahoo!, Aol or any
other OpenID provider); through Facebook’s connect protocol; through
OAuth for authentication with Twitter, Google and LinkedIn; and through
the LDAP protocol.
Input parameters
– method– a predefined set of allowed methods:
•
•
•
•
•
•
•

google
facebook
yahoo
aol
twitter
linkedin
opened
–

•

url – specifies the url of the OpenID provider

ldap
–
–

user
password

– request_page – the encoded URL of the page the user was on and where Harmony
will redirect after successful login

•

Response: For LDAP authentication, the token is returned.
Otherwise, the user is redirected to the appropriate authentication page.
Then the user is returned to “request_page” and the token is embedded
in the URL as param.
login
2. User authenticated API calls
• These API calls expect a token param
to be present. If no token is
provided, {exception, no_token} is
returned without further attempt to
check the API call.
logout
• Description: Sent with request to
logout the currently logged in user.
The user’s token will be invalidated.
• Input parameters: Default parameters
only
• Result: the token will be invalidated
logout
get_dialog_names
• Description: Retrieves the list of business events. They
are all represented as dialogs. The result is an array of
business event names. The name can then be used to
retrieve the event definition for example. Can also
contain the dialog title – what should be presented to
the end user. Read-only operation.
• Input parameters: Default parameters only.
• Response: JSON array “dialog_names” containing JSON
objects with properties:
– name – this should be used in further API calls to identify
this particular dialog
– title – a title to display to the user (might be missing). It
is language dependent.

• Possible exceptions: not_authenticated
get_dialog_names
get_work_items
• Description: Retrieves all outstanding work items (dialogs)
from all work queues. Read-only operation.
• Input parameters: Default parameters only.
• Response: JSON array “work_items” containing JSON objects
with properties:
– case_id - the Case ID to which each work items belongs to;
– dialog_id - each dialog instance has a unique identifier;
– dialog_name - matches one of the business event names
retrieved with a get_dialog_names call;
– queue - the work queue name, can be either a user or a group
work queue;
– index - information from the case is indexed and displayed for
reference, in the example it is the relatie name;
– dialog_title – optional, the title of the dialog that should be
displayed to the user

• Possible exceptions: not_authenticated, not_authorized
get_work_items
get_case_ids
• Description: Requests the case ids of all
the cases. Used when there is an item of
type “case_id” so to fill the select with
the returned keys. Read only operation.
• Input parameters: Default parameters
only
• Result: JSON array “case_ids” containing
strings.
• Possible exceptions: not_authenticated
get_case_ids
submit_dialog
•

•

Description: Once all values in a dialog are filled-in by the user, the dialog is
submitted to Harmony. Harmony will then execute all business rules related and
will enrich the case data for the case. This is an operation that changes data and
state. Write only operation.
Input parameters
–
–

Default parameters
payload - contains the message payload, in this case, the contents of the dialog to be
submitted to Harmony
•
•
•
•

dialog_name
dialog_id
case_id
facts
–
–
–

•
•

concept
attrib
value

Result: {success: true} or exception
Possible exceptions:
not_authenticated, not_authorized, improper_event_format, no_facts_or_ref_ob
jects, no_event_name, event_not_found, unkown_facts, dialog_withdrawn, dialo
g_already_submitted
submit_dialog
submit_for_predictions
• Description: Used to send data the
moment the user enters it so to show
prediction from the firing of rules. Write
only operation.
• Input parameters:
– Default parameters;
– payload – in the same format as with
submit_event

• Result: {success: true} or exception
• Possible exceptions:
– same as submit_event call
submit_for_predictions
get_predictions
• Description: After a “submit_for_predictions”
call, get_predictions is sent to collect the
outcome of the predict data. Read only
operation.
• Input parameters:
– Default parameters
– case_id – identifies the case we want to get
prediction for

• Result: JSON object
– case_id – identifies the case the data belongs to
– facts – JSON array of facts – see Facts array slide

• Possible exceptions:
not_authenticated, not_authorized
get_predictions
get_dialog
•
•

Description: Retrieves the definition of the business event, as well as all the related case data
for it . Read-only operation.
Input parameters:
–
–
–
–

•

Default parameters
name - the name of the event, from a call to get_dialog_names.
case_id – (optional) the case id, as retrieved with a call to get_work_items. If it is not present, only the
dialog definition will be retrieved without any preloaded data.
dialog_id – (optional) needed for retrieving outstanding work item (together with case_id)

Response: JSON object:
–
–

name – the name of the dialog
contents – JSON array of dialog items
-

•

concept – first part of the name of the dialog item
attrib – second part of the name of the dialog item
type - the dialog item type;
ext - in case the type is multiple_choice, the variable contains the list of possible options;
value - "undefined" means that the values is still not set for this case;
can_override - if "yes", the item can be overridden by the user (by default once a pair has a value, it is
disabled and cannot be changed);
lookup – whether the item is a key of a reference data
lookup_source – where to look for the corresponding reference date
required – whether this dialog item is required to be filled in;
initial_state – whether the item should be initially hidden
description – a description of the item, presented instead of the c/a pair

Possible exceptions:
not_authenticated, not_authorized, dialog_withdrawn, dialog_already_submitted, dialog_na
me_not_found, key_not_found
get_dialog
get_case_data
• Description: Retrieves all case data for the case. Readonly operation. Note that it returns a list because all
children will be returned in separate objects.
• Input parameters
– Default parameters
– case_id - determines the case for which case data will be
retrieved;

• Response: JSON array of JSON objects containing:
– case_id - determines the case for which case data is
retrieved
– facts – JSON array – see Facts array slide

• Possible exceptions:
not_authenticated, not_authorized, key_not_found
get_case_data
get_case_history
•
•

Description: Retrieves history for a specific case. Read only
operation.
Input parameters:
– Default parameters
– case_id – identifies the case we want to get history for

•

Result: the JSON object “case_history” containing JSON array of
JSON objects with properties:
–
–
–
–
–

case_id – case identifier
dialog_id – internal event reference number
dialog_name – the name of the dialog
queue – who must handle the dialog (or already did)
because – reason why the dialog was asserted. this is an object. same as in
fact object
– asserted_on – (optional) when the dialog was asserted
– done_on – (optional) when the dialog was submitted
– who – (optional) – submitted by who

•

Possible exceptions: not_authenticated, not_authorized
get_case_history
get_facts_for_history_record
• Description: Retrieves the facts that where
submitted with a specific dialog. Read only
operation.
• Input parameters:
– Default parameters
– case_id – identifies the case
– dialog_id – identifies the dialog that submitted the
facts

• Result: the JSON object “facts” containing JSON
array of JSON objects with properties same as
described in Facts array slide
• Possible exceptions:
not_authenticated, not_authorized
get_facts_for_history_record
search
• Description: Searches for criteria in the submitted data.
Read only operation.
• Input parameters:
– Default parameters
– criteria – the search criteria

• Result: JSON object:
– criteria – the search criteria
– hits – how many results we have in the array
– time_it_took – the milliseconds needed for lucene to find
the data
– results – JSON array of JSON objects:
• case_id – identifies the hit is for which case
• text – the text that contains the hit
• score – lucene score of how close the match is to the creteria

• Possible exceptions: not_authenticated
search
get_meta_info
• Description: Gets information for the
currently logged in user and the uploaded
configuration. Read only operation.
• Input parameters: Default parameters only
• Result JSON object:
–
–
–
–

name – as defined in Excel configuration
username – as defined in Excel configuration
email – as defined in Excel configuration
groups – the groups the user belongs to

• Possible exceptions: not_authenticated
get_meta_info
test_predictions
• Description: submits facts to Harmony and
gets the predictions (outcomes) of the fired
rules. The original facts are also
returned, e.g. the whole case data.
• Input parameters:
– facts: JSON array containing fact objects. same
as get_predictions

• Result JSON object: same as the result from
get_predictions. Note that case_id will be
equal to “test_outcome” for every call.
• Possible exceptions: not_authenticated
test_predictions
get_reference_data
•

•

Description: searches for “term” in the reference data, specified in “concept” and
“attrib”. The results are returned and should be shown to the user to choose from
them.
Input parameters:
–
–
–
–
–
–

•

concept – the concept of the reference key item for which we perform the search. This
corresponds to the name of the reference object
attrib – the attribute of the reference key item for which we perform the search. This
corresponds to the name of the reference key.
case_id – context param – the case id of the current case
dialog_id – context param – the dialog id of the current dialog (on which the dialog item
(reference key) is present)
dialog_name – context param – the name of the current dialog (on which the dialog
item (reference key) is present)
term – the search term

Result JSON object “reference_data” with the following properties:
–
–

object – the name of the reference object. the same as “concept” param
keys – an array of the matches reference keys
•
•
•

name – the name of the reference key. same for each result. same as “attrib” param
value
attributes – an array of reference attributes corresponding to this reference key
–
–

•

name
value

Possible exceptions: not_authenticated
get_reference_data
get_correlation_data
•
•
•

Description: this API call tries to find a case that contains the
“term” in a “concept” / “attrib” pair. This way we can switch the
case we are working on.
Input parameters: same as in get_reference_data
Result JSON object “correlation_data” with the following:
– typed_key – an object, represents the dialog item the user typed in
•
•
•

concept
attrib
value

– additional_parts – an array of objects of form typed_key if the
correlation_key is made of multiple parts
– filled_items – an array, dialog items that have values in the case we are
switching to
•
•
•

concept
attrib
value

– case_id – the case id we have to switch context to

•

Possible exceptions: not_authenticated
get_correlation_data
Facts array of JSON objects
• Returned by get_predictions.
• Each element contains the following properties:
–
–
–
–
–

concept
attrib
value
queue (optional)
because (optional)
•
•
•
•

concept
attrib
op
value

– is_ref
3. Admin user API calls
• If user is authenticated and is member of the
Admin group, the following API calls are allowed
to be performed.
–
–
–
–
–
–
–

flush
get_config
get_version
get_reference_objects_names
get_reference_object
ref_attrib_update
ref_key_update

• If these calls are tried from a user who doesn’t
belong to the Admin group, Harmony will return
{exception, not_authorized}
flush
• Description: Flushes the loaded
configuration.
• Input parameters: only the default
ones
• Result: {success, true} or exception
• Possible exceptions:
not_authenticated, not_authorized
flush
get_config
• Description: Returns XML
representation of the uploaded
configuration.
• Input parameters: only the default
ones
• Result: XML of the configuration
• Possible exceptions:
not_authenticated, not_authorized
get_version
• Description: Retrieves the configuration version.
It is visible in the Google spreadsheet, under
Config sheet. This version is also inserted in a
new case when it is created. When the
configuration is updated and uploaded to
Harmony, Harmony increments the version
number if it detects changes in the rules and
dialogs.
• Input parameters: only the default ones
• Result: {config_version: N} – N is the version
number
• Possible exceptions:
not_authenticated, not_authorized
get_version
get_reference_objects_names
• Description: Retrieves the names of the
reference objects found in the currently
uploaded configuration.
• Input parameters: only the default ones
• Result: JSON object with property
“reference_objects_names” that is a
JSON array containing string names of
reference objects.
• Possible exceptions:
not_authenticated, not_authorized
get_reference_objects_names
get_reference_object
• Description: Retrieves a whole reference object, all its keys
and attributes.
• Input parameters:
– name – the reference object name to retrieve

• Result: A JSON object containing the following properties:
– possibleAttributes – an array of objects with a single property
“name”. These are the possible attributes a reference object
can contain. Note that not all keys will have all attributes.
– keyName – the reference key name
– object – the name of the reference object – sent in the name
parameter
– keys – the reference keys as described in get_reference_data
API call

• Possible exceptions:
not_authenticated, not_authorized, ref_object_not_found
ref_attrib_update
• Description: Updates a single reference attribute for a
particular reference key. The update is propagated to
the source of the reference data, e.g. Google
spreadsheet.
• Input parameters:
– object_name – the name of the reference object
– key_val – the value of the reference key the updating
reference attribute is member of
– attrib_name – the name of the updating reference
attribute
– new_val – the new value for the reference attribute

• Result: {success, true}
• Possible exceptions:
not_authenticated, not_authorized, ref_object_not_fo
und, ref_key_not_found
ref_attrib_update
ref_key_update
•

•

Description: Allows updating a the whole reference key – all or any
of its attributes. Note that it is not possible to update the value of
the reference key. If a new value is provided for the reference key, a
whole new reference key will be created. A common scenario is to
search for existing reference key, change its value and possibly
some of the attributes and to add it. This way the reference key is
duplicated.
Input parameters:
– object_name – the name of the reference object
– payload – JSON object
•

key – JSON object representing the reference key
–
–

•

attributes – JSON array containing JSON objects representing reference attributes
–
–

•

name
value
name
value

Result: Object with properties:
– success – with value “true”
– status – with value either “updated” or “added”

•

Possible exceptions: not_authenticated, not_authorized
ref_key_update

Más contenido relacionado

Destacado

IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...
IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...
IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...ijpla
 
Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001Dan Brickley
 
Fried sp techcon hybrid search deeper dive
Fried sp techcon hybrid search deeper diveFried sp techcon hybrid search deeper dive
Fried sp techcon hybrid search deeper diveJeff Fried
 
Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...
Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...
Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...Informatikai Intézet
 
Harmony Search for Multi-objective Optimization - SBRN 2012
Harmony Search for Multi-objective Optimization - SBRN 2012Harmony Search for Multi-objective Optimization - SBRN 2012
Harmony Search for Multi-objective Optimization - SBRN 2012lucasmpavelski
 
Harmony search algorithm
Harmony search algorithmHarmony search algorithm
Harmony search algorithmAhmed Fouad Ali
 

Destacado (6)

IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...
IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...
IMPROVED MUSIC BASED HARMONY SEARCH (IMBHS) FOR SOLVING JOB SHOP SCHEDULING P...
 
Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001
 
Fried sp techcon hybrid search deeper dive
Fried sp techcon hybrid search deeper diveFried sp techcon hybrid search deeper dive
Fried sp techcon hybrid search deeper dive
 
Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...
Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...
Blanka Láng, László Kovács and László Mohácsi: Linear regression model select...
 
Harmony Search for Multi-objective Optimization - SBRN 2012
Harmony Search for Multi-objective Optimization - SBRN 2012Harmony Search for Multi-objective Optimization - SBRN 2012
Harmony Search for Multi-objective Optimization - SBRN 2012
 
Harmony search algorithm
Harmony search algorithmHarmony search algorithm
Harmony search algorithm
 

Similar a Harmony API developers documentation (version 2.2)

Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles ServiceAraport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Servicestevemock
 
Maximizer 2018 API training
Maximizer 2018 API trainingMaximizer 2018 API training
Maximizer 2018 API trainingMurylo Batista
 
API_Testing_with_Postman
API_Testing_with_PostmanAPI_Testing_with_Postman
API_Testing_with_PostmanMithilesh Singh
 
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin BačovskýOSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin BačovskýNETWAYS
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldSitaraman Lakshminarayanan
 
SFDC Inbound Integrations
SFDC Inbound IntegrationsSFDC Inbound Integrations
SFDC Inbound IntegrationsSujit Kumar
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxChanna Ly
 
MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...
MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...
MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...MongoDB
 
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...Amazon Web Services
 
Code your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnCode your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnDan Rinzel
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Atlassian
 
Robot framework - SAST Väst Q3
Robot framework - SAST Väst Q3Robot framework - SAST Väst Q3
Robot framework - SAST Väst Q3Anders Arnholm
 
Azure integration in dynamic crm
Azure integration in dynamic crmAzure integration in dynamic crm
Azure integration in dynamic crmssuser93127c1
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Arun Gupta
 
OAuth and OEmbed
OAuth and OEmbedOAuth and OEmbed
OAuth and OEmbedleahculver
 

Similar a Harmony API developers documentation (version 2.2) (20)

Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles ServiceAraport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
 
Maximizer 2018 API training
Maximizer 2018 API trainingMaximizer 2018 API training
Maximizer 2018 API training
 
OAuth and Open-id
OAuth and Open-idOAuth and Open-id
OAuth and Open-id
 
API_Testing_with_Postman
API_Testing_with_PostmanAPI_Testing_with_Postman
API_Testing_with_Postman
 
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin BačovskýOSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services world
 
SFDC Inbound Integrations
SFDC Inbound IntegrationsSFDC Inbound Integrations
SFDC Inbound Integrations
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
 
MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...
MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...
MongoDB World 2018: Tutorial - Free the DBA: Building Chat Bots to Triage, Mo...
 
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
 
Code your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnCode your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard Learn
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Api security
Api security Api security
Api security
 
Robot framework - SAST Väst Q3
Robot framework - SAST Väst Q3Robot framework - SAST Väst Q3
Robot framework - SAST Väst Q3
 
Azure integration in dynamic crm
Azure integration in dynamic crmAzure integration in dynamic crm
Azure integration in dynamic crm
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
 
Connection management
Connection managementConnection management
Connection management
 
Connection management
Connection managementConnection management
Connection management
 
OAuth and OEmbed
OAuth and OEmbedOAuth and OEmbed
OAuth and OEmbed
 

Más de 112Motion

112Motion.com solutions overview
112Motion.com solutions overview112Motion.com solutions overview
112Motion.com solutions overview112Motion
 
Harmony concepts and design guide
Harmony concepts and design guideHarmony concepts and design guide
Harmony concepts and design guide112Motion
 
D3 data driven development in practice - the AirPortal for Schiphol and Tra...
D3   data driven development in practice - the AirPortal for Schiphol and Tra...D3   data driven development in practice - the AirPortal for Schiphol and Tra...
D3 data driven development in practice - the AirPortal for Schiphol and Tra...112Motion
 
Creating a Cloud system in one hour using Google DOCS spreadsheets
Creating a Cloud system in one hour using Google DOCS spreadsheetsCreating a Cloud system in one hour using Google DOCS spreadsheets
Creating a Cloud system in one hour using Google DOCS spreadsheets112Motion
 
Fraud Detector - The easy-to-customize, high ROI, IT solution for detecting ...
Fraud Detector - The easy-to-customize, high ROI,  IT solution for detecting ...Fraud Detector - The easy-to-customize, high ROI,  IT solution for detecting ...
Fraud Detector - The easy-to-customize, high ROI, IT solution for detecting ...112Motion
 
Harmony concepts and design guide v0.2
Harmony concepts and design guide v0.2Harmony concepts and design guide v0.2
Harmony concepts and design guide v0.2112Motion
 
Create, sign and share documents online using Google DOCS
Create, sign and share documents online using Google DOCSCreate, sign and share documents online using Google DOCS
Create, sign and share documents online using Google DOCS112Motion
 
Decision model and notation (DMN standard explained. A worked example by Nick...
Decision model and notation (DMN standard explained. A worked example by Nick...Decision model and notation (DMN standard explained. A worked example by Nick...
Decision model and notation (DMN standard explained. A worked example by Nick...112Motion
 
Product based design of business processes. Applied within Financial Services
Product based design of business processes. Applied within  Financial ServicesProduct based design of business processes. Applied within  Financial Services
Product based design of business processes. Applied within Financial Services112Motion
 
Harmony: what is it, how does it work, best practices. Integration features, ...
Harmony: what is it, how does it work, best practices. Integration features, ...Harmony: what is it, how does it work, best practices. Integration features, ...
Harmony: what is it, how does it work, best practices. Integration features, ...112Motion
 
RulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk Nederlands
RulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk NederlandsRulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk Nederlands
RulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk Nederlands112Motion
 
Release description harmony matrix order entry
Release description harmony matrix order entryRelease description harmony matrix order entry
Release description harmony matrix order entry112Motion
 
Harmony = you can develop IT. This overview describes features, & shows how ...
Harmony =  you can develop IT. This overview describes features, & shows how ...Harmony =  you can develop IT. This overview describes features, & shows how ...
Harmony = you can develop IT. This overview describes features, & shows how ...112Motion
 
Lucidchart an event driven approach for generating a (workflow) applications
Lucidchart an event driven approach for generating a (workflow) applicationsLucidchart an event driven approach for generating a (workflow) applications
Lucidchart an event driven approach for generating a (workflow) applications112Motion
 
Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...
Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...
Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...112Motion
 
Gemeente loket WMO process aanvraag voorbeeld
Gemeente loket WMO process aanvraag voorbeeldGemeente loket WMO process aanvraag voorbeeld
Gemeente loket WMO process aanvraag voorbeeld112Motion
 
Modernize your AS400 - the future proof, low cost solution.
Modernize your AS400 - the future proof, low cost solution.Modernize your AS400 - the future proof, low cost solution.
Modernize your AS400 - the future proof, low cost solution.112Motion
 
AS400 webservices - the adapter create cloud apps in a couple of days
AS400 webservices - the adapter create cloud apps in a couple of daysAS400 webservices - the adapter create cloud apps in a couple of days
AS400 webservices - the adapter create cloud apps in a couple of days112Motion
 
Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...
Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...
Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...112Motion
 
Harmony release overview 1.0 - 2.0
Harmony release overview 1.0 - 2.0 Harmony release overview 1.0 - 2.0
Harmony release overview 1.0 - 2.0 112Motion
 

Más de 112Motion (20)

112Motion.com solutions overview
112Motion.com solutions overview112Motion.com solutions overview
112Motion.com solutions overview
 
Harmony concepts and design guide
Harmony concepts and design guideHarmony concepts and design guide
Harmony concepts and design guide
 
D3 data driven development in practice - the AirPortal for Schiphol and Tra...
D3   data driven development in practice - the AirPortal for Schiphol and Tra...D3   data driven development in practice - the AirPortal for Schiphol and Tra...
D3 data driven development in practice - the AirPortal for Schiphol and Tra...
 
Creating a Cloud system in one hour using Google DOCS spreadsheets
Creating a Cloud system in one hour using Google DOCS spreadsheetsCreating a Cloud system in one hour using Google DOCS spreadsheets
Creating a Cloud system in one hour using Google DOCS spreadsheets
 
Fraud Detector - The easy-to-customize, high ROI, IT solution for detecting ...
Fraud Detector - The easy-to-customize, high ROI,  IT solution for detecting ...Fraud Detector - The easy-to-customize, high ROI,  IT solution for detecting ...
Fraud Detector - The easy-to-customize, high ROI, IT solution for detecting ...
 
Harmony concepts and design guide v0.2
Harmony concepts and design guide v0.2Harmony concepts and design guide v0.2
Harmony concepts and design guide v0.2
 
Create, sign and share documents online using Google DOCS
Create, sign and share documents online using Google DOCSCreate, sign and share documents online using Google DOCS
Create, sign and share documents online using Google DOCS
 
Decision model and notation (DMN standard explained. A worked example by Nick...
Decision model and notation (DMN standard explained. A worked example by Nick...Decision model and notation (DMN standard explained. A worked example by Nick...
Decision model and notation (DMN standard explained. A worked example by Nick...
 
Product based design of business processes. Applied within Financial Services
Product based design of business processes. Applied within  Financial ServicesProduct based design of business processes. Applied within  Financial Services
Product based design of business processes. Applied within Financial Services
 
Harmony: what is it, how does it work, best practices. Integration features, ...
Harmony: what is it, how does it work, best practices. Integration features, ...Harmony: what is it, how does it work, best practices. Integration features, ...
Harmony: what is it, how does it work, best practices. Integration features, ...
 
RulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk Nederlands
RulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk NederlandsRulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk Nederlands
RulesSpeak: Het opstellen van bedrijfsregels in begrijpelijk Nederlands
 
Release description harmony matrix order entry
Release description harmony matrix order entryRelease description harmony matrix order entry
Release description harmony matrix order entry
 
Harmony = you can develop IT. This overview describes features, & shows how ...
Harmony =  you can develop IT. This overview describes features, & shows how ...Harmony =  you can develop IT. This overview describes features, & shows how ...
Harmony = you can develop IT. This overview describes features, & shows how ...
 
Lucidchart an event driven approach for generating a (workflow) applications
Lucidchart an event driven approach for generating a (workflow) applicationsLucidchart an event driven approach for generating a (workflow) applications
Lucidchart an event driven approach for generating a (workflow) applications
 
Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...
Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...
Harmony new release 3.0: Relationship Kernel, Google, Webydo, Web forms, Mult...
 
Gemeente loket WMO process aanvraag voorbeeld
Gemeente loket WMO process aanvraag voorbeeldGemeente loket WMO process aanvraag voorbeeld
Gemeente loket WMO process aanvraag voorbeeld
 
Modernize your AS400 - the future proof, low cost solution.
Modernize your AS400 - the future proof, low cost solution.Modernize your AS400 - the future proof, low cost solution.
Modernize your AS400 - the future proof, low cost solution.
 
AS400 webservices - the adapter create cloud apps in a couple of days
AS400 webservices - the adapter create cloud apps in a couple of daysAS400 webservices - the adapter create cloud apps in a couple of days
AS400 webservices - the adapter create cloud apps in a couple of days
 
Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...
Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...
Create a WEB 2.0 banking application. Adaptive Case Management. Secure and sc...
 
Harmony release overview 1.0 - 2.0
Harmony release overview 1.0 - 2.0 Harmony release overview 1.0 - 2.0
Harmony release overview 1.0 - 2.0
 

Último

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Harmony API developers documentation (version 2.2)

  • 2. Overview • Harmony exposes all its functionality as a set of web services. • JSON is the format of the messages, HTTPS is the transport. • Basic authentication is used to authenticate all API calls or a token provided when user has previously logged in. • All web services have a single end-point: – https://<domainname>/handler.yaws - when used with security token – https://<domainname>/ws/handler.yaws – when used with basic authentication
  • 3. Message and response format • An API call consists of URL parameters. These parameters can be simple strings or JSON formatted structures • A response of an API call is always returned as JSON object. If it contains “exception” property, the call was unsuccessful. The lack of exception property signifies the success of the API call.
  • 4. Exceptions • • The returned JSON object contains the exception property {exception, <exception_type>} and possibly some other information Here is a list of the exceptions Harmony can return: – not_authenticated : user is not authenticated to make this call – not_authorized: user is not authorized to perform the specified action – dialog_already_submitted – has also dialog_id and key – dialog_withdrawn– has also dialog_id and key – search_query_invalid – key_not_found – dialog_name_not_found – harmony_down – Harmony is not responding – improper_event_format – no_facts_or_ref_objects – no_event_name – event_not_found – unkown_facts
  • 5. Required parameters • message - determines the operation of the web service to be executed; should appear in every API call • token - security token – not needed for all messages; only required when using “token” authentication; not required when using basic authentication.
  • 6. Types of messages • Based on the authentication state of the user – (0) When no configuration is uploaded – (1) When user is not authenticated – (2) When config is uploaded and user is authenticated – (3) If user is member of the Admin group
  • 7. 0. No config API calls • When no configuration is uploaded, only these 3 calls are allowed: – get_all_lucidchart_diagrams – get_lucidchart_diagram – create_empty_config • For all other API calls, Harmony would return {exception, no_config} • If configuration is present but still one of these three calls are performed, Harmony will return no_token, not_authenticated or config_present exception depending whether the user is already authenticated or not.
  • 9. get_all_lucidchart_diagrams • Description: This call will ask Harmony to start a OAuth communication with LucidChart.com for retrieving the user’s diagrams. • Input parameters: – No additional parameters other than the default “message” • Response: The URL to redirect the browser to. This is the OAuth page of LicidChart.com Web service where the user should enter the credentials.
  • 11. get_lucidchart_diagram • Description: This call will ask Harmony to start a OAuth communication with LucidChart.com for retrieving a specific user diagram. If successful, the diagram will be converted to Harmony’s configuration. Then Harmony will start a OAuth communication with Google. After receiving permission, a new spreadsheet document with the same name as the diagram will be generated in the user’s Google account. The configuration will be uploaded to Harmony and will populate the spreadsheet. • Input parameters: – diagram_id – the LucidChart.com identification of the diagram. • Response: The URL to redirect the browser to. This is the OAuth page of LicidChart.com Web service where the user should enter the credentials.
  • 13. create_empty_config • Description: With this API call, Harmony will start a OAuth communication with Google. After receiving permission, a new spreadsheet document with the supplied name will be generated in the user’s Google account. The configuration will be uploaded to Harmony. This configuration contains an example dialog “test dialog” and an example rule. • Input parameters: – config_name – the name of the Google spreadsheet that will be created. • Response: The URL to redirect the browser to. This is the OAuth page of Google documents .Web service where the user should enter the credentials.
  • 15. 1. Not authenticated API calls • Two calls are allowed when (a) user is not authenticated, but (b) there is a configuration uploaded: – get_public_token – login • All other calls will fail with {exception, not_authenticated} or {exception, no_token}
  • 16. get_public_token • Description: This call will try to get a public token for accessing the public resources Harmony provides. This is usually done on page load. Note that if there are no public resources, Harmony will return {exception, not_authenticated}. • Input parameters: – No additional parameters required. • Response: JSON object, containing: – token – the newly generated public token
  • 18. login • • Description: Sent when user tries to authenticate. Harmony supports four forms of authentication: through OpenID (for Yahoo!, Aol or any other OpenID provider); through Facebook’s connect protocol; through OAuth for authentication with Twitter, Google and LinkedIn; and through the LDAP protocol. Input parameters – method– a predefined set of allowed methods: • • • • • • • google facebook yahoo aol twitter linkedin opened – • url – specifies the url of the OpenID provider ldap – – user password – request_page – the encoded URL of the page the user was on and where Harmony will redirect after successful login • Response: For LDAP authentication, the token is returned. Otherwise, the user is redirected to the appropriate authentication page. Then the user is returned to “request_page” and the token is embedded in the URL as param.
  • 19. login
  • 20. 2. User authenticated API calls • These API calls expect a token param to be present. If no token is provided, {exception, no_token} is returned without further attempt to check the API call.
  • 21. logout • Description: Sent with request to logout the currently logged in user. The user’s token will be invalidated. • Input parameters: Default parameters only • Result: the token will be invalidated
  • 23. get_dialog_names • Description: Retrieves the list of business events. They are all represented as dialogs. The result is an array of business event names. The name can then be used to retrieve the event definition for example. Can also contain the dialog title – what should be presented to the end user. Read-only operation. • Input parameters: Default parameters only. • Response: JSON array “dialog_names” containing JSON objects with properties: – name – this should be used in further API calls to identify this particular dialog – title – a title to display to the user (might be missing). It is language dependent. • Possible exceptions: not_authenticated
  • 25. get_work_items • Description: Retrieves all outstanding work items (dialogs) from all work queues. Read-only operation. • Input parameters: Default parameters only. • Response: JSON array “work_items” containing JSON objects with properties: – case_id - the Case ID to which each work items belongs to; – dialog_id - each dialog instance has a unique identifier; – dialog_name - matches one of the business event names retrieved with a get_dialog_names call; – queue - the work queue name, can be either a user or a group work queue; – index - information from the case is indexed and displayed for reference, in the example it is the relatie name; – dialog_title – optional, the title of the dialog that should be displayed to the user • Possible exceptions: not_authenticated, not_authorized
  • 27. get_case_ids • Description: Requests the case ids of all the cases. Used when there is an item of type “case_id” so to fill the select with the returned keys. Read only operation. • Input parameters: Default parameters only • Result: JSON array “case_ids” containing strings. • Possible exceptions: not_authenticated
  • 29. submit_dialog • • Description: Once all values in a dialog are filled-in by the user, the dialog is submitted to Harmony. Harmony will then execute all business rules related and will enrich the case data for the case. This is an operation that changes data and state. Write only operation. Input parameters – – Default parameters payload - contains the message payload, in this case, the contents of the dialog to be submitted to Harmony • • • • dialog_name dialog_id case_id facts – – – • • concept attrib value Result: {success: true} or exception Possible exceptions: not_authenticated, not_authorized, improper_event_format, no_facts_or_ref_ob jects, no_event_name, event_not_found, unkown_facts, dialog_withdrawn, dialo g_already_submitted
  • 31. submit_for_predictions • Description: Used to send data the moment the user enters it so to show prediction from the firing of rules. Write only operation. • Input parameters: – Default parameters; – payload – in the same format as with submit_event • Result: {success: true} or exception • Possible exceptions: – same as submit_event call
  • 33. get_predictions • Description: After a “submit_for_predictions” call, get_predictions is sent to collect the outcome of the predict data. Read only operation. • Input parameters: – Default parameters – case_id – identifies the case we want to get prediction for • Result: JSON object – case_id – identifies the case the data belongs to – facts – JSON array of facts – see Facts array slide • Possible exceptions: not_authenticated, not_authorized
  • 35. get_dialog • • Description: Retrieves the definition of the business event, as well as all the related case data for it . Read-only operation. Input parameters: – – – – • Default parameters name - the name of the event, from a call to get_dialog_names. case_id – (optional) the case id, as retrieved with a call to get_work_items. If it is not present, only the dialog definition will be retrieved without any preloaded data. dialog_id – (optional) needed for retrieving outstanding work item (together with case_id) Response: JSON object: – – name – the name of the dialog contents – JSON array of dialog items - • concept – first part of the name of the dialog item attrib – second part of the name of the dialog item type - the dialog item type; ext - in case the type is multiple_choice, the variable contains the list of possible options; value - "undefined" means that the values is still not set for this case; can_override - if "yes", the item can be overridden by the user (by default once a pair has a value, it is disabled and cannot be changed); lookup – whether the item is a key of a reference data lookup_source – where to look for the corresponding reference date required – whether this dialog item is required to be filled in; initial_state – whether the item should be initially hidden description – a description of the item, presented instead of the c/a pair Possible exceptions: not_authenticated, not_authorized, dialog_withdrawn, dialog_already_submitted, dialog_na me_not_found, key_not_found
  • 37. get_case_data • Description: Retrieves all case data for the case. Readonly operation. Note that it returns a list because all children will be returned in separate objects. • Input parameters – Default parameters – case_id - determines the case for which case data will be retrieved; • Response: JSON array of JSON objects containing: – case_id - determines the case for which case data is retrieved – facts – JSON array – see Facts array slide • Possible exceptions: not_authenticated, not_authorized, key_not_found
  • 39. get_case_history • • Description: Retrieves history for a specific case. Read only operation. Input parameters: – Default parameters – case_id – identifies the case we want to get history for • Result: the JSON object “case_history” containing JSON array of JSON objects with properties: – – – – – case_id – case identifier dialog_id – internal event reference number dialog_name – the name of the dialog queue – who must handle the dialog (or already did) because – reason why the dialog was asserted. this is an object. same as in fact object – asserted_on – (optional) when the dialog was asserted – done_on – (optional) when the dialog was submitted – who – (optional) – submitted by who • Possible exceptions: not_authenticated, not_authorized
  • 41. get_facts_for_history_record • Description: Retrieves the facts that where submitted with a specific dialog. Read only operation. • Input parameters: – Default parameters – case_id – identifies the case – dialog_id – identifies the dialog that submitted the facts • Result: the JSON object “facts” containing JSON array of JSON objects with properties same as described in Facts array slide • Possible exceptions: not_authenticated, not_authorized
  • 43. search • Description: Searches for criteria in the submitted data. Read only operation. • Input parameters: – Default parameters – criteria – the search criteria • Result: JSON object: – criteria – the search criteria – hits – how many results we have in the array – time_it_took – the milliseconds needed for lucene to find the data – results – JSON array of JSON objects: • case_id – identifies the hit is for which case • text – the text that contains the hit • score – lucene score of how close the match is to the creteria • Possible exceptions: not_authenticated
  • 45. get_meta_info • Description: Gets information for the currently logged in user and the uploaded configuration. Read only operation. • Input parameters: Default parameters only • Result JSON object: – – – – name – as defined in Excel configuration username – as defined in Excel configuration email – as defined in Excel configuration groups – the groups the user belongs to • Possible exceptions: not_authenticated
  • 47. test_predictions • Description: submits facts to Harmony and gets the predictions (outcomes) of the fired rules. The original facts are also returned, e.g. the whole case data. • Input parameters: – facts: JSON array containing fact objects. same as get_predictions • Result JSON object: same as the result from get_predictions. Note that case_id will be equal to “test_outcome” for every call. • Possible exceptions: not_authenticated
  • 49. get_reference_data • • Description: searches for “term” in the reference data, specified in “concept” and “attrib”. The results are returned and should be shown to the user to choose from them. Input parameters: – – – – – – • concept – the concept of the reference key item for which we perform the search. This corresponds to the name of the reference object attrib – the attribute of the reference key item for which we perform the search. This corresponds to the name of the reference key. case_id – context param – the case id of the current case dialog_id – context param – the dialog id of the current dialog (on which the dialog item (reference key) is present) dialog_name – context param – the name of the current dialog (on which the dialog item (reference key) is present) term – the search term Result JSON object “reference_data” with the following properties: – – object – the name of the reference object. the same as “concept” param keys – an array of the matches reference keys • • • name – the name of the reference key. same for each result. same as “attrib” param value attributes – an array of reference attributes corresponding to this reference key – – • name value Possible exceptions: not_authenticated
  • 51. get_correlation_data • • • Description: this API call tries to find a case that contains the “term” in a “concept” / “attrib” pair. This way we can switch the case we are working on. Input parameters: same as in get_reference_data Result JSON object “correlation_data” with the following: – typed_key – an object, represents the dialog item the user typed in • • • concept attrib value – additional_parts – an array of objects of form typed_key if the correlation_key is made of multiple parts – filled_items – an array, dialog items that have values in the case we are switching to • • • concept attrib value – case_id – the case id we have to switch context to • Possible exceptions: not_authenticated
  • 53. Facts array of JSON objects • Returned by get_predictions. • Each element contains the following properties: – – – – – concept attrib value queue (optional) because (optional) • • • • concept attrib op value – is_ref
  • 54. 3. Admin user API calls • If user is authenticated and is member of the Admin group, the following API calls are allowed to be performed. – – – – – – – flush get_config get_version get_reference_objects_names get_reference_object ref_attrib_update ref_key_update • If these calls are tried from a user who doesn’t belong to the Admin group, Harmony will return {exception, not_authorized}
  • 55. flush • Description: Flushes the loaded configuration. • Input parameters: only the default ones • Result: {success, true} or exception • Possible exceptions: not_authenticated, not_authorized
  • 56. flush
  • 57. get_config • Description: Returns XML representation of the uploaded configuration. • Input parameters: only the default ones • Result: XML of the configuration • Possible exceptions: not_authenticated, not_authorized
  • 58. get_version • Description: Retrieves the configuration version. It is visible in the Google spreadsheet, under Config sheet. This version is also inserted in a new case when it is created. When the configuration is updated and uploaded to Harmony, Harmony increments the version number if it detects changes in the rules and dialogs. • Input parameters: only the default ones • Result: {config_version: N} – N is the version number • Possible exceptions: not_authenticated, not_authorized
  • 60. get_reference_objects_names • Description: Retrieves the names of the reference objects found in the currently uploaded configuration. • Input parameters: only the default ones • Result: JSON object with property “reference_objects_names” that is a JSON array containing string names of reference objects. • Possible exceptions: not_authenticated, not_authorized
  • 62. get_reference_object • Description: Retrieves a whole reference object, all its keys and attributes. • Input parameters: – name – the reference object name to retrieve • Result: A JSON object containing the following properties: – possibleAttributes – an array of objects with a single property “name”. These are the possible attributes a reference object can contain. Note that not all keys will have all attributes. – keyName – the reference key name – object – the name of the reference object – sent in the name parameter – keys – the reference keys as described in get_reference_data API call • Possible exceptions: not_authenticated, not_authorized, ref_object_not_found
  • 63.
  • 64. ref_attrib_update • Description: Updates a single reference attribute for a particular reference key. The update is propagated to the source of the reference data, e.g. Google spreadsheet. • Input parameters: – object_name – the name of the reference object – key_val – the value of the reference key the updating reference attribute is member of – attrib_name – the name of the updating reference attribute – new_val – the new value for the reference attribute • Result: {success, true} • Possible exceptions: not_authenticated, not_authorized, ref_object_not_fo und, ref_key_not_found
  • 66. ref_key_update • • Description: Allows updating a the whole reference key – all or any of its attributes. Note that it is not possible to update the value of the reference key. If a new value is provided for the reference key, a whole new reference key will be created. A common scenario is to search for existing reference key, change its value and possibly some of the attributes and to add it. This way the reference key is duplicated. Input parameters: – object_name – the name of the reference object – payload – JSON object • key – JSON object representing the reference key – – • attributes – JSON array containing JSON objects representing reference attributes – – • name value name value Result: Object with properties: – success – with value “true” – status – with value either “updated” or “added” • Possible exceptions: not_authenticated, not_authorized