Connector Tenant Messagelog API
Overview
Connector Tenant Messagelog API may be used to manage persistance and visibility of artibrary message payloads.
Target clients
- Thin connectors
- Gateway component
End Users (Persona)
- Customer administrators
API Dependencies
- None
Description of terms used
- Client: Vertex customer
- Tenant: Vertex customer’s subscription to a specific regional product
- Partner Tenant: Vertex customer’s subscription for a specific partner product (Exampel - SAP US, Ariba2 Canada …)
- Vertex Connector Administrator: Internal vertex user that is capable of managing global connector settings.
- Integration: An identifier for describing a machine to machine communication between partner systems and vertex core products.
API Access
- API endpoints can be accessed by authorized users by obtaining bearer tokens from configured idP.
- API endpoints will be internally available over the VPN/VPC for vertex connector administrators.
Versioning
- Current Version: 0.0.1
- This API will be versioned using semantic versioning and will maintain backward compatibility among patch and minor versions for the given major version.
Monitoring
- For monitoring purposes, we are recommending each connector to implement a public health check endpoint using the path /health. The API must include status of the external components it is integrating with (partner endpoint, vertex product endpoint, databases, fileservers…).
- Centralized tenant specific integration status page may be exposed to vertex connector administrator.
- Alerts may be configured based on the integration health checks
A Problem Details object RFC 7807
A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be “about:blank”.
A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
A human-readable explanation specific to this occurrence of the problem.
A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
Extention property specifying the time the problem was encountered
Extension property. Problem identifier to help querying internal log system for further details
Extension property. User or machine client that ovsreved this error.
Resource identifier
Resource version. This value is recommended to have incremental characteristics, and may be used for communicating changes over time as well as optimistic locking.
Timestamp (UTC recommended) the resources was created.
Timestamp (UTC recommended) the resource was updated. For a newly created resource, this will be the same value as the createdAt property. This property may be used as the default sort field in descending order for operations that require paging across resources.
User identifier that initiated the creation of a given resource.
User identifier that initiated the modification of a give resource. For a newly created resource, this is expected to be the same value as the createdBy property.
Represents tenant specific message log
Vertex customer internal identifier
Vertex customer name
Tenant specific vertex core product endpoint for this integration
Vertex customer subscription identifier in partner system. It is preferable to have uniqueness for this attribute. However, value may originate from partner system and we can assume uniqueness cannot be gauranteed by this property alone.
Partner API endpoint (Not required if not being used by the integration)
Identifier for a software component that facilitates communication between partner and vertex offered service.
Recommended to exclude sensitive data. Depending on the type of message, the API may perform some scrubbing as well.
Message type that specifies the structure of the message log.
Timestamp when the message will be eligible for pruning
Tags associated with the message.
[
"documentNumber:123", "customerId:abc"
]
{
"id": "9fe70c57-4815-4247-8ec8-0d886277e93a",
"version": 2,
"createdAt": "2022-10-28T18:39:21Z",
"updatedAt": "2022-10-28T18:39:21Z",
"createdBy": "vertexConnectorAdminUser1@vertexinc.com",
"updatedBy": "vertexConnectorAdminUser2@vertexinc.com",
"client": "cd671e55-9575-4a25-8b1b-2e85b5867059",
"clientName": "Company xyz",
"tenant": "1a855cf0-d29b-4fb2-a238-abd2c0d03856",
"tenantName": "Company xyz (North America)",
"tenantApiEndpoint": "https://productxyz-api@vertexinc.com",
"partnerTenant": "4d6696e4-f2cb-4eb3-8d8b-15fdd19bf4ee",
"partnerTenantName": "Partner product 123 for Company xyz (North America)",
"partnerTenantApiEndpoint": "https://product123-api@partnersite.com",
"connector": "BIGCOMMERCE_OSERIES",
"tenantIntegrationId": "9fe70c57-4815-4247-8ec8-0d886277e93a",
"messageLog": "<QuotationRequest>....<QuotationRequest>",
"messageType": "BIGCOMMERCE_QUOTE_REQUEST",
"expiresAt": "2022-11-29T18:39:21Z",
"tags": [
"documentNumber:123", "customerId:abc"
]
}
Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:
sortField,sortOrder
sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to ASC when left unspecified.
A page can be sorted using multiple columns by providing multiple sort query parameters
/path/resource?pageSort=field1,ASC&pageSort=field2,DESC
Requested number of elements in a given page or results
{tenantintegrationid}
/tenantmessagelogsAuthentication
This API may be proxied through a gateway component that derives the tenant integration id and tenancy details using partner tenant id and connector name. Do we need to validate the tenant integration id details?
Path variables
Request body
Responses
POST https://conn-tenant-messagelog-api.platdev.vtxdev.net/tenantintegrationid/9fe70c57-4815-4247-8ec8-0d886277e93a/tenantmessagelogs HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
[
{
"client": "cd671e55-9575-4a25-8b1b-2e85b5867059",
"clientName": "Company xyz",
"tenant": "1a855cf0-d29b-4fb2-a238-abd2c0d03856",
"tenantName": "Company xyz (North America)",
"tenantApiEndpoint": "https://productxyz-api@vertexinc.com",
"partnerTenant": "4d6696e4-f2cb-4eb3-8d8b-15fdd19bf4ee",
"partnerTenantName": "Partner product 123 for Company xyz (North America)",
"partnerTenantApiEndpoint": "https://product123-api@partnersite.com",
"connector": "SAPTAXSERVICE_OSERIES",
"tenantIntegrationId": "9fe70c57-4815-4247-8ec8-0d886277e93a",
"messageLog": "<QuotationRequest>....<QuotationRequest>",
"messageType": "OSERIES_QUOTE_REQUEST",
"expiresAt": "2022-11-28T18:39:21Z",
"tags": [
"documentNumer:abc", "customerId:123"
]
}
]
HTTP/1.1 204 No Content
{tenantintegrationid}
/tenantmessagelogsAuthentication
Path variables
Request parameters
Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:
sortField,sortOrder
sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to ASC when left unspecified.
A page can be sorted using multiple columns by providing multiple sort query parameters
/path/resource?pageSort=field1,ASC&pageSort=field2,DESC
Requested number of elements in a given page or results
Tags associated with messag log. Query results must include records that match all tags (ANDED)
Responses
Body
GET https://conn-tenant-messagelog-api.platdev.vtxdev.net/tenantintegrations/9fe70c57-4815-4247-8ec8-0d886277e93a/tenantmessagelogs HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "f5589992-281c-49f8-8ce5-a5631beee522",
"version": 1,
"createdAt": "2022-10-28T18:39:21Z",
"updatedAt": "2022-10-28T18:39:21Z",
"createdBy": "vertexConnectorAdminUser1@vertexinc.com",
"updatedBy": "vertexConnectorAdminUser2@vertexinc.com",
"client": "cd671e55-9575-4a25-8b1b-2e85b5867059",
"clientName": "Company xyz",
"tenant": "1a855cf0-d29b-4fb2-a238-abd2c0d03856",
"tenantName": "Company xyz (North America)",
"tenantApiEndpoint": "https://productxyz-api@vertexinc.com",
"partnerTenant": "4d6696e4-f2cb-4eb3-8d8b-15fdd19bf4ee",
"partnerTenantName": "Partner product 123 for Company xyz (North America)",
"partnerTenantApiEndpoint": "https://product123-api@partnersite.com",
"connector": "SAPTAXSERVICE_OSERIES",
"tenantIntegrationId": "9fe70c57-4815-4247-8ec8-0d886277e93a",
"messageLog": "<QuotationRequest>....<QuotationRequest>",
"messageType": "BIGCOMMERCE_QUOTE_REQUEST",
"expiresAt": "2022-11-28T18:39:21Z",
"tags": [
"documentNumber:abc", "customerId:123"
]
}
]