Search for answers or browse our knowledge base.
External Source Reference Guide
0 out of 5 stars
5 Stars | 0% | |
4 Stars | 0% | |
3 Stars | 0% | |
2 Stars | 0% | |
1 Stars | 0% |
Vantiq supports the integration of external data sources into the automation service. A source may supply data or be a recipient of notifications produced by Vantiq or both supply data and be a recipient of notifications. At the present time Vantiq supports following source types:
- MQTT
- Email servers
- REST services
- AMQP
- SMS services
- Kafka topics
- Google Cloud Pub/Sub (GCPS)
- Enterprise Connectors
Enterprise Connectors comprise a class of sources that run and can be developed outside of Vantiq.
A source implements one or more of the following capabilities:
- Stream data This provides a continuous stream of objects from the source. Examples of this include an MQTT topic with new messages delivered asynchronously to the server or a web site that is read periodically to produce a stream of data.
- Query the source for data This requests a specific result be retrieved from the source. For example, you can send a request to a REST API in order to interact with some external service.
- Publish data to the source This sends data from the Vantiq server to the specified source. Examples include sending a message to an AMQP topic or sending a push notification via SMS.
Source
Sources are defined by creating a source resource that represents the definition of the source and submitting the definition to Vantiq for registration. Once registered, the source will immediately begin reading and processing messages if a stream is configured and will also immediately be available for query and publish operations.
The specific details of the ArsSource properties required are described in the separate documentation for each source class:
The general representation of a source resource is defined in Resource Reference Guide: Source. In summary, a source contains the following properties:
- name – the name assigned to the source.
- type – the type of source. Currently, a type specified by an Enterprise Connector or one of these string values:
- SMS
- MQTT
- AMQP
- REMOTE
- CHATBOT
- KAFKA
- GCPS
- config – contains the source type specific parameters associated with the source. The detailed contents of config is defined in the source type specific documentation referenced above.
- autoUnwind – indicates whether the source should automatically “unwind” any event data that it receives. If
true
, then if an array is received as event data, the system will immediately process the array and generate one event for each array member (instead of one containing the array itself).
Source Operations
As described above sources can support up to 3 operations, all of which operate on data in the form of “messages”. The operations and message formats supported are specific to each source implementation and described in the source specific documentation. Here we describe the general capabilities.
Content Types
Vantiq supports 3 distinct content types for data sent and received by sources:
- JSON – JSON data is sent and received using the standard JSON textual notation. At runtime JSON objects are native VAIL objects and are manipulated using standard JavaScript syntax.
- XML – XML data is sent and received using the standard XML textual notation. At runtime XML objects are manipulated using the Groovy GPath notation.
- Text – text data is unformatted and uninterpreted by the system. It will be transmitted and received using the UTF-8 character set.
Each source implementation is responsible for transforming data sent and received between the external form supported by the source and one of these 3 content types supported by the Vantiq system. For example, an Email source may accept a JSON document which describes the elements of an Email message and transform that document into the actual SMTP message.
For some sources (e.g., the REMOTE source), Vantiq supports sending other content types as well. Please see the REMOTE source documentation for details.
Streaming Data
A stream of information is read from the external system using either an asynchronous model or a synchronous (polling) model depending on the capabilities of the external system. The process stream method must run continuously and may not terminate until the source is shut down. For example, the MQTT source type asynchronously reads messages when they are published to the corresponding MQTT topic while the REMOTE source periodically polls the specified REST endpoint for new data.
When a message arrives on a streaming source an event is generated which will be delivered to any subscribed rules or event streams for processing. The event may also be delivered to any web socket clients which have subscribed to the event’s id.
Source Schema
The definition of a stream source may optionally include a reference to a schema type which represents the structure of the data produced by the source. This schema is purely informational and is used by Modelo and Pronto to make it easier to process the source events. However, the system will not validate if the data produced by the source actually matches the referenced schema type. Some sources support the receipt of data from multiple “locations” (for example, an MQTT source may receive data from multiple topics). In these cases it is assumed that all of the data conforms to the same underlying schema. If that isn’t true, you should define a distinct source for each desired schema.
Query
A query can be presented to sources that support queries to obtain data from the external system. A query is executed by invoking the query function from the body of a rule. The query method is provided with the source type specific object that defines the query to execute. For example, the REMOTE source type that supports REST endpoints is invoked with an object that defines the URL, headers and body for the REST request that obtains the data from the remote endpoint.
Notify
A source can send data or notifications to the external system or, perhaps more appropriately, via the external system since the ultimate receiver of the notification may be a person. Examples of notify method uses:
- MQTT source – posts the message to the specified MQTT topic. Ultimately, the message will be delivered to all MQTT clients subscribed to the MQTT topic.
- EMAIL source – the message is emailed to the set of recipients attached to the message.
- REMOTE source – the message is POSTed to the URL defined on the remote source.
The notify function is invoked from a rule to send data or notifications via a source.
Using Secrets
Sources that connect to external systems often need to be secured by passwords, access tokens, or secrets. These credentials often need to be secured in such a way that users of a source don’t have access to the
underlying credentials. To secure credentials in a source configuration, certain config properties can contain references to secrets, which store a credential securely. Users of the source can see the name of the secret, but not the value associated with that secret. The credentials configuration properties that can contain a reference to a secret are specific to the type of source. For example, email sources must specify a username and password for the credentials used to access the email server, and the password configuration property can be a reference to a secret. View the documentation for each source type to see which credentials properties can use secrets.
Besides the need to secure credentials, it can sometimes be necessary to secure a configuration property value. For example an HTTP header containing an API key. To secure such property values, a general
scheme that applies to all source configurations is to reference a secret using the syntax @secrets(<secret_name>)
.
For example, a Remote source might define the following header: {"apiKey": "@secrets(apikey)"}
where apikey
would be a secret name. As the source gets activated the reference to the apikey
secret name @secrets(apikey)
is replaced with the secret value.
One note about secrets: If the secret value associated with a secret is updated you must deactivate and reactivate the source that references the secret in order for the secret update to take effect for the source. Until reactivation, the old secret value will continue to be used.
Source Mocking
Sources can be placed in Mock Mode
, which allows the developer to override the publish and query operations on the Source with VAIL procedures. A Source that is in Mock Mode does not connect to the
outside world. This means that any messages produced by the external Source do not reach Vantiq and no outbound messages from Vantiq will reach the Source.
A Boolean property called mockMode
represents whether or not a Source is in Mock Mode. When mockMode
is true, the Source uses its Mocking Procedures to define its behavior.
Vantiq developers interact internally with Sources in two key ways: Query and Publish operations. By default, when a Source is in Mock Mode, Publishing to and Querying from the Source has no effect. However, a user may override the source’s Query and Publish operations.
An Object property called mockProcedures
represents the configuration for a source’s Mocking behavior. The mockProcedures
object has two keys:
* query (String): The name of the Procedure that runs on query from Source when mockMode
is true
* publish (String): The name of the Procedure that runs on publish to Source when mockMode
is true
Developers may use built-in Procedures to turn Mock Mode on and off. Test.startSourceMocking(sourceName, queryProcedureName, mockPublishProcedure)
turns on Source Mocking for the source sourceName and Test.stopSourceMocking(sourceName)
turns it off. For more information, please see the VAIL Rule and Procedure Reference Guide.
Query
The Query Mock Procedure takes in the query descriptor as a single parameter called queryDesc
and may return anything the developer desires.
For example:
PROCEDURE getPageSize(queryDesc)
var result = { "code":"404","message":"city not found" }
if (queryDesc.query.q.includes("London")) {
result =
{
"coord": {
"lon": -0.13,
"lat": 51.51
},
"weather": [
{
"id": 802,
"main": "Clouds",
"description": "scattered clouds",
"icon": "03n"
}
],
"timezone": 0,
"id": 2643743,
"name": "London",
"cod": 200
}
} else if (queryDesc.query.q.includes("Honolulu")){
result =
{
"coord": {
"lon": -157.86,
"lat": 21.3
},
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"timezone": -36000,
"id": 5856195,
"name": "Honolulu",
"cod": 200
}
}
return result
If getPageSize
was set as the query Mock Procedure then executing the query:
SELECT FROM SOURCE weather with query = {"q":"London", "APPID":"REPLACE_ME"}
would return
[{
"coord": {
"lon": -0.13,
"lat": 51.51
},
"weather": [{
"id": 802,
"main": "Clouds",
"description": "scattered clouds",
"icon": "03n"
}],
"timezone": 0,
"id": 2643743,
"name": "London",
"cod": 200
}]
Publish
The Publish Mock Procedure takes in the publish descriptor as a single parameter called pubDesc
. Because a PUBLISH is a “fire and forget” operation, the Procedure’s return value is ignored
For example:
PROCEDURE insertToTypeProc(pubDesc)
var message = pubDesc.message
INSERT MyType( name: message.name, messageValue: message.messageValue )
If insertToTypeProc
is set as the Publish Mock Procedure then the following publish:
PUBLISH {topic: topic, message: {name: "Test", messageValue: 10}} to SOURCE mySrc
would result in a new instance of Type MyType to be inserted with messageValue == 10.
Creating a Source Event
Developers may call the procedure createSourceEvent(sourceName, message)
to Mock an incoming source event. Whether or not the Source is in mockMode
, the message will be delivered to all active subscribers of the Source.
For example, given the following Rule:
RULE sourceListener
WHEN EVENT OCCURS ON "/sources/mySource" AS event
INSERT testType(event.name)
Running the Procedure:
PROCEDURE proc()
createSourceEvent("mySource", {name: "ABC"})
would result in a new instance of testType
with name == "ABC"
.
0 out of 5 stars
5 Stars | 0% | |
4 Stars | 0% | |
3 Stars | 0% | |
2 Stars | 0% | |
1 Stars | 0% |
-
Getting Started
-
-
- 1: Creating an Engine Monitoring Project
- 2: Understanding the Design Model
- 3: Create the Engine Sensor Sources
- 4: Renaming the Design Model’s Events
- 5: Remove Unneeded External Systems
- 6: Address the To Do List
- 7: Create Event Schema Types
- 8: Visualizing a Running System
- 9: Testing The App
- Conclusion
- Introductory Tutorial
- Namespace Privileges
- Tutorial Overview
-
- 1: Creating a Temperature Alert Project
- 2: Using the AI Design Assistant
- 3: Editing the App Flow
- 4: Generating the Design Model
- 5: Create the TempMQTT Source
- 6: Address the Design Model To Do List
- 7: Running the Application
- 8: Example AI Design Assistant Descriptions
- Image Processing Example
- Namespace Privileges
- Patient Care Example
- Pump Monitoring Example
- Quickstart Tutorial
-
-
-
- Add Assignment Filter
- Add Collaborator Role
- Advanced Collaboration Tutorial - Overview
- Assign Collaborator
- Check if responder arrived
- Collaboration Fails
- Collaboration Success
- Conclusion
- Create First Responder Instances
- Get Patient location
- Import Intro Collaboration Tutorial
- Loop Ends
- LoopWhile
- Notify First Responder and wait
- Recommend First Responder
- Retract Notification
- Testing the App
- Track the First Responder
- Wait For Response
- Show Remaining Articles ( 4 ) Collapse Articles
-
- (Part 1) 1: Import the Introductory Tutorial
- (Part 1) 2: Create a Component From an Existing Handler
- (Part 1) 3: Rename Component Tasks
- (Part 1) 4: Expose Component Parameters
- (Part 2) 1: Replace Repeated Tasks
- (Part 2) 2: Configure the New Component Tasks
- (Part 2) 3: Run Events through the Component
- Conclusion
-
- Assembly Tutorial Overview
- Conclusion
- Configuring the Assembly
- Convert the Project into an Assembly
- Create a Custom Source
- Creating the Assembly Configuration Properties
- Creating the Assembly Interface
- Creating the Visible Resources
- Import the Project
- Install the Assembly
- Part 1: Setting up the Catalog
- Publishing the Assembly
- Replacing the App Component
- Testing the Assembly
- Transform Local Events into Assembly Events
-
- 1: Creating a Patient Monitoring Project
- 10: Handling Patient Response
- 11: Notify the First Responder
- 12: Handle the Response Timeout Case
- 13: Creating the First Responder Client
- 14: Testing the App
- 2: Creating a Patient Monitoring Service
- 3: Defining an Inbound Event Type and Event Handler
- 4: Filtering for Unusual Readings
- 5: Simulating Monitor Readings
- 6: Defining Entity Role
- 7: Entity Assignment
- 8: Send Patient Notification
- 9: Creating the Patient Client
- Collaboration Tutorial Overview
- Conclusion
- Show Remaining Articles ( 1 ) Collapse Articles
-
- Concepts and Terminology
- Conclusion
- Task 1: Adding a New Administrator
- Task 2: Adding a New Developer
- Task 3: Adding a New User
- Task 4: Creating a Developer Namespace
- Task 5: Creating an Application Namespace
- Task 6: Inviting Users to a Namespace
- Task 7: Revoking a User’s Access to a Namespace
- Task 8: Changing a User’s Privilege Level for a Namespace
- Tutorial Overview
- User and Namespace Administration Tutorial Purpose
-
-
-
Product Documentation
-
-
-
- Accessing Documents
- Automatic Document Caching
- Client Resources
- Client Startup
- Control Widgets in the "Views" Portion of Client Builder
- Controllers
- Creating A Client
- Data Objects
- Data Stream Widgets in the “Views” Portion of Client Builder
- Data Streams
- Debugging
- Field Validation
- Introduction
- Launching Clients from a browser
- Layout Widgets in the “Views” Portion of Client Builder
- Localizing Clients
- Navigation Between Pages
- Offline Operation
- On Start Events
- Public Clients
- Server Requests
- Terminating The Client
- The Client Builder Concepts
- The Client Builder's Canvas Section
- The Client Builder's Control Dock
- The Client Builder's Palette Area
- The Client Builder's Slideout Section
- Uploading data to the Server
- Show Remaining Articles ( 13 ) Collapse Articles
-
- ‘On Assets Loaded’ Event
- ‘On Change’ Event
- ‘On Click’ Event
- ‘On Client Start’ Event
- ‘On Context Menu’
- ‘On Data Arrived’ Event
- ‘On End’ Event
- ‘On End’ Event
- ‘On Network Status Changed’ Event
- ‘On Start’ Event
- ‘On Start’ Event
- ‘On Swipe’
- ‘On Validation’ Event
- abort()
- AccordionLayout
- addAPIRequestFor(responseObjectProperty:string):boolean
- addEventHandler()
- addRequestFor(widgetName:string):boolean
- addRequestForDataURL():void
- addRequestsForClient():boolean
- addRequestsForCurrentPage():boolean
- addRequestsForPage(pageName:string):boolean
- adjustPopupSizeAndPosition()
- AudioRecorder
- Basic Information
- cancelSpeaking()
- children
- clearInterval()
- clearTimeout()
- clearUpload()
- clearValidationErrors()
- clone()
- closeIcon:string
- closeIcon:string
- closePopup()
- confirmCustom()
- confirmCustomEx()
- copyMatchingData(obj:any):void
- createClientEventDataStream()
- createDataChangedDataStream()
- createOutboundServiceEventDataStream()
- createPagedQueryDataStream()
- createPublishEventDataStream()
- createResourceEventDataStream()
- createResponseObject()
- createSourceEventDataStream()
- createTimedQueryDataStream()
- data
- data
- DataObject
- DataStream
- defaultSubmit()
- deleteAll()
- deleteOne()
- deleteOne()
- documentGroupName:string
- documentName:string
- errorDialog()
- execute()
- execute()
- executePublic()
- executePublic()
- executeStreamed()
- executeStreamed()
- executeStreamedPublic()
- executeStreamedPublic()
- fontColor:string
- fontFace:string
- fontSize:number
- fontStyle:string
- fontWeight:string
- formatMsg()
- generateUUID()
- getCollaborationContext()
- getCurrentPage()
- getCurrentPopup()
- getDataStreamByName()
- getDataStreamByUUID()
- getDeviceId()
- getDeviceName()
- getDocumentAssetLabelList()
- getDocumentAssetList()
- getDocumentUrl()
- getGroupNames()
- getLocation()
- getName()
- getProfileNames()
- getRequestParameters()
- getStateObject()
- getUsername()
- getUserRecord()
- getWidget()
- goToPage()
- hideCancelButton()
- Http
- infoDialog()
- initializePropertyToDefaultValue(propertyName:string):void
- initializeToDefaultValues():void
- insert()
- insert()
- instance
- isExpanded:Boolean
- isNetworkActive
- isPaused:boolean
- isPublic
- localeCountryCode
- localeLanguageCode
- localeVariantCode
- logout()
- markupImage()
- maxDurationInSeconds:number
- maxSizeInK:number
- modifyClientEvent()
- modifyDataChanged()
- modifyPagedQuery()
- modifyPublishEvent()
- modifyResourceEvent()
- modifyServiceEvent()
- modifySourceEvent()
- modifyTimedQuery()
- name:string
- navBarBackgroundColor
- navBarForegroundColor
- navBarIcon
- navBarIconHeight
- navBarIconWidth
- navBarShowControls
- navBarTitle
- navBarTitleFontFamily
- navBarTitleFontSize
- navBarTitleFontWeight
- openIcon:string
- optional:boolean
- overrideLocale
- Page
- patch()
- placeholder:string
- playAudio()
- playVideo()
- popupPage()
- publish()
- publish()
- publishToServiceEvent()
- query()
- recordAudio()
- recordVideo()
- remove():void
- responseObject:any
- restart():void
- returnToCallingPage()
- scanBarcode()
- select()
- select()
- selectOne()
- selectOne()
- sendClientEvent()
- sendLocation()
- setInterval()
- setResponseObject(responseObject:any=null, responseResource:string=null, responseResourceId:string=null):void
- setResponseObjectValues(submitValue:number, responseObjectValues:any, responseResource:string=null, responseResourceId:string=null):void
- setTimeout()
- setVantiqHeaders()
- setVantiqUrlForResource()
- setVantiqUrlForSystemResource()
- showDocument()
- showHttpErrors()
- showMap()
- speakText()
- start(completedFunction:Function):boolean
- startBLEScan()
- stopGeofencing()
- takePhoto()
- terminate()
- terminateWithDialog()
- title:string
- titleForegroundColor:string
- update()
- update()
- uploadDataURL()
- uploadDocument()
- Uploader
- upsert()
- upsert()
- uuid:string
- validate()
- validate()
- Widget Hierarchy
- Show Remaining Articles ( 172 ) Collapse Articles
-
-
-
- Accessing Namespaces in the Organization
- Active Resource Control Center
- Adding a New User to an Organization
- Adding a New User to the Application Namespace
- Administrators' Concepts and Terminology
- Authorizing Users to Access the Application
- Creating a Developer Namespace for the Organization Administrator
- Creating a New Application Namespace
- Creating Resources for New Namespaces
- Custom User Invites
- Deploying the GenAI Flow Service Connector
- Developer Tasks
- Handling Administrators Leaving
- Related Configuration
- Removing Namespace Administrators
- Self-Administration Tasks
- System Administration Tasks
- Viewing Lists of Users
- Show Remaining Articles ( 3 ) Collapse Articles
-
- Deploy Results Tab
- Deploying the same application to different environments
- Deployment
- Deployment Tool - Introduction
- Environment
- Environment Tab
- Node
- Project Partitions
- Redeploy On A Failed Node
- Reliable Deployment
- Settings Tab
- The Graph View
- The Tree View
- Undeploy
- Update Partitions
- Verify Application After Deployment
- Show Remaining Articles ( 1 ) Collapse Articles
-
- CheckedInsert/CheckedUpsert Command
- Command Line Options
- Delete Command
- Execute Command
- Export Command
- Find Command
- Help Command
- Import Command
- Insert Command
- Installation - Prerequisites
- Installation - Profile
- List Command
- Load Command
- Recommend Command
- Run Command
- Select Command
- Stop Command
- The Vantiq Command Line Interface (CLI) - Overview
- Upsert Command
- Show Remaining Articles ( 4 ) Collapse Articles
-
- App Execution Dashboard
- App With Split Dashboard
- Dashboard Navigation Bar
- Deprecated Dashboards
- Event Processing Dashboard
- General Dashboard Behavior
- Getting Started with Grafana
- Grafana Usage
- Monitoring Namespaces with Grafana
- Most Commonly Used Dashboards
- Namespace Monitoring Dashboards
- Organization Level Behavior
- Procedure and Rule Execution Dashboards
- Profiling Dashboards
- Reliable Event Dashboard
- Resource Usage Dashboard
- Service Execution Dashboard
- Service Handler Dashboard
- Source Activity Dashboard
- Storage Manager Dashboard
- Tensorflow Model Dashboard
- Type Storage Dashboard
- Show Remaining Articles ( 7 ) Collapse Articles
-
- Access to a Kubernetes Cluster
- Creating a K8s Cluster
- Delayed Processing
- Deploying K8s Installations to a Kubernetes Cluster
- Deploying the K8s Worker
- External Lifecycle Management Guide - Overview
- K8s Worker
- Kubernetes Components of a K8s Installation
- Kubernetes Namespaces
- Loading Images into a Kubernetes Cluster
- Managing K8s Installations
- Other Configuration Options
- System View
- Use of the self Cluster
- Using a Kubernetes Cluster
- Using Templates to Deploy the K8s Worker
- Vantiq Namespaces
- Verify Installation
- Show Remaining Articles ( 3 ) Collapse Articles
-
- Changing the System Password
- Creating a GenAIFlowService Service Connector
- Creating a New Organization and Namespace
- Deployment Methods
- Docker Deployment
- Edge Installation Management
- Edge Vision Server
- Executable JAR Deployment
- MongoDB
- Requirements
- Running the Vantiq Executable
- Setting the default LLMs API key
- Setting Up Vantiq Edge
- Vantiq Edge Reference Guide - Overview
- Vantiq Edge Self Node
- Windows bat file
- Show Remaining Articles ( 1 ) Collapse Articles
-
- Additional Buffer Semantics
- Applicability
- auditFrequency Quota
- Background
- Default Quotas
- Detailed Credit Quotas
- errorBreaker Quota
- errorReportingFrequency Quota
- Execution Credit Quota
- Execution Credit Quota - Diagnostics
- Execution Credit Quota - Mitigation
- Execution Rate Quota
- Execution Rate Quota - Diagnostics
- Execution Rate Quota - Mitigations
- executionTime Quota
- k8sResources Quota
- Quota Interactions
- receiveMessage Quota
- receiveMessage Quota - Diagnostics
- receiveMessage Quota - Mitigation
- reservedGroups Quota
- stackDepth Quota
- Stream Quota
- Terminology
- Workload Management
- Workload Management Conceptual Model
- Show Remaining Articles ( 11 ) Collapse Articles
-
-
-
- Android Post-Installation Instructions
- Authentication Functions
- Database Functions
- Installation Instructions
- iOS Post-Installation Instructions
- Miscellaneous Functions
- Prerequisites
- Procedure Execution Functions
- Publishing Functions
- Sample iOS AppDelegate.m File
- User Creation Functions
- Vantiq Functionality for React Native Apps
-
-
- Accumulate State
- Analytics
- Answer Question
- App Activity Tasks
- App Builder Guide - Introduction
- App Builder Overview
- Assign
- Build and Predict Path
- Cached Enrich
- Chat
- Close Collaboration
- Collaborations in Apps
- Compute Statistics
- Convert Coordinates
- Creating an App
- DBScan
- Delay
- Dependency Management
- Dwell
- Enrich
- Error Handling
- Escalate
- EscalateState
- Establish Collaboration
- Event Redelivery
- Event Stream
- Filter
- GenAI Flow
- Get Collaboration
- Interpret Conversational Language
- Join
- K-Means Cluster
- Limit
- Linear Regression
- Log Stream
- Loop While
- Merge
- Notify
- Optional Imports
- Polynomial Fitter
- Predict Paths By Age
- Procedure
- Process Intent
- PublishToService
- PublishToSource
- PublishToTopic
- Rate
- Recommend
- RecordEvent
- Reliable Apps
- Run TensorFlow Model On Document
- Run TensorFlow Model On Image
- Run TensorFlow Model On Tensors
- Sample
- SaveToType
- Split By Group
- Submit Prompt
- Threshold
- Time Difference
- Track
- Track Motion
- Tracking Progress
- Transformation
- Unwind
- VAIL
- VisionScript
- Window
- Within Tracking Region
- YOLO From Images
- Show Remaining Articles ( 54 ) Collapse Articles
-
-
-
- Broker Service
- Catalog Operations
- Catalog Procedures
- Connect to Catalog
- Create Entry
- Create Entry
- Custom Operations
- Disconnect from Catalog
- Host Catalog
- Integrating Applications With the Catalog
- Managing Catalog
- Managing Event Types
- Publisher Service
- Register
- Remove Entry
- Repair Catalog
- Resolve
- Subscriber Service
- Unhost Catalog
- Unregister
- Utilities
- Show Remaining Articles ( 6 ) Collapse Articles
-
-
-
- Advanced Use Cases
- Data Manipulation
- Defining Types
- Discovery from External Data Store
- Error Handling
- Installation and Use
- Native Language Implementation
- Restricting Capabilities
- Service Connectors
- Storage Manager Assembly Contents
- Storage Manager Service API
- Storage Manager Transactions
- Storage Managers - Introduction
- Transaction Support
-
-
-
- App Pane
- Autopsies
- Defining a Run Policy
- Defining a Test Suite - Properties
- Defining an Input
- Defining an Output
- Error Pane
- Integration Tests
- Populate Testing Namespace With Data
- Procedure Pane
- Rule Pane
- Running a Test in the IDE
- Running a Test through the REST Interface
- Source Mocking For Tests
- Unit Tests
- Vantiq Testing Reference Guide - Introduction
- Show Remaining Articles ( 1 ) Collapse Articles
-
-
-
- Assign
- Branch
- Categorize
- CodeBlock
- Consensus
- Content Ingestion Flows
- Conversation
- GenAI Builder Guide Introduction
- GenAI Builder Layout
- GenAI Components
- GenAI Flow Properties
- GenAI Flow Tracing and Auditing
- Launching the GenAI Builder
- LLM
- Memory and Conversations
- Merging Task Outputs
- NativeLCEL
- Optional
- PromptFromTemplate
- RAG
- Repeat
- Runtime Configuration
- Semantic Index
- Sub-Flows
- Supported VAIL Language Features
- Using GenAI Components
- Vantiq Provided GenAI Components
- Show Remaining Articles ( 12 ) Collapse Articles
-
- AWS
- Azure OpenAI
- Bedrock
- Configuration
- Function Authorizer
- Gemini
- LLM Playground
- Main Chatting Area
- Navigation Panel
- NVIDIA NIM
- OpenAI
- SageMaker
- Settings Panel
- Testing Semantic Index
- Tool Authorizer
- Tools
- Show Remaining Articles ( 1 ) Collapse Articles
-
-
-
-
- Assembly Configs
- Audits
- Catalog Members
- Catalogs
- Debug Configs
- Delegated Requests
- Documents
- Event Generators
- Groups
- Images
- K8s Clusters
- K8s Installations
- K8s Workitems
- LLMs
- Logs
- Namespaces
- Nodes
- Organizations
- Procedures
- Profiles
- Projects
- Resource Definition
- Resource Events
- Resource Relationship Model
- Resource Security Model
- Rules
- Scheduled Events
- Secrets
- Semantic Indexes
- Service Connectors
- Services
- Sources
- StorageManagers
- TensorFlowModels
- Test Reports
- Test Suites
- Tests
- Tokens
- Topics
- TrackingRegions
- Types
- Users
- Vantiq Resources
- Videos
- Show Remaining Articles ( 29 ) Collapse Articles
-
- Before Rules
- Built-In Services
- Data Manipulation
- Data Model Declarations
- Declaring Packages
- Defining Remote Connections
- Distributed Processing
- Error Handling
- Event Sending
- External State
- Flow Control
- General Use Procedures
- In-Memory State Management
- Iteration
- Logging
- Operators
- Package Scoping and Name Resolution
- Packages
- Packages
- Persistent State
- Procedure Execution
- Procedures
- PROCESSED BY Clause
- Resource Definition
- RETURN
- Rules
- Services
- Syntax
- Type Specific Procedures
- VAIL Declarations
- VAIL Types
- Variables
- Show Remaining Articles ( 17 ) Collapse Articles
-
-
-
Articles
-
- How To Video Shorts: Client Layouts
- How To Video Shorts: AI Functions
- How To Video Shorts: Analytics and ComputeStatistics
- How To Video Shorts: Calling Procedures by Properties
- How To Video Shorts: Client CSS
- How To Video Shorts: Invite Other Users to Your Namespace
- How To Video Shorts: SplitByGroup
- How To Video Shorts: The Vantiq API
- How To Video Shorts: The Vantiq IDE
- How To Video Shorts: The Vantiq Version Control System
- How To Video Shorts: Using Generative AI in Applications
- How-To Video Shorts: Managing AI Conversations
- How-To Videos: AI Design Model Assistant
- How-To Videos: AI Documentation Search
- Production Applications Best Practices