Glyue User Docs
  • What is Glyue?
  • Tutorials
    • Start Here
    • Building a Single-Step Integration
      • 1. Creating the Integration
      • 2. Calling the External System
      • 3. Running the Integration
      • 4. Crafting the Output
    • Building a Multi-System Integration
      • 1. Connecting to the Core
      • 2. Field Mapping
      • 3. Running the Integration
    • Building an Event-Driven Integration
      • 1. Setting up the Mock CRM
      • 2. Receiving Inbound Requests
      • 3. Triggering the Integration from the CRM
    • Building an Email Integration
      • 1. Create and Configure the Integration
      • 2. Input Validation
      • 3. Get Story IDs from Hacker News
      • 4. Get Story Content
      • 5. Sending the Email
      • 6. Wrapping Up
      • 7. Extra credit
        • extra_credit.json
    • Building a RESTful CRUD Web Service
      • 1. Integration Setup
      • 2. Vault Setup
      • 3. Create Web Service Endpoints
      • 4. Execute Web Service Endpoints with Vault Methods
      • 5. Vault Code Examples and Explanation
    • Building a Retrieval API against FIS CodeConnect
      • 1. Integration Setup
      • 2. Service Request Setup
      • 3. Field Mapping Setup
      • 4. Integration and Service Request Hook Setup
      • 5. Testing the Integration
      • 6. Common Errors
    • What is Pre-Mapping?
      • Before you start
      • Bookmarks
      • Source and Targets
      • Field Mapping Status
      • Field Mapping Comments
      • Summary
  • How-To Guides
    • How to Run an Integration from Glyue
    • How to Invite New Users
    • How to Create a Value Mapping Set
    • How to Build and Deploy a Custom Frontend
    • How to Migrate an Integration
    • How to Set Up Single Sign On (SSO)
      • Glyue Setup
      • JumpCloud Setup
      • Azure Setup
      • Okta Setup
      • Glyue SAML Config Reference
    • How to Install the Glyue App for Zoom Contact Center
    • How to use the Vault
  • Reference
    • Integration Builder Page
    • Integration Anatomy
    • Integration Components
      • Integration
      • Service Request
      • Field Mapping
      • Value Mapping Set
      • Value Mapping
      • Validation Rule
      • Mask
      • Integration Config
      • Integration Engine Versions
    • Integration Lifecycle
    • Special Functions
      • add_run_label
      • callint
      • debug
      • end
      • get_namespace
      • humanize
      • import_helper
      • keep
      • list_files
      • map_value
      • open_glyuefile
      • open_vault
      • Data Manipulation Utilities
      • calladapter
    • Special Variables
      • __adapter_config__
      • input
      • parentint
      • retvalue
      • run_history_id
      • Iterables
        • fitem/fidx
        • sritem/sridx
        • vritem/vridx/vrmsg
    • Adapters
      • Generic HTTP Adapter
      • Email SMTP Adapter
    • Web Service Endpoints
    • Vault Reference
  • Glyue Platform Reference
    • Banking Core Connectivity Guide
    • Authentication
    • Permissions
      • Service Accounts
      • Organizations
    • Frontends
    • Idempotency Layer
    • Integration Scheduler
    • Governance Reports
    • Arbitrary Integration Request Content Support
    • Admin Components
    • Logging
  • ETL
    • Glyue ETL Overview
    • Data Connectors
    • Workflows
    • Run History
    • Scheduler
Powered by GitBook
On this page
  • Content-Type Handling
  • Multipart / Form-Data Content Requirements
  • Single Binary / File Upload Requirements
  • Content-Disposition Header

Was this helpful?

  1. Glyue Platform Reference

Arbitrary Integration Request Content Support

Glyue supports building integration web service APIs that receive any arbitrary binary content (e.g. documents, bulk CSV data files, audio/video streams, archives)

Integration execution endpoints can be passed body content that isn't a single JSON or XML payload. When this occurs, the request's body is converted into one or multiple GlyueFileHandle objects and then passed into Glyue's integration engine for processing.

The term "file upload integration" is used to reference integrations that accept input data that isn't represented as JSON or XML.

Execution requests to file upload integrations are subject to the following rules:

HTTP Method
HTTP Request with Single File
HTTP Request with Multiple Files

POST

supported

supported

PUT

supported

rejected (415 unsupported media type)

PATCH

supported

rejected (415 unsupported media type)

GET

accepted but body is ignored

accepted but body is ignored

DELETE

accepted but body is ignored

accepted but body is ignored

By default, integration endpoints only accept POST requests. Web Service Endpoints must be created to enable integration execution via other HTTP methods as documented in the Building a RESTful CRUD Web Service how-to guide and the Web Service Endpoints reference page.

Content-Type Handling

Glyue parses integration web service HTTP(S) bodies in accordance with the request's Content-Type header value. The following behavior is enforced:

HTTP Request Content-Type(s)
Body Parsing Behavior

application/json

Parsed as JSON into Pythonic data structure

application/xml or text/xml

Parsed as XML into Pythonic data structure

multipart/form-data

Parsed into one or more GlyueFileHandle objects in accordance to multipart/form-data standards

*/* or any other value

Parsed into one GlyueFileHandle object

It is possible to submit a single file in a multipart/form-data request.

Multipart / Form-Data Content Requirements

Glyue assumes that the name of the field in the form data is the name of the file in that field.

Non-file form data will appear in input.payload while the files will appear in input.files as shown below.

loan

FISCHER-20230531

note

Documents received from applicant today

driver_license.tiff

(file data)

bank_statement_01.pdf

(file data)

{
    ...
    "headers": {...},
    "payload": {
        "loan": "FISCHER-20230531",
        "note": "Documents received from applicant today"
    },
    "files": {
        "driver_license.tiff": <GlyueFileHandle ... >,
        "bank_statement_01.pdf": <GlyueFileHandle ... >,
    },
    ...
}

Single Binary / File Upload Requirements

Content type for these requests will vary depending on the file being sent. Some common content types that apply are application/zip, application/pdf, image/png, audio/mpeg, video/mp4, application/octet-stream.

Content-Disposition Header

In order for Glyue to be aware of the file's name, the request must include it within the Content-Disposition in a standards-compliant manner like the following:

Content-Disposition

attachment; filename=name_goes_here.docx

The above header would result in an input object with the following files content:

"payload": {},
"files": {
    "name_goes_here.docx": <GlyueFileHandle id=1 name=name_goes_here.docx>
}

Without the header, the default filename file (with no extension) would instead be used:

"files": {
    "file": <GlyueFileHandle id=1 name=file>
}
PreviousGovernance ReportsNextAdmin Components

Last updated 8 months ago

Was this helpful?