リソースリファレンスガイド
イントロダクション
Vantiq REST APIとWebSocket APIは、Vantiqサーバーが管理するリソースへのプログラムによるアクセスを提供します。これには、Vantiqが提供するシステム定義リソースと、Vantiq開発者が「イベント駆動型アプリケーション」(EDA)の一部として作成したカスタムリソースの両方が含まれます。このドキュメントでは、リソースに関する一般的な情報を紹介した後、Vantiqのシステムリソースに焦点を当てます。カスタムリソースの定義とアクセス方法については、 APIリファレンスガイド.
リソースの定義
すべてのリソースには「タイプ」(「リソースタイプ」と呼ばれる)があり、これはリソースのインスタンスの構造を表します。タイプは、利用可能なプロパティと各プロパティの特性を定義します。 VAIL型、必須かどうか、デフォルト値、および説明( タイプリソース 詳細については)。
各リソースインスタンスは「リソースID」によって一意に識別されます。システムリソースの場合、リソースIDの定義はリソースタイプ定義の一部です。カスタムリソースの場合、リソースIDは常にシステム定義です。 _id プロパティ。
リソースセキュリティモデル
に記載されているように APIリファレンスガイドすべてのリソースリクエストは、認証されたユーザーIDによって行われなければなりません。このIDが確立されると、システムは以下を含むセキュリティコンテキストを作成します。
ユーザーは、2つの名前空間(バインドされている名前空間とシステム名前空間)のリソースインスタンスにアクセスできます。各リソースに対して許可されるアクセスの詳細は、ユーザーに割り当てられたプロファイルによって制御されます。各ユーザーには2つのプロファイルがあります。XNUMXつはローカル名前空間へのアクセスを制御し、もうXNUMXつはシステム名前空間へのアクセスを制御します。システムは、これらのプロファイルそれぞれに対して、ユーザーと管理者というXNUMXつのデフォルトプロファイルを作成します。名前空間の管理者は、その名前空間に対してデフォルト以外の追加のプロファイルを作成し、必要に応じてその名前空間内のユーザーに割り当てることができます(ただし、各ユーザーはそのようなプロファイルをXNUMXつだけ持つ必要があることに注意してください)。
各リソースの説明では、デフォルトのユーザーおよび管理者プロファイルによって各リソースに付与されるアクセスレベルの概要を説明します。 種類 このリソースには、ユーザー定義型のデフォルトのアクセスレベルを記述する方法と、カスタムアクセスレベルを作成してカスタムアクセスレベルを作成する方法が含まれています。 プロファイル.
デフォルトのアクセスレベル
リソース タイプを定義するときに使用できるデフォルトのアクセス レベルは次のとおりです。
- ars_denied – リソースへのアクセスを許可しません。
- ars_readOnly – 利用可能なすべてのリソース インスタンスへの読み取りアクセス権を付与します。
- ars_readWrite – 利用可能なすべてのリソース インスタンスへの読み取り/書き込みアクセスを許可します。
- ars_readByOwner – 要求元ユーザーによって作成されたリソース インスタンスへの読み取りアクセスを許可します。
- ars_writeByOwner – 要求元ユーザーによって作成されたリソース インスタンスへの読み取り/書き込みアクセスを許可します。
パブリックリソース
アクセスレベルに関わらず、あらゆるリソースにアクセスするには、ユーザーは何らかのレベルの認可が必要です。この認可は通常、ユーザーを識別するアクセストークンによって伝達され、さらに、名前空間における関連する認可によって伝達されます。認可なしでシステムリソースのインスタンスへのアクセスを公開するには、 ars_public インスタンスのシステムプロパティを true.
REST APIを介してパブリックリソースを操作する方法の詳細については、 APIリファレンスガイド.
リソース関係モデル
リソース関係モデルは、Vantiqアプリケーション全体を構成するリソース間に存在する意味的な関係を記述します。この関係データは、Vantiqアプリケーションの要素を分析または視覚化する際に役立ちます。例えば、 モデル リレーションシップ モデルを使用してリソース グラフを構築します。
Vantiqはリソース間の関係性を推測しようとします。ただし、リソースがハードコードされた文字列やクライアントビルダーのJavaScriptコードで参照されている場合など、推測が不十分な場合があります。このような場合、ユーザーはリソース間に明示的な関係性を作成することもできます。
詳細については参照してください APIリファレンスガイド.
2 つのリソース間の関係としては次のようなものが考えられます。
- 依存関係: 1 つのリソースは別のリソースの存在に依存します。 例:: 型に挿入するプロシージャは、その型に依存します。
- 実行: 手順を実行するリソースには 実行 その手続きとの関係。
- 公開する: トピックまたはソースに公開するリソースには、 公開する そのリソースとの関係
- 購読者: 別のリソースからのイベントをサブスクライブするリソース。 例:: トピックへのパブリッシュによってトリガーされるルールには、 購読済み そのトピックとの関係。
- 実装する: 生成されたサービスとそれが実装するアプリまたはコラボレーション タイプとの関係
- 含まれています: メタリソースとそれに含まれるリソースとの関係。 例:: プロジェクトには 含まれています プロジェクト内のすべてのリソースとの関係。サービスには 含まれています 当該サービス内のすべての手続きとの関係。
- トリガされ: アプリとそのアプリによって開始されるコラボレーションタイプの関係
- テストテストまたはテスト スイートと、それがテストするリソース (手順、ルール、プロジェクト) との関係。
その の関係 各 Vantiq リソースのサブセクションでは、そのリソースについて推測される可能性のある関係 (存在する場合) について説明します。
ヴァンティックのリソース
次のリソースはコア リソース モデルの一部であり、すべての Vantiq アプリケーションで使用できます。
- 監査システム内の重要なイベントを記録するために自動的に作成されるオブジェクト
- アセンブリ構成: 特定のアセンブリの構成が含まれています
- キャプチャ: イベントキャプチャから記録されたすべてのイベントが含まれます
- 構成: 同じ活性化状態を共有するルールのセットを定義します
- デバッグ構成: ルールと手順のグループのログとトレースのレベルを設定します
- 委任されたリクエスト: 一度限りの「コード」を用いて実行可能なリソース操作を定義します。これにより、実行を時間的に延期したり、あるユーザーから別のユーザーに委任したりすることが可能になります。
- ドキュメント: 通常はファイルから読み込まれる静的コンテンツ
- イベントジェネレータ: 任意のタイプ、トピック、またはソースイベントを生成できるリソースを定義します
- グループヘッド: リソース セットへのアクセス権を持つユーザーのコレクションを定義します。
- 画像: 静的コンテンツは通常ファイルから読み込まれます。画像タイプに限定されます。
- k8sclusters: 管理対象リソースを持つKubernetesクラスタに関する情報
- k8sインストール: Kubernetes クラスター内の管理対象インストール
- k8sワークアイテム: Kubernetes クラスターで実行される一時的な作業
- リム: 大規模言語モデル (LLM) を表します。
- ログ: 組み込みの
log手順。 - 名前空間: 組織に割り当てられた名前空間を定義します
- ノード: リモートのVantiqフェデレーションインストールを識別します
- 組織 テナント ユーザーと名前空間のコレクションを管理するためにプロビジョニングされています。
- 手続き: 規則やその他の手順で使用できる手順であり、 ルールと手順のリファレンスガイド
- プロファイル: ユーザーに割り当てられた機能を定義します
- プロジェクト(実績作品): 展開可能なユニットであるVantiqリソースのコレクションを定義します
- ルール: 受信データを処理するためのユーザー作成ルールを定義します
- 秘密: パスワード、トークン、証明書、または構成内の秘密値を公開せずにソースを構成するために使用できるその他の安全なテキスト
- セマンティックインデックス: インデックスが作成され、セマンティック検索で利用できるようになったコンテンツの一部。
- Arsセマンティックインデックスエントリ: セマンティック インデックスに対するセマンティック検索に使用できるエントリ。
- サービスコネクタ: 外部プロセスを介してサービスを実装すること。
- サービス: アプリケーションの特定の機能的側面に関連付けられた動作をカプセル化します。これには、その動作に関連するアプリケーション データ モデルとのやり取りも含まれます。
- 予定されたイベント: 将来のある時点で配信されるようにスケジュールされたイベント。イベントは1回だけ配信される場合もあれば、定期的に配信される場合もあります。
- ソース: 外部データソース(例:MQTT、AMQP、RESTful)
- ストレージマネージャー: 外部データストアのマネージャー。InfluxDB Cloud や MongoDB Atlas などのリモートアクセス可能なデータベースの「プラグイン」を有効にします。
- テンポラリ: 短期的にメモリに常駐する大きなオブジェクト
- テンソルフローモデル: ニューラルネット処理に使用される TensorFlow モデル。(TensorFlow、TensorFlow ロゴ、および関連するマークは Google Inc. の商標です。)
- テスト: 一連の入力イベントと期待される非同期出力イベントによって定義されるルール、手順、またはプロジェクトのテスト
- テストスイート: 特定のリソースに対する一連のテスト
- テストレポート: テスト中に発生した可能性のあるエラーを含むテスト実行の結果
- トピック: ルールを駆動し、通知をトリガーするために公開される可能性のあるユーザー作成の識別子
- 追跡領域: モーショントラッキングで使用されるユーザー作成領域。
- : Vantiqシステムが操作するオブジェクトを定義します。タイプは、データベースに格納される従来のオブジェクトを表します。
- users: Vantiqの認定ユーザー
- ビデオ: 静的コンテンツは通常ファイルから読み込まれます。ビデオタイプに限定されます。
各リソースタイプのセクションでは、そのタイプの構造と利用可能な操作について説明します。また、組み込みの管理者プロファイルとユーザープロファイルによって付与されるアクセス権限についても説明します。デフォルトでは、管理者ユーザーは自分の名前空間内のすべてのリソースインスタンスへのフルアクセス権限を持ち、ユーザーは自分の名前空間内のすべてのリソースインスタンスへの読み取り専用アクセス権限を持ちます。ただし、例外もあり、それらについては以下で説明します。
このドキュメントのすべての例は、REST APIを使用してリソースを管理する方法を示しています。 WebSocketを WebSocket API を使用してリソースを管理する一般的な情報については、API リファレンス ガイドのセクションを参照してください。
Vantiqサーバーは環境固有のドメイン名を持つ場合があります。このドキュメントでは、デフォルトの開発サーバーである https://dev.vantiq.comは、ステートメント構文ブロックおよび例で使用されるサーバーです。
リソースイベント
一部のリソースは、特定の操作が実行されるとイベントを生成します。これらのイベントは、 WHEN ステートメント ルールまたはイベントストリームにバインドすることで、イベントが発生するたびにユーザー定義の処理をトリガーできます。イベントバインディングはイベントの「パス」を使用します。これは常に次の形式です。 /<resource>/<resourceId>/<op> (例えば /namespaces/myNamespace/authorized)。イベントをトリガーする操作とそれに関連するデータについては、 イベント 各リソースの説明のセクション。
アセンブリ構成
アセンブリ構成には、消費者が提供する構成が含まれます。 アセンブリ.
アセンブリ構成には次のプロパティがあります。
- 名: アセンブリ構成の一意の識別子。デフォルトでは、構成するアセンブリの名前になります。
- アセンブリ: 構成されているアセンブリの名前
- の監視: 構成プロパティを含むオブジェクト。キーと値のペアで、キーはアセンブリの構成プロパティの名前、値は各プロパティに対してコンシューマーが指定した値です。 組立ガイド をご覧ください。
挿入または更新 アセンブリ構成 アセンブリ内のリソースに構成を自動的に適用します。 構成マッピング削除する アセンブリ構成 以前に構成されたリソースを未構成の状態に戻します。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべての Assemblyconfig インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべての Assemblyconfig インスタンスに対する読み取り専用アクセス権が与えられます。
監査
監査は、システム内の他のリソースの変更を追跡するためにシステムによって自動的に作成されるオブジェクトです。「監査対象」フラグを指定して型を定義すると、その型に対するすべての挿入、更新、削除が監査対象となります。デフォルトでは、以下のシステムリソースに対する操作が監査対象となります。
- 名前空間
- users
- プロファイル
- ノード
- ソース
- トークン
追加のセキュリティ関連イベントも監査されます。
- ユーザー名/パスワードを使用した認証
- 認証失敗
監査には次の特性が必要です。
- エンティティ – 監査記録を作成するために操作されたオブジェクトを識別するために使用されるリソース参照
- メッセージ – 監査記録を表示するときに表示される、人間が読めるメッセージ
監査にはオプションで次のプロパティを設定できます。
- op – この監査記録を作成した操作の名前
監査レコードが作成されると、システムは監査レコードに次の追加プロパティを割り当てます。
- の三脚と ノードUUID – 監査対象イベントが発生したノードを識別するために使用される文字列
- タイムスタンプ – 監査レコードが作成された時刻(監査対象イベントが発生した時刻から数ミリ秒以内である必要があります)。
- 監査ID – 特定の監査記録を識別するために生成された一意の識別子
アクセス権
- 管理人 – 管理者ユーザーは監査を作成および削除できます。
- user – ユーザーは監査レコードを作成できます (ユーザーが実行する操作によって監査が作成されます) が、監査を削除することはできません。
監査を更新できません。
イベント
次の操作に対してイベントが生成されます。
- 監査 – 非型リソース(通常は
rulesorsources)が生成されます。イベントパスは/audits/<resourceName>/publishイベントで提供されるデータは、次のプロパティを持つオブジェクトです。- エンティティ – 監査対象のリソース インスタンスを参照する ResourceReference。
- op – 監査対象の操作。
- メッセージ – 監査メッセージ。
ユーザー定義監査
型定義の「監査済み」プロパティが true に設定されている場合、ユーザーが定義した型に対する操作は監査されます。
さらに、よりきめ細かな監査が必要な場合は、ユーザーが独自のルールを定義して監査を作成できます。例えば、あるソースからの受信メッセージを監査するには、次のようにします。
RULESET AuditPublishesToMySource
// Triggering condition is on any message arriving from a source named MySource
WHEN EVENT OCCURS ON "/sources/MySource" AS myVariable
// Construct an audit object with entity, op, ars_properties and message defined
var audit = {"entity": {resource: "sources", resourceId: "MySource"},
"op": "publish",
"ars_properties": { "importantProp": myVariable.importantProp },
"message": "Message received from source MySource with value: " + myVariable.toString()}
// Manually insert the audit record
INSERT audits(audit)
このルールは、ソースMySourceからメッセージを受信するたびに監査レコードを作成します。監査は任意のルールまたはプロシージャから作成できますが、監査の作成時にエンティティフィールドとメッセージフィールドが設定されている必要があります。
捕獲物
キャプチャの詳細については、 キャプチャリファレンスガイド.
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのキャプチャ インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべてのキャプチャ インスタンスに対する読み取り専用アクセス権が与えられます。
カタログ
カタログは、サーバーの カタログ機能これらは、カタログの作成と削除、カタログへの接続と切断、カタログ内のエントリの作成と削除、カタログ内のエントリの登録と登録解除を処理します。
カタログには次のプロパティがあります。
- 名 – 手順によって生成されたカタログの名前
Broker.makeNodeName()ホスト名前空間内。 - host – カタログがホストされているかどうかを示すブール値。これをtrueに設定すると、現在の名前空間がカタログホストになります。
- エッジを許可する – ホストされたカタログがエッジからの接続を許可するかどうかを示すブール値。これをtrueに設定すると、エッジ接続は必要に応じてカタログをブリッジとして使用できるようになります。これをfalseに設定すると、エッジから接続したメンバーはすべて切断されます。
- リクエストされたエントリ – 現在の名前空間をこのカタログに登録する必要があるすべてのエントリのリスト。これは、以下のプロパティを持つオブジェクトの配列です。この値は直接編集できないため、register および unregister 操作を使用して変更する必要があります。
- カタログノード – メンバーがカタログとの通信に使用するノード名。これはホスティング時または接続時に自動的に設定され、ユーザーが編集することはできません。
- ローカルノード – カタログがカタログとの通信に使用するノードの名前。これはホスティング時または接続時に自動的に設定され、ユーザーが編集することはできません。
- 名前空間 – カタログの名前空間。これはホスティング時または接続時に自動的に設定され、ユーザーが編集することはできません。
合成特性
カタログにはいくつかの合成プロパティもありますが、これらは選択時に動的に生成され、直接編集することはできません。
- 解決 – これは、正常に解決されたすべてのエントリのリストです。形式は リクエストされたエントリ.
- 未解決 – これは、 リクエストされたエントリ 解決できなかったもの。これは リクエストされたエントリ.
ホスティングと接続
ホスティング、接続、切断はすべて、upsert と delete を通じて行われます。
アップサート
Upsert にはカタログに関する特別なケースがいくつかあります。リソース ID を指定せずにカタログに接続でき、カタログをホストしたり、requestedEntries に追加したりするために使用できます。
- カタログのホスティング – カタログを作成するには、カタログインスタンスをアップサートする必要があります。 host trueに設定します。このインスタンスの名前は、
Broker.makeNodeName(). - カタログへの接続 – カタログに接続するには、 URI の三脚と アクセストークン 対象カタログのURIとその名前空間での権限を持つアクセストークンに設定されたフィールド、およびオプションで VQSを使用する に設定
trueエッジ名前空間から接続する場合。これを行うと、他のすべてのフィールド( 名) は無視され、作成されたカタログの名前が応答に返されます。 - 複数の追加 リクエストされたエントリ – ユーザーは直接変更することはできません リクエストされたエントリ フィールドです。更新またはupsertでこのフィールドを設定すると、新しいエントリが現在のリストにマージされ、未解決のエントリは解決されます。これは、プロジェクトをある名前空間から別の名前空間に移動する場合や、エントリをあるカタログから別のカタログに移動する場合に便利です。エントリを削除するには、 登録解除 操作。
削除
カタログ インスタンスを削除すると、名前空間がカタログから切断されるか、ホストの場合はすべてのメンバーが切断され、すべてのエントリが削除されます。
ステータス
カタログのステータス操作に対する応答は、次のフィールドを持つ JSON オブジェクトです。
name– カタログ オブジェクトの名前。connectionState– ホスト名前空間との接続状態を表す文字列。可能な値は「connected(接続済み)」、「unconnected(未接続)」、「broken(破損)」(ノードは存在するが接続できない、またはターゲット名前空間がカタログをホストしていない)です。
カスタム操作
カタログとのやり取りのほとんどは、カタログリソースに定義された特別な操作を通じて行われます。これらの操作はすべて「system.catalogs」リソースに対して行われ、resourceId(名)を指定します。 REST APIHTTPメソッドはPOSTであり、本文は次のようにフォーマットする必要があります。 {"op": <operation>, "data": <data object>}. を使用した通話 リモート処理 オブジェクトは同じ形式でなければなりません。その他のケースとバインディングでは、そのバインディングにおけるオペレーションとオブジェクトを通常のものとして扱います。
エントリの作成
カタログにエントリを作成します。このエントリは公開または購読できます。この操作ではサービスを作成できません。サービスを作成するには、パブリッシャーとして登録する必要があります。本文の形式はエントリの種類によって異なり、以下で確認できます。 こちら.
エントリの削除
カタログからエントリを削除します。イベントエントリを削除する権限はホストのみにあります。本文は、以下の形式のJSONオブジェクトである必要があります。
type– エントリの種類。name– エントリの名前。
会員登録する
エントリーを登録します。本文は、 リクエストされたエントリ応答は、与えられたエントリに追加される エラー 登録中にエラーが発生した場合、または入力されたエントリの形式が無効な場合はエラーが発生します。エントリの形式が無効な場合を除き、エントリは リクエストされたエントリ 成功かどうかに関係なく。
登録解除
エントリから登録を解除します。本文は、 リクエストされたエントリ応答は、与えられたエントリに追加される エラー 登録解除中にエラーが発生した場合、または入力されたエントリの形式が無効である場合はエラーが発生します。エントリが リクエストされたエントリ 成功の有無にかかわらず削除されます。
解決する
未解決のエントリの登録を完了する リクエストされたエントリ応答は解決に失敗したすべてのエントリの配列で、追加の エラー それぞれのフィールド。
の関係
名前空間内のカタログインスタンスは、 公開する or 購読者 各カタログエントリとの関係 requestedEntries プロパティ。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのカタログ インスタンスに対する完全なアクセス権があります。
- user – ユーザーにはカタログインスタンスへのアクセス権がありません。
カタログメンバー
カタログメンバーオブジェクトは、カタログホストによってメンバー名前空間を表すために使用されます。このリソースは、名前空間がカタログホストに接続すると自動的に作成されます。
カタログ メンバーには次のプロパティがあります。
- 名 – メンバーの名前。
- エッジ接続 – メンバーがカタログとの通信にVQS接続を使用するかどうかを示すブール値。これはメンバーが接続すると自動的に設定され、ユーザーが編集することはできません。
- メンバーノード – カタログがメンバーに接続するために使用するノードの名前。これはメンバーが接続すると自動的に設定され、ユーザーが編集することはできません。
- 名前空間 – メンバーの名前空間。メンバーが接続すると自動的に設定され、ユーザーが編集することはできません。
削除
カタログ メンバー リソースを削除すると、メンバー名前空間がカタログから強制的に切断されます。
ステータス
カタログ メンバーのステータス操作に対する応答は、次のフィールドを持つ JSON オブジェクトです。
name– カタログ メンバーの名前。connectionState– メンバー名前空間との接続状態を表す文字列。可能な値は「connected」、「unconnected」、「broken」(ノードは存在するが接続できない、またはメンバー名前空間がカタログに接続されていない)です。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのカタログ メンバー インスタンスに対する完全なアクセス権があります。
- user – ユーザーにはカタログ メンバー インスタンスへのアクセス権がありません。
構成
構成リソースの詳細については、 構成および導入ガイド.
デバッグ構成
デバッグ構成は、ルールとプロシージャのログレベルを設定し、トレースを有効にするために使用されます。プロシージャまたはルールが実行されると、そのルールまたはプロシージャを参照するすべてのデバッグ構成がマージされ、許可する最小ログレベルとトレースを有効にするかどうかが決定されます。競合するデバッグ構成で同じリソースに対して異なるログレベルが指定されている場合は、最も詳細なログレベルが使用されます。IDEのルールまたはプロシージャ編集ペインでログレベルが設定されるか、トレースが有効になると、デバッグ構成が自動的に生成されます。
デバッグ構成は、標準のリソース API パターンを使用して作成できます。
Method: POST
URL: /api/v1/resources/debugconfigs
Body: { "name": "MyDebugConfig",
"type": "log",
"value": "DEBUG",
"resources": [
"/rules/MyRule",
"/procedures/MyProc",
"/procedures/MyProc2",
...
],
"isGlobal": false,
"expiresAt": "2019-10-25T06:04:48.112Z"
}
デバッグ構成のプロパティには次のものが含まれます。
- 名 – デバッグ構成を識別する、人間が読める一意の名前
- type – 「log」、「trace」、または「profile」のいずれかが、デバッグ構成がログ レベルを指定するか、トレースを有効にするか、プロファイリング データを有効にするか (Grafana ダッシュボードの場合) を示します。
- 値 – 「ログ」設定の場合、値は「TRACE」、「DEBUG」、「INFO」、「WARN」、「ERROR」のいずれかである必要があります。「トレース」および「プロファイル」設定の場合、値は「有効」である必要があります。それ以外の場合は「無効」と解釈されます。
- リソース – デバッグ構成が適用される各ルールと手順へのリソース参照の配列。
- isGlobal – trueの場合、デバッグ構成がすべてのルールと手順に適用されることを示すブール値。リソース配列にリソースが指定されている場合、このプロパティはtrueに設定できません。
- 有効期限 – デバッグ構成を自動的に削除するタイミングを指定するDateTimeプロパティ。挿入時に指定されていない場合、値は作成時刻から2時間後に設定されます。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのデバッグ構成インスタンスへのフルアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべてのデバッグ構成インスタンスに対する読み取り専用アクセス権が与えられます。
委任されたリクエスト
委任リクエストは、関連付けられた1回限りのコード値が送信されるまで実行が延期されるリソース操作を表します。委任リクエストを作成したユーザーは「作成者」と呼ばれ、その実行をトリガーしたユーザーは「処理者」と呼ばれます(これらは同じユーザーである場合もそうでない場合もあります)。委任リクエストでは、1つ以上のVAIL「スクリプト」(一連のスクリプトで構成される)を指定することもできます。 VAIL声明)は、初期操作の完了後に実行されます。リクエストの定義に応じて、この実行は作成者またはプロセッサのセキュリティコンテキストを使用して実行されます。
現在、委任リクエストの使用はVantiqプラットフォームに限定されており、ユーザー(権限の有無に関わらず)が作成することはできません。委任リクエストは主に、新規ユーザーのオンボーディングや、「招待」システムを介して既存ユーザーに新しい権限を付与するために使用されます(招待メールに含まれるリンクは、システムによって作成された委任リクエストの実行をトリガーします)。
カスタム操作
パブリッシュ
既存の委任リクエストをメールアドレスに送信します。実行すると、実行ユーザーに名前空間へのアクセス権限が付与されます。RESTの場合、これは直接POSTリクエストとなります。 api/v<version>/resources/delegatedrequests URI。この操作の引数は、次のプロパティを持つJSONドキュメントです。
op- "公開"data– 次のプロパティを持つ JSON ドキュメント:to– メッセージの送信先アドレス。必須。source– リクエストを送信するソースの名前。オプション – 指定されていない場合は、インストールのデフォルトのメールソースが使用されます。callbackUri– リクエストが承認された際に受信者がリダイレクトされるURL。オプション – 指定されていない場合、受信者はリダイレクトされません。from– メッセージの送信者アドレス。オプション – 指定されていない場合はデフォルト値が使用されます。parameters– メールテンプレートに入力するキーと値のペアとなるオブジェクト。オプション – デフォルトのテンプレートはパラメータを必要とせず、ここで指定されていないパラメータは委任されたリクエストインスタンスから取得されます。パラメータの詳細については、 こちら.htmlTemplate– テンプレートとして使用するドキュメントの名前を表す文字列。現在の名前空間内のドキュメントのみを検索できます。オプション – 設定されていない場合は、委任リクエストのテンプレート、または委任リクエストで指定されていない場合はデフォルトのテンプレートが使用されます。テンプレートのフォーマットに関する詳細は、 こちら.subject– リクエストによって送信されるメールの件名となる文字列。指定されておらず、名前空間招待の一部でもない場合は、デフォルトで「Vantiqからの通知」となります。
ドキュメント
ドキュメントとは、Vantiqデータベースに保存されているファイルを指します。ドキュメントインスタンスは、以下の形式のマルチパートMIMEメッセージを使用してドキュメントのコンテンツをアップロードすることで作成されます。
POST https://dev.vantiq.com/api/v1/resources/documents
<your boundary marker>
Content-Disposition: form-data; name="<assignedName>"; filename="<filename>"
Content-Type: <contentType>
<file content>
<your boundary marker>
ここで、
<assignedName>保存されている文書の名前です ドキュメント インスタンス。<fileName>コンテンツが取得されたファイルの名前です。
さらに、適切な HTTP ヘッダーを設定する必要があります。
ContentLength: <length of http content in above message>
ContentType: multipart/form-data; boundary=<your boundary marker>
ファイルがアップロードされると、そのメタデータはリソース URI 経由で利用できるようになります。 api/v1/resources/document/<assignedName>.
次の JSON 表現が返されます。
{
"name": "assets/img/autopsy/statement1.png",
"fileType": "image/png",
"content": "/docs/assets/img/autopsy/statement1.png"
}
その content プロパティは、Vantiqサーバーからファイルの内容を取得するために使用できる絶対URIです。 fileType このプロパティは、アップロードされたファイルの拡張子に基づいて Vantiq によって設定されますが、ファイルのアップロード後に変更することもできます (これは、ファイルがテキスト データとして扱われるかバイナリ データとして扱われるかに影響するため、この値を変更するときは注意が必要です)。
Vantiqは、Vantiq IDEで利用可能なシステムドキュメントを保存するためにドキュメントを使用します。Vantiqは、 system/ この目的のために文書名のプレフィックスが使用され、ユーザーが作成した文書はプレフィックスで始まってはならない。ユーザーの名前空間内では、 public/ プレフィックスは、URL経由で認証されたユーザーを必要とせずにドキュメントのコンテンツにアクセスできることを示すために使用されます。 /ui/docs/NS/<namespace>/<relativePath> ここで、
<namespace>ドキュメントを取得する名前空間です。<relativePath>文書名からpublic/接頭辞。
たとえば、パスの下にドキュメントをアップロードすると、 public/images/myImage.png 名前空間「example」では、URI経由で認証なしでアクセス可能となる。 https://dev.vantiq.com/ui/docs/NS/example/images/myImage.png.
ドキュメント名は、最初の文字が /.
リソースインスタンスURIと /docs URI では、公開文書の場合でも常に認証が必要です。
コピー
ドキュメントをコピーするには、upsert または duplicated 操作のいずれかを使用します。upsert 操作は、対象の名前空間からドキュメントをコピーします(プル)。一方、duplicate 操作は、ドキュメントを1つ以上の対象の名前空間にコピーします(プッシュ)。どちらの操作も同じ名前空間内で使用でき、その場合、意味的に同等です。
アップサート
次の形式の POST を発行することにより、ドキュメントをターゲット名前空間からコピーできます。
Method: POST
URL: /api/v1/resources/documents
Body: { "name": "<copyName>",
"fromName": "<fromName>",
"fromNode": {
"<nodeName>"
}
}
ここで、
<copyName>新しいドキュメントの名前です。<fromName>コピーする既存のドキュメントの名前です。<nodeName>コピーするドキュメントが配置されている場所を指定するノード名です。
文書は単一の場所からのみコピーできるため、 <nodeName> はノード名なので、単一のノードに解決されます。 <nodeName> 指定されていない場合、ドキュメントは同じ名前空間内でコピーされます。
Temp BLOBからドキュメントを作成する
取得した場合 TempBlob (例えば(ビデオまたはリモートソースから)その情報からドキュメントを作成できます。これを行うには、 fromTemp プロパティは、Temp BLOBのリソース参照を指定します。Temp BLOBはメモリに常駐するため、 fromNode パラメータはサポートされていません。
Method: POST
URL: /api/v1/resources/documents
Body: { "name": "<copyName>",
"fromTemp": "<Temp Blob reference>"
}
重複ファイル
次の形式の POST を発行することにより、ドキュメントを 1 つ以上のターゲット名前空間にコピーできます。
Method: POST
URL: /api/v1/resources/documents/<resourceId>
Body: { "op": "duplicate",
"data": {
"duplicateName": "<copyName>",
"remoteNodes": {
"<nodeQueryConstraint>"
}
}
}
ここで、
<copyName>新しいドキュメントの名前です。<resourceId>コピーする既存のドキュメントの名前です。<nodeQueryConstraint>ドキュメントをコピーする必要があるノードのセットを定義するクエリ制約です。
ドキュメントは、 <nodeQueryConstraint> 解決されます。もし <nodeQueryConstraint> 指定されていない場合、ドキュメントは同じ名前空間内でコピーされます。
WebSocket または VAIL バインディングを使用してドキュメントを複製するには、次の形式のリクエストを発行します。
{
"op": "duplicate",
"resourceId": "<resourceId>",
"resourceName": "documents",
"object": {
"duplicateName": "<copyName>",
"remoteNodes": {
"<nodeQueryConstraint>"
}
}
}
upsert操作の場合、 <nodeName> HTTP URIスキームで定義する必要があります。重複操作の場合、 <nodeQueryConstraint> HTTP または WebSocket URI スキームで定義できます。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのドキュメント インスタンスに対する完全なアクセス権があります。
- user – ユーザーは自分が作成したすべてのドキュメント インスタンスに対して完全なアクセス権を持ちます。
例
ドキュメントの作成または更新
POST https://dev.vantiq.com/api/v1/resources/documents
<your boundary marker>
Content-Disposition: form-data; name="sampleDocument"; filename="sourceFile.html"
Content-Type: text/plain
This is the actual two lines of text
that is being upload as the content of the document.
<your boundary marker>
ヘッダー:
ContentLength: 209
ContentType: multipart/form-data; boundary=dLV9Wyq26L_-JQxk6ferf-RT153LhOO
ドキュメントを削除
DELETE https://dev.vantiq.com/api/v1/resources/documents/sampleDocument
イベント ジェネレータ
イベント ジェネレータ Vantiq 開発者があらゆるタイプ、トピック、ソースからのデータをシミュレートできるようにします。
イベント ジェネレーターは次のように定義されます。
- 名: ジェネレータの一意の名前
- イベント: 生成されるイベントを定義するイベント記述子のリスト
イベント記述子は、指定されたリソースで発生する1つ以上のイベントと、各イベントメッセージの生成方法を定義します。各イベント記述子は以下を定義します。
- リソースを追加する。 (リソース参照) : イベントを生成するリソースへの参照
- op (弦) 型リソースに必須: 該当する場合、イベントの操作の種類(INSERT、UPDATE、DELETE)
- ルールリスト (オブジェクトのリスト) : のリスト ジェネレータのルール 各イベントメッセージの構成方法を決定する
- 準 (物体) 更新/削除イベントに必須: どのインスタンスを更新または削除するかを記述する修飾子オブジェクト
例: {名前: “abc”} name == “abc” のすべてのインスタンスに適用されます - 開始後 (整数): この記述子がイベントを生成し始めるまでの期間 (ミリ秒) (イベント ジェネレータの実行開始後)。
- periodic (ブール値): 繰り返しイベントの場合はtrue。周期イベントの場合は、期間または繰り返し回数と間隔を指定する必要があります。
- デュレーション (整数):このイベント記述子がイベントを生成する期間(ミリ秒)。生成されるイベントの総数は 期間/間隔.
- 繰り返し (整数): このイベント記述子が生成するイベントの数
- インターバル (整数) 定期的な場合は必須: イベント ジェネレータによって生成される定期的なイベント間の期間 (ミリ秒)。
お願い: DurationプロパティまたはIterationsプロパティのいずれかを設定できますが、両方を設定することはできません。どちらかを設定する場合は、intervalプロパティが必須です。
イベントジェネレータのドキュメントを参照してください 発電機を稼働させる の三脚と 発電機を停止する.
標準操作
ステータス
イベントジェネレータのステータス操作に対するレスポンスは、ジェネレータが現在実行中かどうかを示します。レスポンスは、以下のプロパティを持つオブジェクトになります。
{
<GeneratorName>: [
{
_id: <runningGeneratorId if currently running>,
startTime: <runningGeneratorStartTime if currently running>
}
]
}
の関係
イベントジェネレータインスタンスには 依存関係 ジェネレータがイベントを生成するすべてのタイプ、トピック、ソースの関係。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのイベントジェネレーター インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のどのイベントジェネレーター インスタンスにもアクセス権がありません。
グループ
グループとは、リソースのコレクションへの共有アクセス権を持つユーザーとアクセストークンの集合です。型のインスタンスは、レコードへのアクセスをグループのメンバーのみに制限するars_groupフィールドで定義できます。メンバーは、リソースを定義するリソース参照として定義する必要があります(以下のいずれか)。 tokens or users) と、ユーザー名またはトークン名を指定する resourceId です。
グループ制限アクセスを持つ型は、型定義において groupEnabled フラグを true に設定して定義する必要があります。このフラグは、「グループ化された」型に対して実行されるすべてのクエリに追加の条件を追加します。型定義において groupRequired フラグを設定することで、その型へのすべての挿入において ars_group に null 以外の値を指定する必要があることを示すことができます。グループは必須とせずに有効にすることもできます。その場合、ars_group 値が null のレコードは、その型にアクセスできるすべてのユーザーに表示されます。
アクセス権
- 所有者 – グループの所有者はグループの作成時に指定され、グループにメンバーを追加したりグループを削除したりできる唯一のユーザーです。
- メンバー – グループのメンバーは、グループ名のars_group値がタグ付けされたレコードにアクセスできます。メンバーはグループから自分自身を削除できますが、他のユーザーをグループに追加することはできません。
- 管理人 – 名前空間管理者は、グループに関係なく、名前空間内のすべてのレコードを表示できます。
- users – 一般ユーザーは、存在するグループとそのグループの所有者を確認することはできますが、グループ名の ars_group 値でタグ付けされた要素にはアクセスできません。
例
グループを作る
POST https://dev.vantiq.com/api/v1/resources/groups
{ "name": "myGroup",
"owner": "myUsername",
"members": [
{
"resource: "users",
"resourceId": "myUsername"
},
{
"resource": "users",
"resourceId": "anotherUser"
},
{
"resource": "users",
"resourceId": "aThirdUser"
}
]
}
グループにメンバーを追加する
PATCH https://dev.vantiq.com/api/v1/resources/groups/myGroup
{ "op": "add",
"path": "/members/-",
"value": {
"resource": "users",
"resourceId": "newUser"
}
}
メンバーの追加はPOST経由でも行えます
POST https://dev.vantiq.com/api/v1/resources/groups/myGroup
{
"members": [
{
"resource: "users",
"resourceId": "myUsername"
},
{
"resource": "users",
"resourceId": "anotherUser"
},
{
"resource": "users",
"resourceId": "aThirdUser"
},
{
"resource": "users",
"resourceId": "aFourthUser"
}
]
}
POST 経由で提供されたリストは既存のメンバー リストを上書きするため、ユーザーを追加するときは、既存のユーザーをメンバー リストに含めるようにしてください。
グループからメンバーを削除する
PATCH https://dev.vantiq.com/api/v1/resources/groups/myGroup
{ "op": "remove",
"path": "/members/-",
"value": {
"resource": "users",
"resourceId": "newUser"
}
}
POSTでメンバーを削除する
POST https://dev.vantiq.com/api/v1/resources/groups/myGroup
{
"members": [
{
"resource: "users",
"resourceId": "myUsername"
},
{
"resource": "users",
"resourceId": "aFourthUser"
}
]
}
これにより、「anotherUser」と「aThirdUser」が削除されます。
所有者をグループから削除することはできないため、所有者がグループから削除されるリスクなしに、所有者をメンバー リストから安全に省略できます。
画像
画像は、Vantiqデータベースに保存されている画像コンテンツを表します。画像インスタンスは、以下の形式のマルチパートMIMEメッセージを使用して画像のコンテンツをアップロードすることで作成されます。
POST https://dev.vantiq.com/api/v1/resources/images
<your boundary marker>
Content-Disposition: form-data; name="<assignedName>"; filename="<filename>"
Content-Type: <contentType>
<file content>
<your boundary marker>
ここで、
<assignedName>保存されている画像の名前です 画像 インスタンス。<fileName>コンテンツが取得されたファイルの名前です。<contentType>画像のMIMEタイプです(例えばimage/jpeg,image/png)
さらに、適切な HTTP ヘッダーを設定する必要があります。
ContentLength: <length of http content in above message>
ContentType: multipart/form-data; boundary=<your boundary marker>
ファイルがアップロードされると、そのメタデータはリソース URI 経由で利用できるようになります。 api/v1/resources/images/<assignedName>.
次の JSON 表現が返されます。
{
"name": "assets/img/cars/mycar.png",
"fileType": "image/png",
"content": "/pics/assets/img/cars/mycar.png"
}
その content プロパティは、Vantiqサーバーからファイルの内容を取得するために使用できる絶対URIです。 fileType このプロパティは、アップロードされたファイルの拡張子に基づいて Vantiq によって設定されますが、ファイルのアップロード後に変更することもできます。
画像名は、最初の文字が /.
リソースインスタンスURIと /pics URI では、パブリック イメージの場合でも常に認証が必要です。
Temp Blobからイメージを作成する
取得した場合 TempBlob (例えば(ビデオまたはリモートソースから)その情報から画像を作成できます。これを行うには、 fromTemp プロパティは、Temp BLOB のリソース参照を指定します。
Method: POST
URL: /api/v1/resources/images
Body: { "name": "<copyName>",
"fromTemp": "<Temp Blob reference>"
}
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのイメージ インスタンスに対する完全なアクセス権があります。
- user – ユーザーは自分が作成したすべてのイメージインスタンスに対して完全なアクセス権を持ちます。
例
イメージの作成または更新
POST https://dev.vantiq.com/api/v1/resources/images
<your boundary marker>
Content-Disposition: form-data; name="sampleImage"; filename="mycar.png"
Content-Type: image/png
<bytes for the image>
<your boundary marker>
ヘッダー:
ContentLength: Varies, based on boundary & image bytes length
ContentType: multipart/form-data; boundary=dLV9Wyq26L_-JQxk6ferf-RT153LhOO
画像を削除
DELETE https://dev.vantiq.com/api/v1/resources/images/sampleImage
K8s クラスター
K8sクラスタは、 Kubernetes Vantiqが認識しているKubernetesクラスタ。これはVantiqがアクセスを許可されているKubernetesクラスタであり、 K8s のインストール デプロイ済み。Vantiq システムが実行されている Kubernetes クラスターである必要はありません。
K8s クラスターは通常の DDL 操作を使用して作成されます。K8s クラスターを作成/更新するには、次の JSON ドキュメントをリソース URI に POST します。
{
"name": "<name by which Vantiq will know the cluster>",
"ingressDefaultNode": "<node name for access to installations with inbound ports>"
}
コラボレー
- その 名 プロパティは、Vantiqユーザーがこのクラスターを参照する名前です。
- その イングレスデフォルトノード 任意の宛先にルーティングするために使用されるDNSノードのデフォルト名です。 K8sのインストール とともに
inboundPort、そのときに K8sのインストールさんinboundPort含まれないhost仕様。- 値が指定されていない場合、Vantiq はクラスター名自体に基づいて名前を生成します。この値はデフォルト値です。
- DNSエントリを定義するのはシステム管理者の責任です(
/etc/hostsまたは必要に応じてローカルDNSサーバー)inboundPort定義(明示的にまたはingressDefaultNodeデフォルトで使用されます。 - この値は、 K8sのインストール とともに
inboundPortデフォルト値を使用しない場合、DNS ルーティングは必要ありません。 - 各 K8sのインストール とともに
inboundPort独自のホスト値を使用する必要があります。 受信ポート指定のホスト名について をご覧ください。
- その ライフサイクル操作回数 この K8sCluster で実行された操作のおおよその数です。
作成される K8sCluster リソースには次の JSON 表現が含まれます。
{
"name": "<name by which Vantiq will know the cluster>",
"ingressDefaultNode": "<Default DNS name on which Ingress operations are defined>"
"lifecycleOperationCount": <number of operations performed on this cluster>
}
という名前のクラスターを作成した場合 クラスター とともに イングレスデフォルトノード名 of クラスターノード結果の K8sCluster は次のようになります。
{
"name": "aCluster",
"ingressDefaultNode": "aClusterNode"
"lifecycleOperationCount": 14
}
(約 14 件の操作が完了したと仮定します)。
K8sClusterを削除するには、リソースURIに対してDELETEメソッドを使用します。ただし、以下の条件に該当するK8sClusterをDELETEするとエラーになります。 K8s のインストール or K8s の作業項目 未処理。K8sClusterを削除するには、 K8s のインストール 最初。
カスタム操作
K8sクラスタは以下のカスタムリソース操作をサポートしています。これらの操作はそれぞれ、 K8s ワークアイテムこれらの操作は非同期です。呼び出しは、関連付けられたK8sClusterに対して何らかのアクションを実行するためのリクエストを作成し、キューに追加します。ワーカーサービスがリクエストを取得して処理し、リクエストが完了するとデータモデルが更新されます(例えば インストールが作成されます。これが発生するまでに多少の遅延が発生する場合があります。
配備します
の作成を引き起こします K8sのインストール このクラスタでイメージを実行する場合、クラスタ内に適切なリソースが存在することが前提となります。Vantiqはこの作業には関与しません。また、 deploy 既存の操作 K8sのインストール 新しい構成でそのインストールを更新します。
デプロイを実行するには、リソースURIにサフィックス「/command」を付けてリクエストをPOSTします。(以下はKubernetesに関するある程度の知識があることを前提としています。)この操作の引数は、以下のプロパティを持つJSONドキュメントです。
op- "展開する"data– 次のプロパティを持つ JSON ドキュメント:name– このデプロイメントの実行中のインスタンスに割り当てる名前。これは、Vantiq の K8s インストールの名前にもなります。k8sNamespace– セットが作成される Kubernetes 名前空間。config– イメージに必要な設定情報。configプロパティは、以下のプロパティを持つJSONオブジェクトのリストです。各オブジェクトには、typeプロパティ、およびタイプに応じたその他のプロパティ。imageは必須です。その他のタイプはオプションです。type:image– (このインスタンスは 1 つだけ必要です。)name: Kubernetes システムが取得するイメージの名前。リポジトリ名が含まれる場合があります。imagePullSecret: リポジトリからイメージをプルするために必要なKubernetesシークレットの名前(存在する場合)。イメージをプルするリポジトリが公開されていない場合、これが必要になる場合があります。serviceAccount: インストールを実行するKubernetesサービスアカウントの名前。サービスアカウントに適切なイメージプルシークレットが関連付けられている場合は、imagePullSecretここでの入力は不要です。replicaCount: インストールに含まれるレプリカの数。デフォルト値は1です。展開するイメージが複数のレプリカをサポートするように特別に設計されていない限り、この数値を変更しないでください。
type:file– インストールに追加するファイルとコンテンツを定義するpath– インスタンス内のどこにファイルがマウントされるかfilename– パスに配置するファイルの名前dataSource– 作成または参照される Kubernetes リソース タイプは、次のいずれかである必要があります。configMaporsecret(指定しない場合は、デフォルトでconfigMap)- ファイルコンテンツ – ファイルコンテンツは、異なるプロパティセットを用いて様々な方法で指定できます。これらのセットは相互に排他的です。
- 直接提供されるコンテンツ
content– ファイルの内容。テキストファイルのみサポートされます。
- デプロイ先の Kubernetes 名前空間にすでに存在する既存の Kubernetes ConfigMap または Secret から取得したコンテンツ
name– コンテンツを取得する既存のConfigMapまたはSecret(同じKubernetes名前空間内)の名前key– 目的のコンテンツを参照する ConfigMap または Secret キー。
- Vantiqのドキュメント、画像、ビデオのコンテンツ
resourceType– Vantiqリソースタイプ – 次のいずれかである必要がありますdocumentsimagesvideos
resourceName– 既存のVantiqリソースの名前。この場合、filename省略可能です。filename提供されている場合は、resourceNameファイル名として。つまり、resourceNameisdocument/name.txt,name.txtとして使用されますfileName.treatAsText– (オプション)Kubernetesにデータを提供する際に、リソースをテキストリソースとして扱います。Kubernetesはテキストデータとバイナリデータで異なる方法でデータをマウントします。これは、VantiqドキュメントにfileTypeそれはで始まりますtext.
- 直接提供されるコンテンツ
type:inboundPort– このインストールのために開かれる受信ポートを定義します。これは、コネクタがサーバーとして機能する場合(UDPソースなど)に当てはまります。以下のプロパティがあります(特に指定がない限り必須です)。host– このポートのホスト名。これは、このホスト名宛てのあらゆるアクセスがこの受信ポートに送信されることを示します。このホストは、対象のK8sクラスタのクラスタアドレスに解決される必要があります。これが指定されていない場合、K8sClusterのingressDefaultNode使用されている。port– (必須) 開かれると予想されるポート番号を指定する整数。これは、イメージが使用すると予想されるポートです。protocol– (必須) Kubernetes でサポートされているプロトコル (TCP (HTTP/HTTPS を含む)、UDP)portName– (オプション) ポートに割り当てる名前serviceType– (オプション) K8sサービスタイプ。デフォルトは「NodePort」serviceName– (オプション) サービスに付ける名前。適切な名前が自動的に生成されますが、上書きすることも可能です。clusterIP– (オプション) 作成されたポッドに割り当てるIPアドレス。これはほとんど使用されません。
type:environmentVariable(オプション) – イメージの実行時に、指定された名前と値を持つ環境変数が設定されている必要があることを示します。name– 環境変数の名前value– 環境変数に割り当てる値。Vantiq Secretから値を取得するには、以下の構文を使用します。@secrets(VantiqSecretName)ここで、VantiqSecretName値を取得するVantiq Secretの名前です。この構文を使用すると、値はKubernetes Secret(つまり、asSecret値はに設定されますtrue)。環境変数の値を「@secrets(someSecretName)」に設定する場合は、バックスラッシュ(\) の前に@secrets文字列。asSecret– この値をKubernetesシークレットとして保存するかどうかを示すブール値secretName– 値を取得するKubernetesシークレットの名前。secretName値が存在する場合、そのKubernetesシークレットの値が使用されます(キーはkey)。 もしsecretName存在しない場合は、新しいKubernetesシークレットが作成され、そこに値が保存されます。プロパティvalueの三脚とsecretNameは相互に排他的です。つまり、既存の Kubernetes シークレットを使用している場合、値の設定は許可されません。key– Kubernetesシークレット内のキーの名前secretNameそこから値を抽出する。
type:persistentVolumeRef(オプション) – これは、インストールが展開先のクラスター内の既存のボリュームを参照することを示します。name– 参照するボリュームの名前。path– 指定されたボリュームをマウントするインストールパス
type:annotation(オプション) – デプロイされたインストールにこの K8s アノテーションが必要であることを示します。name– 注釈の名前value– 注釈を付ける値targetResource(オプション) – このアノテーションを適用するKubernetesリソースタイプ。これにより、このアノテーションが、このアノテーションの一部として作成されたKubernetesリソースに追加されます。 K8sのインストール有効な値はconfigmap,ingress,pod,secret,service,statefulsetこのプロパティがない場合、このアノテーションはこれの一部として作成されたすべてのKubernetesリソースに適用されます。 K8sのインストール.
type:label(オプション) – デプロイされたインストールにこの Kubernetes ラベルを適用する必要があることを示します。name–- レーベル名value– ラベルに付ける値controlsRouting(オプション) - このラベルをサービスと基盤となるステートフルセットのリンクに使用するかどうかを示すブール値。つまり、このラベルは route 展開されたエンティティにメッセージを送信します。(注:この動作は主にNodePortルーティングコントローラとしてラベルが指定されていない場合、システムは適切なラベルを生成します。この値はブール値または文字列です。文字列として指定された場合、trueと解釈されない値はfalseとみなされます。targetResource(オプション) – このラベルを適用するKubernetesリソースタイプ。これにより、このプロジェクトの一部として作成されたKubernetesリソースにラベルが追加されます。 K8sのインストール有効な値はconfigmap,ingress,pod,secret,service,statefulsetこのプロパティがない場合、ラベルはこれの一部として作成されたすべてのKubernetesリソースに適用されます。 K8sのインストール.
type:hostAlias(オプション) – このインストールで設定される名前とIPアドレスのマッピングname– 定義するホスト名hostIP– 提供するIPアドレス
type:probe(オプション)Kubernetesを追加する プローブ インストールの定義。Kubernetes プローブ Kubernetesがインストールの起動機能を完了したかどうかを判断するのに役立ちます(startupプローブ)、インストールがリクエストを受け入れることができるかどうか(readinessプローブ)、またはインストールがまだ機能しているかどうか(liveness調査)。probeType– の1つstartup,readinessorlivenessinitialDelaySeconds– このプローブを実行する前に待機する秒数periodSeconds– プローブを実行する頻度timeoutSeconds– (オプション) プローブがタイムアウトするまでの秒数。指定しない場合は、Kubernetes のデフォルトが適用されます。successThreshold– (オプション)インストールが動作可能と判断されるまでのプローブ試行の成功回数。指定しない場合は、Kubernetesのデフォルトが適用されます。failureThreshold– (オプション) インストールが失敗したと判断するために必要なプローブ試行回数。失敗したインストールは(Kubernetesによって)終了され、再起動されます。指定されていない場合は、Kubernetesのデフォルトが適用されます。requestType– の1つcommand,httpまたはtcpリクエストの種類に応じて、以下の追加プロパティが指定されます。requestType:commandcommands– コマンドとパラメータのリスト(文字列のリスト)。例えば、インストール時に次のようなファイルが作成された場合、/installation/up準備ができたら、commandsエントリーは['cat', '/installation/up']Kubernetesはコマンドを実行しますcat /installation/upそのプローブを実行します。
requestType:tcpport– 接続先の名前または整数のポート番号。数値のポート番号またはportNameの一部として定義されるinboundPort仕様。
requestType:httppath– このプローブを作成するためのURLを構築する際に使用するパスport– このプローブを作成するためのURLの構築に使用するポート。tcp上記のプローブを使用する場合は、portNameに関連付けられているinboundPort.headers– リクエストの一部として送信されるキーと値のペアのセット。キーと値はどちらも文字列である必要があります。
type:resourceRequest– 以下のリソースの最小要件を指定し、type:resourceLimit– 以下のリソースの絶対最大値を指定します- 以下のリソースは、
resourceRequestの三脚とresourceLimit領域。これらはKubernetesのリソース用語を使用して指定されます。例えば、CPUの半分を要求するには、次のように指定します。500m意味 500ミリパスカル。 見る Kuberenetesのドキュメント 詳細については、。 cpu: 展開されたインストールのCPUの数memory: 展開されたインストールのメモリ量nvidia.com/gpu: 必要なNVidia GPUの数amd.com/gpu: 必要な AMD GPU の数。
- 以下のリソースは、
type:hardAffinity– Kubernetesとして設定されるキー/値のペアを指定します ノードセレクター デプロイされたポッド用です。これを使用するには、Kubernetes管理者にご相談ください。これらの設定は、Kubernetesにデプロイされたインストールに追加される場合があります。selfクラスター。これは、Vantiq が動作するクラスターの管理の一部です。key- key の値values適用されます。values– 値のリストkey指定されたノードセレクタは、 in 演算子(つまり、keyこのリストに含まれる値は、このインストールでの使用に有効です。- この仕様には注意が必要です。
keyorvalue指定が誤っていても、通常はエラーは発生しません。代わりに、Kubernetesは適切なノードが出現するまで待機します。
- この仕様には注意が必要です。
configRef– 代わりにconfigプロパティ、configRefプロパティを指定できます。これは、config上記の通りプロパティです。
この操作は、 K8s ワークアイテム リクエストに対して。これはK8sInstallationを作成または更新する唯一の方法であることに注意してください。
受信ポート指定のホスト名について
インストールに受信ポートがある場合、そのインストールは URL http:// で利用できます。host:80、クラスタが正しく設定されていると仮定します。 host ここでは、 host からの値 inboundPort 設定項目、またはそのような値が指定されていない場合は、 K8sクラスターさん ingressDefaultNode 価値。あなたは 常に 提供する host ここでの財産;各 K8sのインストール それは inboundPort 独自の価値を持つべきである hostこのホスト名は、Kubernetes によってインストールへのリクエストをルーティングするために使用されます。
さらに、前述のように、指定されたホスト名(または K8sクラスターさん ingressDefaultNode (もしそれが使用されているなら)は、問題のKuberetesクラスターのクラスターアドレスに解決される必要があります。つまり、URL http://host:80 有効で解決可能なURLである必要があります。このホスト名を使用してKubernetesクラスタに送信されたリクエストは、指定されたK8sインストールにルーティングされます。DNSエントリ( /etc/hosts または必要に応じてローカルDNSサーバー) inboundPort 定義(明示的にまたは ingressDefaultNode デフォルトで使用されます。
( 外部ライフサイクル管理ガイド K8sClusters の定義に関する詳細については、こちらをご覧ください。
フェッチログ
インストールのポッドログを取得します。 ポッド は、インストールの実行中のコンポーネントへのK8s参照です。したがって、この操作はインストールのログ出力を取得し、Vantiqドキュメント(またはそのコレクション)として保存します。繰り返しますが、以下のコマンドをリソースURIに送信し、末尾に「/command」を追加してください。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「フェッチログ」data– 次のプロパティを持つ JSON ドキュメント:name– の名前 K8sのインストール ログを取得する対象。podName– (オプション) ログを取得するポッドの名前。指定しない場合は、インストールのすべてのログを取得します。(このパラメータはあまり使用されません。)documentGroup– (オプション) ログをアップロードする場所。
すべてのポッドログは次のようにアップロードされます ドキュメント Vantiqの名前空間で K8sクラスター 見つかったログの名前は、ドキュメントグループ名にポッド名とタイムスタンプを付加したものになります。個々のポッドログの名前は、ポッド名にタイムスタンプを付加したものになります。デフォルトのドキュメントグループ名には、クラスター名とインストール名が含まれます。
クラスター名 そして、 インスト、という名前のインストールのポッドログ jdbc という名前の文書にアップロードされます
cluster/inst/jdbc-0-2021-07-14T12-13-14.000-0700.txt
もし フェッチログ リクエストは、14 年 12 月 13 日の 14:2021 (太平洋夏時間) からちょうど XNUMX 秒後に処理されました。
同じインストールとリクエスト実行時間を前提とすると、 documentGroup に設定されています 私の/グループポッドログは以下にアップロードされます
my/group/jdbc-0-2021-07-14T12-13-14.000-0700.txt
この操作は、 K8s ワークアイテム リクエストに対して。
再起動
k8sインストールを再起動します(上記と同様)。 展開します次のコマンドをリソースURIに送信します。末尾に「/command」を追加します。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op- "再起動"data– 次のプロパティを持つ JSON ドキュメント:name– の名前 K8sのインストール 再起動します。
この操作は、 K8s ワークアイテム リクエストに対して。
シャットダウン
インストールをシャットダウンします。リソースURIに以下のコマンドを送信し、末尾に「/command」を付加します。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「シャットダウン」data– 次のプロパティを持つ JSON ドキュメント:name– の名前 K8sのインストール 再起動します。
この操作は、 K8s ワークアイテム リクエストに対して。
アンデプロイ
K8sクラスターとVantiqシステムからインストールを削除します。リソースURIに以下のコマンドを送信し、末尾に「/command」を付加します。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「展開解除」data– 次のプロパティを持つ JSON ドキュメント:name– の名前 K8sのインストール 展開解除します。
この操作は、 K8s ワークアイテム リクエストに対して。
アクセス権
- 管理人 K8s クラスターを変更する権限を持ちます。
- users K8s クラスターにアクセスできません。
例
配備します
POST https://dev.vantiq.com/api/v1/resources/k8sclusters/aCluster/command
{
"op": "deploy",
"data": {
"name": "SourceDeployment",
"k8sNamespace": "myNamespace",
"config": [
{
"type": "image",
"name": "myRepo/connectorImage"
},
{
"type" : "file",
"content" : "some data",
"path" : "/app/somedirectory",
"filename": "myfile",
}
]
}
}
なお、 config データはイメージによって異なります。イメージごとに必要なデータは異なる場合があります。イメージの要件を理解するのはデプロイ担当者の責任です。
この操作は、 K8s ワークアイテム 作成されたリクエストの。上記の操作を実行すると、次のようになります。
{
"requestId": "<some UUID>",
"clusterName": "aCluster",
"operation": "deploy",
"timestamp": <time of request>
"status": "REQUESTED"
"request": <config value from request>
"requestedBy": "<name of the Vantiq user who performed the deploy>"
}
再起動
POST https://dev.vantiq.com/api/v1/resources/k8sclusters/aCluster/command
{
"op": "restart",
"data": {
"name": "SourceDeployment"
}
}
K8s のインストール
K8sインストールは、VantiqによってデプロイされたKubernetesクラスター内のKubernetesインストール(サービスなどを含むステートフルセット)を表します。K8sインストールは、 配備します K8s クラスターでの操作。
K8sインストールの表現は次のようになります。
{
"name": "SourceDeployment",
"clusterName": "aCluster",
"installationDate": "Date & Time of deployment"
"installationStatus": statusValue,
"installedBy" : <name of user who performed the deploy>
"replicaCount": <number of instances>
"configSpec": <specification used to create the installation>
"k8sState": <information about the installation as reported by Kubernetes>
"k8sNamespace": "myNamespace",
"k8sInstallationInfo": Object containing information about the Kubernetes deployment
"k8sInstallationType": generally STATEFUL_SET
"k8sInstallationIdentifier": <Kubernetes identifier>
"k8sAssociatedServices": <List of services created to support the installation>
"k8sAssociatedIngresses": <List of ingresses created to support the installation>
"k8sAssociatedConfigMaps":< List of config maps created to support the installation>
"k8sAssociatedSecrets": <List of secrets created to support the installation>
"quotaConsumed": <Object containing the quota consumed by this installation>
}
コラボレー
- 名 インストールの名前です
- クラスター名 このインストールが実行されているクラスタの名前です
- インストール日 最新の展開試行の日時です
- インストールステータス これは、このインスタレーションに関するVantiqのインタラクションの見解である。
- インストール元 デプロイ操作を実行したVantiqユーザーの名前です
- レプリカ数 レプリカの数
- 構成仕様 インストールを作成するために使用される構成です
- k8sステート Kubernetesによって報告されたインストールの現在の状態です
- k8s名前空間 クラスター内のKubernetes名前空間の名前です
- k8sインストール情報 インストールに関する一般的なKubernetes情報
- k8sインストールタイプ インストールする Kubernetes コンポーネントの種類。現在は STATEFUL_SET です。
- k8sインストール識別子 Kubernetesによって証明された識別子
- k8s関連サービス このインストールをサポートするために作成されたKubernetesサービスのリスト
- k8s関連シークレット このインストールをサポートするために作成された Kubernetes シークレットのリスト
- k8s関連構成マップ このインストールをサポートするために作成された Kubernetes 構成マップのリスト
- k8sAssociatedIngresses このインストールをサポートするために作成された Kubernetes イングレスの一覧
- 消費量 Vantiqシステムへのインストールの場合
selfクラスタ、このインストールで消費されるクォータ。次の値を持つ可能性があります vCPU, っ, gpuAmd、および/または GPUNvidiaこれは、Vantiqシステムの 自己
その インストールステータス 次のいずれかの値を含む文字列です。
- 開始中 – VantiqはK8sにデプロイメントの再開を要求しました
- 停止中 – Vantiq は K8s にデプロイメントのシャットダウンを要求しました
- 実行中 – デプロイメントは成功し、デプロイメントは動作中です
- 失敗 – 最後の操作(デプロイ、再起動、シャットダウン)が失敗しました
- 停止 – シャットダウン操作が成功しました
- 破損 – インストールが予期せぬ方法で変更されました。これは、インストールの一部のコンポーネントが削除されたことを示している可能性があります。
カスタム操作
K8s インストールでは、次のカスタム リソース操作がサポートされます。
フェッチログ
インストールからポッドログを取得し、ドキュメントに保存します。ここでも、以下のコマンドをリソースURIに送信します。末尾に「/command」を追加してください。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「フェッチログ」data– 以下のオプションのプロパティを持つJSONドキュメントpodName– (オプション) ログを取得するポッドの名前。指定しない場合は、インストールのすべてのログを取得します。(このパラメータはあまり使用されません。)documentGroup– (オプション) ログをアップロードする場所。
どちらのプロパティも指定されていない場合は、 data プロパティは空の JSON ドキュメントになります。
この操作は、 K8s ワークアイテム リクエストに対して。
再起動
インストールを再起動します(上記と同様)。リソースURIに、末尾に「/command」を追加した以下のコマンドを送信します。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op- "再起動"data– 空のJSONドキュメント
この操作は、 K8s ワークアイテム リクエストに対して。
シャットダウン
インストールをシャットダウンします。リソースURIに、末尾に「/command」を追加した以下のコマンドを送信します。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「シャットダウン」data– 空のJSONドキュメント
この操作は、 K8s ワークアイテム リクエストに対して。
アンデプロイ
k8sクラスターとVantiqからインストールを削除します。リソースURIに以下のコマンドを送信し、末尾に「/command」を追加してください。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「展開解除」data– 空のJSONドキュメント
この操作は、 K8s ワークアイテム リクエストに対して。
アクセス権
- 管理人 K8s インストールを表示する権限を持ちます。
- users K8s インストールにアクセスできません。
- 直接更新操作は許可されません。
- 更新は、上記のカスタム操作のみを使用して実行されます。
例
シャットダウン
POST https://dev.vantiq.com/api/v1/resources/k8sinstallations/someDeployment/command
{
"op": "shutdown",
"data": {}
}
K8s の作業項目
K8sワークアイテムはKubernetesの作業を表し、 K8sクラスターK8sのワークアイテムは、さまざまなコマンド操作によって実行されます。 K8sクラスター or K8sのインストール.
K8s WorkItemの表現は次のようになります。
{
"requestId": "<some UUID>",
"clusterName": "<name of the K8sCluster to which the work item is directed",
"operation": "<operation name>",
"timestamp": <time of request>
"status": "<operation status>"
"request": <config value from request>
"requestedBy": "<name of the Vantiq user who performed the deploy>"
"ancillaries": <Object describing additional items required to perform the work>
}
コラボレー
- リクエストID 作業項目の一意のIDです
- クラスター名 このデプロイメントが実行されているクラスタの名前です
- 操作 実行される操作は
deploy,shutdown,restartまたはundeploy - タイムスタンプ 作業項目が最後に変更された日時です
- status Vantiq の作業項目のステータスのビューです。
- 要求
configリクエストからの値 - リクエスト者 デプロイ操作を実行する Vantiq ユーザーの名前です。
- 付属品 このインストールをサポートするために作成されたKubernetesコンポーネントのセットを含むオブジェクトです
その status 次のいずれかの値を含む文字列です。
- リクエスト済み – VantiqはK8sにデプロイメントの実行を依頼しました
- 保留中 – 作業者が作業を引き受けました
- 失敗 – 操作(デプロイ、再起動、シャットダウン)が失敗しました
- 無効 – リクエストに問題が見つかりました
アクセス権
- 管理人 K8sWorkitems を変更する権限を持ちます。
- users K8sWorkitems にアクセスできません。
LLM
LLMは大規模言語モデル(Large Language Model)を表します。これはVantiqプラットフォームで実行することも、別の場所にホストされていてもリモートプロトコル(通常はREST over HTTP)経由でアクセスすることも可能です。Vantiqは、以下のモデルを事前設定してサポートしています。 GPT-4, GPT-4o-ミニ, オープンAI埋め込み の三脚と センテンストランスフォーマー追加の「カスタム」モデルへのアクセスをお客様が設定することも可能です(詳細については、Vantiq サポートにお問い合わせください)。
組み込みサービスも参照 io.vantiq.ai.LLM.
LLM には次の特性があります。
- 名 (文字列) – LLMの名前。Vantiqの名前空間内で一意である必要があります。パッケージ名を含めることができます。
- type (文字列) – LLM の種類。一度設定されると値は変更できません。LLM が実行する機能を示します。可能な値は次のとおりです。
- 埋め込み – LLMは、ベクトル埋め込みを作成するために使用されます。 セマンティックインデックス.
- 生々しい – LLM はユーザー入力に基づいて応答を生成するために使用されます。
- モデル名 (文字列) – このLLMで使用される実際のモデルの名前。この値は不変です。 埋め込み モデル。Vantiqプラットフォームが認識していないモデルの場合、ユーザーは実行時にモデルへのアクセスを設定するために必要な情報を提供する必要があります。認識されるモデルは以下のとおりです。
- バージョン3.5と4の OpenAI モデル.
- OpenAI の「text-embedding-ada-002」モデル。
- ハグフェイス センテンストランスフォーマーモデル.
- 説明 (文字列) – LLM のオプションの説明。
- 設定 (オブジェクト) – LLMのランタイムフォームを構築する際に使用されるオプションの設定。一般的なプロパティは以下のとおりです。
- 温度 – 使用するサンプリング温度(0.0 ~ 1.0 の浮動小数点値、デフォルトは 0.0)。
- max_tokens – 個々のリクエストに使用するトークンの最大数。
- クラス名 – カスタムモデルの場合のみ必要です。モデルにアクセスするために使用するPythonクラス(通常は ラングチェーン クラス)。
- ベクトルサイズ (整数) – 埋め込みモデルによって生成されたベクトルのサイズ。
- 距離関数 (文字列) – モデルによって生成されたベクトルを比較するために使用される距離関数。
- システムプロンプト (オブジェクト) - SubmitPrompt、AnswerQuestion、LLM GenAIコンポーネントを通じてLLMに送信されるすべてのプロンプトの先頭に表示されるプロンプト。想定される形式は以下のとおりです。
{"type": "system", "content": <the prompt>}.
カスタム操作
送信プロンプト
ユーザーが指定したプロンプトをターゲット LLM に送信します。以下のパラメータを受け入れます。
- llmName (文字列) – の名前 生々しい 送信されたプロンプトを処理するために使用される LLM。
- プロンプト – 処理するプロンプト。これは次のいずれかである必要があります。 String 値または配列
io.vantiq.ChatMessageインスタンス( 会話メモリ). - 会話ID (文字列) - 送信されたプロンプトに追加のコンテキストを提供するために使用する会話のオプションID( 会話メモリ).
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべての LLM インスタンスに対する完全なアクセス権があります。
- user – ユーザーは、自分の名前空間内のすべての LLM インスタンスに対する読み取り専用アクセス権を持ちます。
ログ
ログは、現在の名前空間で実行されているルールによって記録されたすべてのメッセージへのアクセスを提供します。ログメッセージリソースは、次のJSON表現を持ちます。
{
"invocationId": "4de70a07-043e-43da-a407-8a9266692282",
"level": "WARN",
"message": "First Test",
"sequenceId": 0,
"timestamp": "2016-05-25T06:04:48.112Z"
}
その invocationId 同じルール呼び出しによって生成されたメッセージをグループ化するために使用できます。 sequenceId メッセージの正確な順序を提供するために使用されます。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのログ インスタンスに対する完全なアクセス権があります。
- user – ユーザーは自分が作成したすべてのログインスタンスに対する完全なアクセス権を持ちます。
名前空間
名前空間は、Vantiqサービスのユーザーのための独立した環境を定義します。各名前空間は、データ、状況、推奨事項、ルールを他の名前空間から完全に分離することを保証します。名前空間は、課金およびクォータ管理を目的として、オプションで組織に関連付けることができます。
名前空間は、ユーザーがログインした際に、ユーザーのIDに基づいて確立されます。認証された各IDは、1つの名前空間にのみ関連付けられます。名前空間を作成するには、次のJSONドキュメントをリソースURIにPOSTします。
{
"namespace": "<namespaceName>",
"organization": {
name: "<organizationName>",
description: "<organizationDescription>"
},
"username": "<adminUsername>",
"password": "<adminUserPassword>",
"encryptionKey": "<encryptionKey>"
}
コラボレー
- その 名前空間 プロパティは英数字で構成され、埋め込まれたアンダースコア (_) を含めることができます。
- その 組織 は、新しい名前空間に作成され、関連付けられるオプションの組織インスタンスです。
- その ユーザ名 の三脚と password どちらもオプションで、デフォルト値は
admin__<namespaceName>. - その 暗号化キー はオプションであり、指定されている場合は、名前空間に保存されている機密データを暗号化するために使用されます。
名前空間リソースが作成されると、次の JSON 表現が保持されます。
{
"namespace": "<namespaceName>",
"organizationRef": "<organizationRef>"
}
カスタム操作
名前空間は、次のカスタム リソース操作をサポートします。
承認済みユーザーのリスト
op– 「getAuthorizedUsers」
名前空間内で認可されているユーザーと、そのユーザーに付与されているプロファイルのリストを返します。この操作には引数はありません。 ここの例.
ユーザーを承認する
委任リクエストを作成します。このリクエストを実行すると、実行ユーザーに名前空間へのアクセスが許可されます。この操作の引数は、以下のプロパティを持つJSONドキュメントです。
op– 「delegateUserAuthZ」data– 次のプロパティを持つ JSON ドキュメント:profiles– ユーザーに付与するプロファイルのリスト。オプション – 指定しない場合、ユーザーには最小限の権限が付与されます。requireExisting– 設定可能なブール値true承認対象のユーザーが既にVantiqに登録されているユーザーであることを示します。オプションです。指定しない場合は、リクエスト元がユーザーの作成を許可されている限り、新規ユーザーの作成が許可されます。parameters– メールテンプレートに入力するキーと値のペアを持つオブジェクト。オプション – デフォルトのテンプレートはパラメータを必要とせず、公開操作でも設定できます。パラメータの詳細については、 こちら.htmlTemplate– テンプレートとして使用するドキュメントの名前を表す文字列。現在の名前空間内のドキュメントのみを検索できます。省略可能 – 設定されていない場合は、デフォルトのテンプレート、または公開操作で指定されたテンプレートが使用されます。テンプレートのフォーマットに関する詳細は、 こちら.subject– リクエストによって送信されるメールの件名となる文字列。デフォルトは「Vantiq – Namespace Authorization」ですが、委任リクエストを公開する際に上書きされる場合があります。expiresAt– 招待状の有効期限を示す日付時刻。オプション。デフォルトでは招待状作成日から2日後。 タイムアウト パラメータに一致する最初のデバイスのリモートコントロール URL を返します。timeout– 招待の有効期間(秒)。オプション。デフォルトは2日間または 有効期限 パラメータに一致する最初のデバイスのリモートコントロール URL を返します。
承認を取り消す
名前空間へのユーザーの権限を取り消します。十分な権限がない場合は、何もせずに成功を返します。このコマンドの引数は、以下のプロパティを持つJSONドキュメントです。
op– 「ユーザー認証を取り消す」data– 次のプロパティを持つ JSON ドキュメント:username-username取り消すことができるユーザーの財産。transferResources– オプションのブール値。取り消されたユーザーの特定のリソースを譲渡するかどうか。trueに設定し、取り消しが成功した場合、取り消されたユーザーが所有するすべてのリソースが取り消しを行ったユーザーに譲渡されます。
移転されたリソース
リソースを転送すると、以下のリソースが指定された方法で影響を受けます。
- 非個人トークン。トークンは通常、失効時に削除されますが、所有権は対象ユーザーに移行されます。個人トークンは、元の作成者のユーザー名を使用し、他の名前空間でも元の作成者の権限を持つ可能性があるため、削除対象となります。
- 譲渡されるトークンは
ars_createdBy取り消されたユーザーと同じ権限を持ち、ars_createdByフィールドが新しい所有者に設定されます。
- 譲渡されるトークンは
- ソース。ソースの権限は作成者から取得されます。権限の取り消しにより機能しなくなるのを防ぐため、これらのリソースは譲渡されます。
- 転送されるソースは
ars_createdBy取り消されたユーザーと同じ権限を持ち、ars_createdByフィールドが新しい所有者に設定されます。 - グループ。グループの編集はグループのオーナーのみに許可されます。オーナーがグループから追い出された際にグループを再作成する必要がないように、グループの所有権は譲渡されます。
- グループは
owner取り消されたユーザーは、ownerの三脚とars_createdByフィールドが新しい所有者に変更されました。
- グループは
- ルールとアプリ。これらのリソースは、最後にリソースを編集したユーザーの権限を使用します。失効時に機能しなくなるのを防ぐため、これらのリソースは移行されます。
- 取り消されたユーザーが登録されているルールとアプリ
ars_modifiedByまたは取り消されたユーザーars_createdBywhilears_modifiedBy設定されていない場合は、ars_modifiedBy新しい所有者に変更されました。この時点でルールが再生成されます。アプリは完全には再生成されませんが、基盤となるルールとイベントストリームは再生成されます。
- 取り消されたユーザーが登録されているルールとアプリ
- カスタムタイプ。カスタムタイプは、所有者による書き込み権限または所有者による読み取り権限を設定できます。管理者による所有者による書き込み権限に制限されているリソースの場合、権限が取り消されたユーザーが作成したそのタイプのすべてのインスタンスが移行されます。
- 取り消されたユーザーが所有者による書き込みまたは所有者による読み取りのカスタムタイプのインスタンス
ars_createdBy必要がありますars_createdBy新しい所有者に変更されました。
- 取り消されたユーザーが所有者による書き込みまたは所有者による読み取りのカスタムタイプのインスタンス
孤立したリソース所有者を見つける
名前空間からユーザーを削除すると、機能しないリソースが残ってしまう可能性があります。この操作は、名前空間内の孤立したリソースの所有者を返し、 孤立したリソースの転送操作.
op– 「findOrphanOwners」
結果は、名前空間内のすべての孤立したリソースのユーザー名の配列になります。これらは推奨ユーザー名ではなく実際のユーザー名であるため、人間が判読できない可能性があります。
孤立したリソースの転送
これにより、特定のユーザーによって孤立したすべてのリソースが呼び出し元に転送されます。 移転されたリソース 何が転送されるかを正確に確認します。トークンはすでに削除されているため、転送しても発信者に新しいトークンは付与されないことに注意してください。
op– 「リソース所有権の譲渡」data– 以下のプロパティを持つJSONドキュメントexistingOwner– 対象リソースの現在の所有者のユーザー名。ユーザーが名前空間内で権限を保持している場合はエラーが発生します。 孤児の所有者を見つける 有効なターゲットを識別するには、この操作を使用する必要があります。
アクセス権
- システム管理者 – システム管理者はすべての名前空間への完全なアクセス権を持ち、新しい名前空間を作成できます。 組織 名前空間の作成の一部として。
- 組織管理者 – 組織管理者は標準の名前空間管理者と同じ権限を持ち、さらに、自動的に組織の一部となる新しい名前空間を作成することもできます。
- 開発者 – 開発者は標準の名前空間管理者と同じ権限を持ち、さらに自分自身を管理者として新しい名前空間を作成することもできます。
- 管理人 – 管理者ユーザーには、名前空間インスタンスの読み取りおよび更新権限があります。名前空間を削除できるのはシステム管理者のみです。
- user – ユーザーには、名前空間インスタンスに対する読み取り専用アクセス権が与えられます。
イベント
次の操作に対してイベントが生成されます。
- 許可 – ユーザーが名前空間に対して承認されたときに発生します。提供されるデータは、以下のプロパティを持つオブジェクトです。
- ユーザ名 – ユーザーの
usernameプロパティ。 - 優先ユーザー名 – ユーザーの
preferredUsernameプロパティ。 - プロファイル – 承認されたプロファイルの修飾名。
- ユーザ名 – ユーザーの
- 取り消された – ユーザーのネームスペースに対する権限が取り消されたときに発生します。提供されるデータは、以下のプロパティを持つオブジェクトです。
- ユーザ名 – ユーザーの
usernameプロパティ。 - 優先ユーザー名 – ユーザーの
preferredUsernameプロパティ。 - プロファイル – 承認されたプロファイルの修飾名。
- ユーザ名 – ユーザーの
例
デフォルトの管理者ユーザーとパスワードで名前空間を作成する
POST https://dev.vantiq.com/api/v1/resources/namespaces
{
"namespace": "exampleNamespace"
}
デフォルトの管理者ユーザーとパスワードで名前空間を作成し、新しい組織を作成します
POST https://dev.vantiq.com/api/v1/resources/namespaces
{
"namespace": "exampleNamespace",
"organization": {
"name": "MyOrganization"
"description": "The description of my organization."
}
}
名前空間を削除
名前空間は DELETE REST リクエストを使用して削除されます。
DELETE https://dev.vantiq.com/api/v1/resources/namespaces/exampleNamespace
この操作は名前空間管理者のみが実行でき、名前空間に関連付けられたすべてのリソースインスタンスを削除します。
Nodes
ノードは、自身が定義されているインストールとの連携に同意したリモートVantiqインストールを識別します。ローカルノードとリモートノードの両方へのアクセス権限を持つ管理者が、リモートインストールを識別するノードを定義し、リモートインストールへのアクセスに必要な有効な認証情報が含まれている場合、ノードはリモートノードとの連携に同意します。
会員登録する
ノードは、ノード リソース タイプに対して POST を発行することによって登録または更新されます。
ノードには次のプロパティがあります。
- 名 – リモート ノードに割り当てられたローカル名。
- URI – リモートインストールへのアクセスに使用するURI(URL)。例えば、Vantiqのパブリック開発者向けインストールにアクセスする場合、URLには次の値が割り当てられます。 https://dev.vantiq.com。 に加えて
http(s)使用することも可能ですws(s)ウェブソケットをトランスポートとして使用したり、vqs再利用する 名前付きWebソケット接続. - ユーザ名 – リモートインストールへのアクセスに使用するユーザー名。ユーザー名は、リモートインストールで有効なユーザー名である必要があります。
- password – ユーザー名の認証に使用されるパスワード。
- アクセストークン – リモートインストールへのアクセスに使用するトークン。ユーザー名/パスワードまたはaccessTokenのいずれかを指定する必要があります。
- 資格情報タイプ – 値を設定する ユーザーパスワード or トークン。 デフォルトは ユーザーパスワード 指定されていない場合。
- 配信モード – 現在未使用だが、値を設定する ベストエフォート.
- プロパティ – リモートノードの特性を表すために使用できるプロパティを識別するJSONオブジェクト。これらのプロパティは通常、VAILでリモート呼び出しをターゲットにする際に、リモートノードのクラスを識別するために使用されます。 リモートターゲットの選択.
- クライアントオプション – JSONオブジェクト形式の Vert.x HTTP クライアント オプション ノードに接続するときに使用するクライアントを構成するために使用されます。
- 再接続します – 接続が失われた場合にノードが自動的に再接続するかどうかを示すブール値。このプロパティは、
ws(s)URIとvqsオプション。 デフォルトはfalse指定されていない場合。
一般的な用途 clientOptions には次の値があります:
Disable the SSL trust check:
{
"trustAll" : true
}
Enable the use of an HTTP proxy:
{
"proxyOptions" : {
"host": "hostABC",
"port": 8080,
"password": "pwd123",
"username": "uuuu"
}
}
名前付きWebSocket接続
ノードがトランスポートとしてWebソケットを使用する場合、オプションを使用してWebソケット接続に名前を付けることができます。 vqs パラメータ を使用します。 ws(s)://<host>?vqs=<name>Web ソケット接続に名前を付けると、リモート インストールで次の URI を使用して同じオープン ソケットを介して通信できるようになります。 vqs://<name>.
例えば、ファイアウォールがクラウドのインストールを妨げていると仮定します。 dev.vantiq.com エッジサーバーはクラウドに接続できるものの、エッジサーバーに直接アクセスすることはできません。クラウドからエッジへの通信を可能にするには、エッジにノード定義(例:EdgeToCloud)を作成し、URIを設定します。 wss://dev.vantiq.com?vqs=myEdge クラウドインストール上のノード定義(例:CloudToEdge)とURI vqs://myEdgeエッジがURIでクラウドに接続すると wss://dev.vantiq.com?vqs=myEdge、 名前 myEdge 伝達される dev.vantiq.com クラウドがオープンソケットに名前を付けられるようにします。CloudToEdgeノード定義が使用されると、URIは vqs://myEdge エッジへの通信チャネルを提供する既存の名前付きオープンソケット接続に解決されます。
URI構文を持つノードの場合 vqs://<name> いつでも定義できますが、ノードは指定された名前付きオープンソケット接続を必要とします。 <name> アクティブな接続に解決されます。例えば、ノード EdgeToCloud が接続を確立しない限り、ノード CloudToEdge はエッジサーバーと通信できません。
あなたが持っている必要がある場合 vqs 接続が常にアクティブの場合は、 reconnect プロパティが真であると Node URIの定義 ws(s)://<host>?vqs=<name>これにより、ノードは定義・追加されたときに自動的に接続され、接続が失われたときにも自動的に再接続されます。上記の例を使用する場合、 reconnect オプションはEdgeToCloudノード定義で指定され、EdgeToCloudが常に接続を開いたままにし、CloudToEdgeノードが vqs 参照された名前付きソケットが常にアクティブになります。
同じインストール上の複数のノードを同じ名前のソケット(つまり同じURI)を使用して定義できることに注意してください。 vqs://<name>).
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのノード インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべてのノード インスタンスに対する読み取り専用アクセス権が与えられます。
例
ノードを登録する
POST https://dev.vantiq.com/api/v1/resources/nodes
{
"name": "exampleNodeName",
"uri": "https://api.vantiq.com",
"username": "myRemoteUsername",
"password": "myRemotePassword",
"deliveryMode: "bestEffort",
"properties": {
location: "CA",
nodeType: "gateway"
}
}
ノードの削除
DELETE https://dev.vantiq.com/api/v1/resources/nodes/exampleNodeName
企業・組織の方へ
組織は、 テナント システム管理者が新しい名前空間を作成する権限を委任したユーザー。Vantiqクラウド展開の場合、これはVantiqが何らかの関係を築いている顧客を表すために使用されます。
組織は、ルート名前空間の作成時に作成されます(詳細は名前空間を参照してください)。組織には以下のプロパティがあります。
- 名 – 組織のプライマリ ID。英数字で構成され、埋め込まれたアンダースコア (_) を含めることができます。
- 説明 – 組織の説明(オプション)。
- k8sリソース使用状況 – 組織の現在のリソース使用状況を示すオプションのプロパティ K8sクラスター 命名
self(Vantiqが実行されるクラスタ)。このプロパティは、組織がクラスタにデプロイするクォータを持っている場合にのみ表示されます。selfクラスターを作成し、それを活用しました。
アクセス権
システム管理者を除くすべてのユーザーには、名前空間が関連付けられている組織 (存在する場合) への読み取り専用アクセス権があります。
手順
プロシージャは、ルールまたは別のプロシージャの本体から呼び出すことができる名前付き操作です。
プロシージャは、REST API経由でプロシージャリソースインスタンスに対してPOST操作を発行することで直接呼び出すこともできます。POSTのボディには、プロシージャに渡すパラメータを記述したJSONドキュメントが含まれます。プロシージャの結果は、リクエストのボディとして返されます。パラメータは、名前または位置で渡すことができます。名前付きパラメータと位置パラメータの混在はサポートされていないことに注意してください。例えば、以下のリクエストはプロシージャを呼び出します。 摂氏に変換 パラメータ付き 温度 32に設定します。
Method: POST
URL: /api/v1/resources/procedures/ConvertToCelcius
Body: { "temperature": 32 }
同様に、パラメータを位置的に渡すには、次のようにします。
Method: POST
URL: /api/v1/resources/procedures/ConvertToCelsius
Body: [32]
プロシージャは、その単純名と、それが属するサービス名(存在する場合)を組み合わせた完全修飾名で識別されます。例えば、次のリクエストは、プロシージャを呼び出します。 摂氏に変換 の一部です メートル法変換 サービス。
Method: POST
URL: /api/v1/resources/procedures/MetricConversions.ConvertToCelcius
Body: { "temperature": 32 }
ユーザー定義の手順については、 VAIL リファレンス ガイド.
カスタム操作
プロシージャは、次のカスタム リソース操作をサポートします。
実行
この操作はプロシージャを実行し、結果を返します。この操作は単一の引数(JSON配列またはオブジェクト)を受け入れます。配列が指定された場合、プロシージャは位置パラメータを使用して呼び出されます。位置パラメータでは、配列内の各要素が順番にプロシージャパラメータにマッピングされます。オブジェクトが指定された場合、プロシージャは指定されたJSONオブジェクトのプロパティ名に基づく名前付きパラメータを使用して呼び出されます。
の関係
手順には、次のいずれかの関係があります。
- 公開する 手順テキスト内で公開されているトピックとの関係
- 実行 手続き内で実行される手続きとの関係
- 依存関係 手順テキストまたはパラメータ内で参照される任意のタイプ、ソース、またはサービスとの関係
- 依存関係 手順をテストするユニットテストまたはユニットテストスイートとの関係
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのプロシージャ インスタンスへの完全なアクセス権と、システム定義のプロシージャに対する読み取り専用権限があります。
- user – ユーザーには、すべてのプロシージャ インスタンスに対する読み取り専用アクセス権が与えられます。
グループが有効
トピックは「グループ対応」のリソースです。「トピック」をグループに配置すると、そのトピックの使用(パブリッシュとサブスクライブの両方)が、グループのメンバーであるIDに制限されます。
対応プロファイル
プロファイルには、そのプロファイルを割り当てられたユーザーが名前空間で定義されたデータや動作にアクセスできる権限が含まれています。ユーザーが割り当てられたプロファイルで許可されていない操作を実行しようとすると、リクエストは失敗し、承認エラーが返されます。
機能はプロファイル プロパティで次のように定義されます。
- dml – ユーザーは、機能で指定されたコレクションに対して選択、挿入、更新、削除、集計操作を発行できます。
- 呼び出します – ユーザーは機能で指定された操作を呼び出すことができます。
プロファイルには次のプロパティが含まれます。
- 名 – プロファイル名。プロファイル名は一意である必要があります。プロファイル名は英数字の文字列で、アンダースコア文字を含むことができます。その他の文字はプロファイル名に使用できません。
- dml – 名前空間で定義された1つ以上の型に対して、ユーザーに割り当てられる権限を定義します。特定の型の権限が含まれていない場合、ユーザーはその型にアクセスできません。詳細については、以下のDML権限を参照してください。
- 呼び出します – Vantiq で定義されたタイプ以外では使用されません。
プロファイルの JSON 表現:
{
"name": "<profileName>",
"dml": { "<typeName">:
{
"select": {<typeConstraint>},
"insert": {<typeConstraint>},
"update": {<typeConstraint>},
"delete": {<typeConstraint>},
"invoke": []
}
},
"invoke": {"createType": true}
}
デフォルトプロファイル
時 名前空間 が作成されると、システムは自動的に2つのデフォルトプロファイルを作成します。 user の三脚と adminこれらのプロフィールは変更不可能であり、新しいプロフィールが追加されると自動的に更新されます。 名前空間で定義されます。
各プロファイルに割り当てられる特定のアクセスレベルは、タイプの定義によって決まります。デフォルトでは、 user 割り当てられる 読み取りアクセス の三脚と admin 割り当てられる 読み書きアクセス必要に応じて、プロパティを設定することで、個々のタイプのアクセスレベルを変更できます。 ユーザーアクセスレベル or 管理者アクセスレベル そのタイプでは.
可能なシステム権限レベル
システムタイプの管理者プロファイル – admin__system – 名前空間に応じて、複数の異なるレベルの権限を持つことができます。リソースが 管理人 アクセス レベルは、特に指定がない限り、以下のすべてに適用されます。
- システム管理者 – システム名前空間にのみ存在します。すべての名前空間で利用可能な組織と新しいリソースを作成できます。
system.adminプロフィール。 - 組織管理者 – 各組織の初期名前空間にのみ存在する 組織新規ユーザーと様々な名前空間を作成できます。
system.federatedOrgAdminプロフィール。 - 名前空間管理者 – ほとんどの導入済み名前空間のレベル。名前空間に新しいユーザーを作成できますが、名前空間を作成することはできません。
system.federatedAdminプロフィール。 - Developer – 開発者が作成した名前空間のレベル。ユーザーの作成はできませんが、ユーザーを名前空間に承認したり、新しい名前空間を作成したりできます。
system.federatedDeveloperプロフィール。
システムタイプのユーザー管理者プロファイル – userAdmin__system – 常に同じレベルの権限を持ちます。 system.federatedUserAdmin プロファイルであり、名前空間管理者がいる名前空間にのみ存在します。特に指定がない限り、ユーザープロファイルと同じ権限を持ちます。
システムタイプのユーザープロファイル – user__system – 常に同じレベルの権限を持ちます。 system.federatedUser プロフィール。
組織ユーザープロファイルもあります orgUser__system 組織の名前空間で。 system.federatedOrgUser プロファイルを作成し、ユーザーが明示的な権限を持たない組織内のすべての名前空間で、ユーザー レベルの権限とドキュメントの完全な読み取り権限を付与します。
DML機能
dmlプロパティ値は、ユーザーがアクセスを許可されている各タイプに対応するプロパティを持つオブジェクトです。プロパティ名はタイプ名です。プロパティに関連付けられた値は、以下のプロパティを使用して、そのタイプに対してユーザーに割り当てられた詳細な権限を記述するオブジェクトです。
- select – 値は、読み取り可能なオブジェクトに対する制約です。すべてのオブジェクトが読み取り可能な場合はnullになります。例えば、ユーザーは100ドル未満の金融取引のみを閲覧できます(「ars_substitution_」はこのドキュメントの後半で定義されます)。
{"select": {"total": {"ars_substitution_lt": "USD:100"}}} - update – 値は更新可能なオブジェクトに対する制約、またはすべてのオブジェクトが更新可能な場合はnullです。例えば、ユーザーは100ドルを超える金額の金融取引のみを更新できます(「ars_substitution_」はこのドキュメントの後半で定義されます)。
{"update": {"total": {"ars_substitution_gt": "USD:100"}}} - insert – 値は、挿入可能なオブジェクトに対する制約です。すべてのオブジェクトが挿入可能な場合はnullになります。例えば、ユーザーは100ドルを超える金額の金融取引のみを更新できます(「ars_substitution_」はこのドキュメントの後半で定義されます)。
{"insert": {"total": {"ars_substitution_gt": "USD:100"}}} - 削除 – 値は、削除可能なオブジェクトに関する制約を含むオブジェクト、またはすべてのオブジェクトを削除可能な場合はnullです。例えば、ユーザーはインスタンスの合計値が100ドル未満の場合にのみオブジェクトを削除できます。
{"delete": {"qual": {"total": {"ars_substitution_lt": "USD:100"}}}} - 集計 – 値は、集計可能なオブジェクトに対する制約を含むオブジェクトです。例えば、ユーザーは合計が100ドルを超える金融取引の合計プロパティを集計できます。
{"aggregate": {"total": {"ars_substitution_lt": "USD:100"}}}
dml プロパティにタイプの名前が指定されていない場合、ユーザーにはそのタイプに対するアクセス権がありません。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのプロファイル インスタンスへのフル アクセス権と、すべてのシステム プロファイルへの読み取り専用アクセス権があります。
- user – ユーザーには、すべてのプロファイル インスタンスに対する読み取り専用アクセス権が与えられます。
例
プロファイルを作成します。
https://dev.vantiq.com/api/v1/resources/profiles
{ "name": "myProfile",
"dml": {"myType": {
"select": {},
"insert": {},
"update": {"total" : {"ars_substitution_lt": "USD:100"}},
"delete": {},
"aggregate":{},
"invoke": []
},
"invoke": ["createType", "deleteType"]
}
プロファイルの削除
DELETE https://dev.vantiq.com/api/v1/resources/profile/myProfile
プロジェクト
Vantiqプロジェクトは、名前空間内のリソースの集合であり、単一のデプロイ可能なユニットを表します。プロジェクトは、デプロイメントツールの一部として、また統合テストにも使用されます。
プロジェクトには次のプロパティが含まれます。
- 名 (String): アセンブリの一意の名前
- リソース (オブジェクトの配列): オブジェクトの配列。各オブジェクトは
{resourceReference: </resource>/<resourceId>}アセンブリに含まれる各リソースを定義します。
アセンブリ アセンブリは、プロジェクトの特別なインスタンスであり、設定と再利用が可能で、Vantiqカタログを介して共有できます。アセンブリには、以下の追加のプロパティが含まれます。
- アセンブリ (boolean): プロジェクトがアセンブリの場合に true に設定する必要があるブールフラグ
- 構成プロパティ (オブジェクト): 設定プロパティを含むオブジェクト。各キーは設定プロパティの名前、値はプロパティの説明です。設定プロパティの定義方法については以下を参照してください。
- 構成マッピング (オブジェクト): 各構成プロパティがアセンブリリソースにどのように適用されるかを記述するオブジェクト。 組立ガイド 構成プロパティのマッピングを定義する方法については、 使用.
- 表示リソース (文字列の配列): アセンブリコンシューマーが参照可能なアセンブリリソースを記述するリソース参照のリスト。このリストに含まれるサービスはアセンブリインターフェースとみなされます。リストに含まれるその他のリソースはすべて「参照可能なリソース」です。
- データの選択 (オブジェクト): アセンブリに含めるデータを記述するオブジェクト。各キーは型名で、値は SELECT ステートメントで使用する「where 句」です。
- カスタム生成手順 (プロシージャ名): アセンブリ構成を処理し、リソース構成を生成するプロシージャの名前。このプロシージャには以下のパラメータが与えられます。
assemblyName構成を生成するアセンブリの名前が含まれます。値が指定されていない場合は、デフォルトの手順が使用されます。- 警告: この手順 しなければなりません 各リソースのリソース構成を作成します。 強く助言 UI を使用して手順を作成します。 詳細はこちらをご覧ください
カスタム操作
の関係
プロジェクトには、次のいずれかの関係があります。
- 含まれています プロジェクトに含まれるプロジェクトリソースとの関係
- 依存関係 プロジェクトをテストするユニットテストまたはユニットテストスイートとの関係
- 依存関係 プロジェクトがアセンブリの場合、プロジェクトを構成するために使用されるアセンブリ構成との関係
アクセス権
- 管理人 – 管理ユーザーには、自分の名前空間内のすべてのプロジェクト インスタンスに対する完全なアクセス権があります。
- user – ユーザーにはプロジェクト インスタンスへのアクセス権がありません。
ルール
ルールは、アプリケーションモデルに関連するイベントの発生にアプリケーションが応答する方法を提供します。これらのイベントは、外部システムからのデータの到着、別のアプリケーションからのデータの受信、アプリケーションの永続データの変更などを示す場合があります。
ジョブの設定方法については、 VAIL リファレンス ガイド ルール定義の詳細な説明については、こちらをご覧ください。
会員登録する
新しいルールやコンポーネント、更新されたルールやコンポーネントは、 登録 コマンド:
POST https://dev.vantiq.com/api/v1/resources/rules[?active=false]
<rule definition>
If アクティブ が false に設定されている場合、ルールは最初は非アクティブ状態になります。デフォルトでは、新規または更新されたルール定義はアクティブ状態になります。
詳細はこちら: VAIL リファレンス ガイド ルール定義の詳細な説明については、こちらをご覧ください。
削除
ルールまたはコンポーネントは、 削除 コマンド:
DELETE https://dev.vantiq.com/api/v1/resources/rules/<ruleName>
名前付きルールまたはコンポーネントを削除します。
ルールの有効化状態の変更
ルールまたはコンポーネントは、REST リクエストを介してアクティブ状態に設定できます。
PATCH https://dev.vantiq.com/api/v1/resources/rules/<ruleName>
JSON メッセージ本文:
[
{
"op": "replace",
"path": "/active",
"value": true
}
]
ルールは、JSON 本文を含む REST リクエストを介して非アクティブ状態に設定できます。
[
{
"op": "replace",
"path": "/active",
"value": false
}
]
の関係
ルールには、次のいずれかの関係があります。
- 購読者 ルールのトリガーイベントを生成するリソースとの関係
- 公開する ルールテキスト内で公開されているトピックとの関係
- 実行 ルール内で実行されるあらゆる手順との関係
- 依存関係 ルールテキスト内で参照されるタイプ、ソース、またはサービスとの関係
- 依存関係 ルールをテストするユニットテストまたはユニットテストスイートとの関係
アクセス権
- 管理人 – 管理者ユーザーには、名前空間内のすべてのルール インスタンスへのフル アクセス権と、すべてのシステム ルールへの読み取り専用アクセス権があります。
- user – ユーザーにはすべてのルール インスタンスに対する読み取り専用アクセス権が与えられます。
予定されているイベント
スケジュールイベントとは、後で配信するようにスケジュール設定されたイベントです。スケジュールでは、イベントを1回だけ配信するか、削除されるまで繰り返し配信するかを指定できます。このようなイベントは、リソースAPIまたは 出版 VAILでの声明。
スケジュールされたイベントには次のプロパティがあります。
- 名 – スケジュールされたイベントの名前。これは読み取り専用プロパティで、リソース識別子として機能します。定期的なイベントを作成する場合は必須ですが、1回限りのイベントを作成するリクエストでは省略可能です(この場合、システムによって生成された名前が付けられます)。
- periodic – これが1回限りのイベントか定期的なイベントかを示すブール値。この値は変更できません。
- 一時的なもの – これが「一時的な」(メモリ内のみ)スケジュールされたイベントであるかどうかを示すブール値。
- 発生する – イベントの次回配信予定日時を示すDateTime。1回限りのイベントの場合、イベントはここで指定した日時のみ配信されます。
- インターバル – イベントの配信頻度を示す整数。値はミリ秒単位で指定します。1回限りのイベントまたは定期的なイベントの作成時に使用できますが、返されるのは定期的なイベントの場合のみです。
- トピック – イベントが公開されるトピック。
- メッセージ – 公開するメッセージ データ。
一度作成されたワンタイムイベントは削除することしかできず、更新することはできません。
カスタム操作
の関係
予定されているイベントには 公開する 公開がスケジュールされているトピックとの関係。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのスケジュールされたイベント インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべてのスケジュールされたイベント インスタンスに対する読み取り専用アクセス権が与えられます。
例
1回限りのスケジュールされたイベントを作成する
ここでは、リクエストの 1 分後に配信される XNUMX 回限りのイベントを作成します。
POST https://dev.vantiq.com/api/v1/resources/scheduledevents
{
"interval": 60000,
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
{
"name": "12345678",
"periodic": false,
"occursAt": "<ISO date string one minute from request time>",
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
ここでは、指定された時間 (将来の時間である必要があります) に配信される 1 回限りのイベントを作成します。
POST https://dev.vantiq.com/api/v1/resources/scheduledevents
{
"occursAt": "<ISO date string specifying a time in the future>",
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
{
"name": "9081399291",
"periodic": false,
"occursAt": "<ISO date string specifying a time in the future>",
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
定期的なスケジュールイベントを作成する
ここでは、リクエストから 1 時間後とその後 1 時間ごとに配信されるスケジュールされたイベントを作成します。
POST https://dev.vantiq.com/api/v1/resources/scheduledevents
{
"name": "myEvent",
"periodic": true,
"occursAt": "<ISO date string specifying a time in the future>",
"interval": 3600000,
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
{
"name": "myEvent",
"periodic": true,
"occursAt": "<ISO date string specifying a time in the future>",
"interval": 3600000,
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
スケジュールされたイベントの定義を取得する
GET https://dev.vantiq.com/api/v1/resources/scheduledevents/myEvent
{
"name": "myEvent",
"periodic": true,
"occursAt": "<ISO date string specifying a time in the future>",
"interval": 3600000,
"topic": "/myTopic",
"message": { "value": "This is a string" }
}
スケジュールされたイベント間隔の更新
PUT https://dev.vantiq.com/api/v1/resources/scheduledevents/myEvent
{
"name": "myEvent",
"interval": 60000
}
,war
シークレット
シークレットは、一度書き込むと名前空間内のユーザーには二度と表示されない、安全なテキストを格納するためのコンテナです。シークレットは、ソース設定内の特定のプロパティを設定するために使用できます。これにより、ソース設定を閲覧するユーザーに対してシークレット値を非表示にすることで、ソースのセキュリティを強化できます。
シークレットには、名前、説明、シークレットの3つのプロパティ(すべて文字列)があります。データベースからシークレットが選択された場合、シークレットプロパティは返されず、シークレットの値は、シークレットを名前で参照するソースからのみ利用できます。シークレットプロパティは、セキュリティ強化のため、データベース内で暗号化されます。
シークレットを参照できるソース構成プロパティは次のとおりです。
- MQTT – パスワード
- AMQP – パスワード
- REMOTE – パスワードとアクセストークン
- チャットボット – クライアントシークレット
- メールアドレス – パスワード
- PUSH_NOTIF – aPNSPKCS12Password と firebaseServerKey
- SMS – twilioAuthToken
例
秘密を作成する
POST https://dev.vantiq.com/api/v1/resources/secrets
{
"name": "MySecret",
"description": "This is a description of my secret.",
"secret": "mypassword"
}
秘密を取得する
GET https://dev.vantiq.com/api/v1/resources/secrets/MySecret
{
"name": "MySecret",
"description": "This is a description of my secret."
}
シークレットに対してGETを実行すると、レスポンスからシークレットプロパティが省略されることに注意してください。シークレットの値は更新によって上書きされる可能性がありますが、ユーザーリクエストによって選択されることはありません。
シークレットの更新
シークレット値は初期設定後は表示できませんが、更新は可能です。シークレット値の更新に関する注意点として、更新されたシークレットを参照するソースは、シークレットの変更を有効にするために、一度無効化してから再度有効化する必要があります。ソースが再度有効化されるまで、ソースは引き続き古いシークレット値を使用します。
セマンティックインデックス
セマンティック インデックスは、各インデックス インスタンスに含まれる特定のコンテンツに対するセマンティック検索をサポートします。
組み込みサービスも参照 io.vantiq.ai.セマンティックサーチ.
セマンティック インデックスには次のプロパティがあります。
- 名 (文字列) – セマンティックインデックスの名前。Vantiqの名前空間内で一意である必要があります。パッケージ名を含めることができます。
- 埋め込みモデル (文字列) – の名前 LLM あらゆるコンテンツのベクトル埋め込みを作成するために使用されます。LLMタイプは 埋め込みこのプロパティは一度設定すると変更できません。
- 説明 (文字列) – インデックスのオプションの説明。
- 設定 (オブジェクト) – セマンティックインデックスの設定。設定可能なプロパティは以下のとおりです。
- 言い換え質問 (ブール値) - 会話履歴やその他のコンテキストを使用して質問を言い換えるかどうか。デフォルトは
true. - 生成された質問を返す (ブール値) – 質問に答える際に、返されるオブジェクトに言い換えられた質問を含めるかどうか。 言い換え質問 が偽の場合、言い換えられた質問が返されますが、元の質問が使用されます。デフォルトは
false. - 戻り値ソースドキュメント (ブール値) - 質問のコンテキストとして含まれる文書のメタデータを返すかどうか。デフォルトは
true.
- 言い換え質問 (ブール値) - 会話履歴やその他のコンテキストを使用して質問を言い換えるかどうか。デフォルトは
- デフォルトの最小類似度 (実数) – セマンティックインデックス内の文書が質問への回答において関連性があるとみなされるために必要な、デフォルトの最小類似度スコア。値が指定されていない場合、セマンティックインデックスは類似度スコアに関係なく、常に最も関連性の高い文書を返します。
- 外部プロバイダー (文字列) – GenAIFlow サービス コネクタが外部セマンティック インデックス エンジンへの接続を確立するために使用するオプションの機能名。
- データベース構成 (オブジェクト) – インデックスのベクターDBを設定するためのオプションの設定ドキュメント。現在、ベクターDBへのアクセスを設定する際に使用されています。 外部 セマンティック インデックス プロバイダー。
- qa手順 (リソース参照) – インデックスに対して質問に回答するために使用できるプロシージャへの参照(オプション)。このプロシージャは、文字列と実行時設定を受け入れます。この仕様は、AnswerQuestionアクティビティパターンで外部セマンティックインデックスを使用するために必要です。内部管理セマンティックインデックスでは使用できません。
- 摂取手順 (リソース参照) – コンテンツをインデックスに取り込むために使用できるGenAIフロープロシージャへのオプションの参照。このプロシージャは、文字列と実行時設定を受け入れます。この仕様により、ユーザーはデフォルトの取り込みメカニズムを変更し、実行する手順をカスタマイズできます。さらに、GenAIフロープロシージャによる取り込みは、取り込みプロセスの時間制約を緩和し、より複雑で長時間実行される操作を利用できるようになります。
- エントリー (配列の Arsセマンティックインデックスエントリ) – インデックスにロードされたエントリの読み取り専用リスト。明示的に要求された場合にのみ含まれます。大規模なインデックスではエントリ数が膨大になる可能性があるため、すべてのセマンティックインデックスエントリの取得を回避するには、ArsSemanticIndexEntyリソースに対してSELECTを実行する必要があります。
- デフォルトQAモデル (文字列) – オプションの名前 生々しい インデックスに対して質問に答えるときに使用される LLM。
カスタム操作
エントリの追加
配列を受け入れる ArsSemanticIndexEntry インデックスにロードされるコンテンツを記述するインスタンス。期待されるプロパティは次のとおりです。
- id (文字列) – エントリのID。この値はオプションです。指定されていない場合は、新しいエントリのIDが生成されます。値が指定され、それが既存のエントリを参照している場合、エントリは新しいコンテンツで「更新」されます。
- contentType (文字列) – コンテンツのオプションの MIME タイプ。
- ファイル名 (文字列) – コンテンツを含むファイルのオプションの名前。
- (オブジェクト) – エントリに関連付けられたメタデータ。
以下のプロパティはすべてオプションですが、いずれか1つは必ず指定する必要があります。以下の順序で最初に見つかったプロパティが使用されます。
- コンテンツ (文字列) – 読み込むコンテンツ。コンテンツタイプがバイナリの場合、この値はBase64でエンコードされると想定されます。
- リソースを追加する。 (ResourceReference) – コンテンツを読み取る Vantiq リソース。
- URI (文字列) – コンテンツを読み取る URI。
エントリの削除
文字列値の配列を受け取ります。各値は既存のエントリのIDとみなされます(一致しない値は無視されます)。参照されたエントリはインデックスから削除されます。
エントリをクリアする
インデックスからすべてのエントリを削除します。
質問に答える
生成 LLM を使用して、ターゲット セマンティック インデックスから取得したコンテキストを使用して、送信された質問に対する回答を合成します。
次のパラメータを受け入れます:
- question (文字列) – インデックスによって提供されるコンテキストを使用して回答する質問。
- qaLLM (文字列) – 回答を生成するために使用する生成LLMの名前(オプション)。値が指定されていない場合は、インデックスのデフォルトのQ&A LLMが使用されます(設定されていると仮定)。
- 会話ID (文字列) – 会話のID(オプション)。質問の補足的なコンテキストを提供するために使用されます。 会話メモリ.
- 最小類似度 (実数) – 質問への回答において、セマンティックインデックス内の文書が関連性があるとみなされるために必要な最小類似度スコアを表す、0~1の任意指定の数値。指定されていない場合は、セマンティックインデックスの定義からデフォルト値が取得されます。定義に値が指定されていない場合、質問への回答は、最も類似する文書を用いて最小スコアのしきい値を考慮せずに続行されます。minSimilarityしきい値の結果としてセマンティックインデックスから関連文書が見つからない場合、質問への回答はqaLLMを参照せずに「不明」を返します。
- コンテキストプロンプト (文字列) – フォローアップの質問への回答に最も関連性の高い、進行中の会話内の特定のコンテキストに LLM が焦点を当てるように指示するオプションのパラメーター。
結果は、次のプロパティを持つオブジェクト値になります。
- 回答 (文字列) – 送信された質問に対する回答。
- (オブジェクト) – 質問に回答する際に文脈を提供するために使用されるエントリに関連付けられたメタデータ。除外されるのは 戻り値ソースドキュメント に設定されています
false. - 言い換えられた質問 (文字列) – LLMが関連する文脈を用いて言い換えた質問。 言い換え質問 に設定されています
false言い換えられた質問は含まれますが、法学修士課程に尋ねられた質問とは異なります。 生成された質問を返す に設定されていますtrue.
チャンクを取得
ターゲット セマンティック インデックス内の指定されたエントリの内容を取得します。
次のパラメータを受け入れます:
- インデックス名 (文字列) – の名前 セマンティックインデックス コンテンツを取得します。
- エントリID (文字列) – コンテンツを取得するエントリの ID。
- 制限 (整数) – 一度に取得するチャンクの最大数。
- オフセット (文字列) – 取得を開始するチャンクのID。
nullこれは、 オフセット 返されるオブジェクトのフィールド。
結果は、次のプロパティを持つオブジェクト値になります。
- オフセット (文字列) – 将来使用されるオフセット チャンクを取得する() この通話が中断したところから通話を続行します。
nullif ポイント このエントリの最後の部分が含まれます。 - ポイント (オブジェクト配列) – データベースに保存されているポイント。以下の形式になります。
- コンテンツ (文字列) – このチャンクの内容。
- (オブジェクト) – このチャンクのメタデータ。
DBからインデックスを復元
ベクターDBの現在の状態を使用して、インデックスの定義を更新します。この操作中、システムはインデックスを完全に「ロック」しようとしないため、実行中に変更が行われた場合、不正確な結果が生成される可能性があることに注意してください。
の関係
セマンティック インデックスには次の関係が含まれる場合があります。
- 依存関係 埋め込みと (設定されている場合) デフォルトの Q&A LLM の関係。
セマンティックインデックスエントリ
セマンティックインデックスエントリは、 セマンティックインデックス。これらは、 セマンティックインデックス操作管理者が読む以外、直接操作することはできません。
セマンティック インデックス エントリには次のプロパティがあります。
- インデックス名 (文字列) – このエントリが属するセマンティック インデックスの名前。
- id (文字列) – エントリのID。エントリの更新および削除時に使用されます。IDは一意です。 インデックスごと 同じエントリが2つ存在する可能性がある idそれぞれが異なる インデックス名.
- status (文字列) – エントリの現在のステータス。次のいずれかになります。
- アップロード保留中 – ファイルのアップロードが完了するのを待っています。これは、指定された場所へのTUSアップロードとなります。 アップロードターゲット フィールド。
- ローディング – コンテンツはアップロードされ、現在処理されてセマンティック インデックスに保存されています。
- ロードされました – エントリはセマンティック インデックスに完全に保存されており、使用可能です。
- 失敗した – エントリの取得、処理、または保存中にエラーが発生しました。
- 空の – エントリの内容が見つかりませんでした。
- エラー (文字列) – エントリの作成中に発生したエラーのメッセージ(発生した場合)。ステータスが 失敗した.
- contentType (文字列) – 提供されたコンテンツの MIME タイプ。
- (オブジェクト) – エントリに関連付けるメタデータ。セマンティックインデックス検索をフィルタリングする際に使用できます。
残りのプロパティは、 インデックスエントリの追加操作 または内部サーバー操作であり、エントリの読み取り時には無視できます。
- ファイル名 (文字列) – コンテンツを提供したファイルの名前。自動的に追加されます 存在する場合。
- URI (文字列) – コンテンツが取得されたURI。自動的に追加されます 存在する場合。
- httpヘッダー (オブジェクト) – 提供された場合に使用されるヘッダー。
- アップロードターゲット (文字列) – エントリのコンテンツをアップロードする場所。これはTUSアップロードになります。エントリの追加時にコンテンツが提供されなかった場合にのみ表示されます。サーバー管理です。
- コンテンツ (文字列) – エントリの内容。エントリ追加操作で明示的に指定された場合にのみ表示されます。
- リソースを追加する。 (文字列) – エントリを作成したVantiqリソースのリソース参照。エントリ追加操作で明示的に指定された場合、またはエントリコンテンツがアップロードされた場合にのみ表示されます。
- コンテンツから (ブール値) - コンテンツがメッセージに直接含まれているかどうかを示します。サーバー管理です。
- コンテンツUri (文字列) – コンテンツが取得されたURI。サーバー管理されます。
アクセス権
- 管理人 – 管理者ユーザーは、自分の名前空間内のすべてのセマンティックインデックスエントリに対して読み取り専用アクセス権を持ちます。エントリを編集するには、関連する セマンティックインデックス操作 エントリのインデックスに。
- user – ユーザーにはセマンティック インデックス エントリへのアクセス権がありません。
サービスコネクタ
サービスコネクタ の実装を表す サービス Vantiqプラットフォーム外で、 べイルこれらの実装は、「外部」(Vantiqのサポートなし)で展開および管理することも、 Kubernetes クラスター。そのクラスターは外部Kubernetesクラスターでも、 Vantiq Kubernetes クラスターどちらの場合も、コネクタは WebSocket を使用してネットワーク経由でアクセス可能であり、Vantiq サービス コネクタ プロトコルを実装する必要があります。
サービス コネクタには次のプロパティがあります。
- 名 (文字列) – サービスコネクタの名前。特定のVantiq名前空間内で一意である必要があります。パッケージ名を含めることができます。
- 外部です (ブール値) - コネクタが外部にデプロイされるか、Vantiq Kubernetes クラスターにデプロイされるかを示します。
外部コネクタには次の追加プロパティがあります。
- host (文字列) – サービスコネクタが動作しているホストの名前。デフォルト値は
localhost. - ポート (整数) - サービスコネクタに接続できるポート。デフォルト値は
8888.
Kubernetes ベースのコネクタには、次の追加プロパティがあります。
- 画像 (文字列) – コネクタのランタイム実装を含むDockerイメージの名前。Kubernetes経由でデプロイする場合は必須です。
- vCPU (整数) – コネクタに必要な仮想 CPU の数(オプション)。
- っ (整数) – コネクタに必要なオプションのメモリ量 (KB 単位)。
- 秘密 (ResourceReference) – Vantiqへの参照 秘密 ファイルとしてマウントされるリソース
/opt/vantiq/secret/secret.propertiesサービス コネクタのファイル システム内。 - レプリカ数 (整数) – 開始するコネクタ インスタンスの数 (デフォルトは 1)。
- プルシークレット (
io.vantiq.k8s.HybridResourceRef) – 秘密の値への参照。 Kubernetesの「プルシークレット」参照先はVantiq 秘密 または既存の Kubnernetes シークレット (システム名前空間内のサービス コネクタに対してのみ有効)。 - プルポリシー (文字列) – コネクタのイメージに使用するプルポリシー。有効な値は次のとおりです。
IfNotPresent(デフォルト)、AlwaysまたはNever. - リソースマウント (
io.vantiq.k8s.ResourceMountArray) – サービスコネクタのファイルシステムにマウントするリソースのオプションリスト。各マウントには以下のプロパティがあります。- リソース参照 (ResourceReference) – コンテンツをマウントする Vantiq または Kubernetes リソース。
- マウントパス (文字列) – リソースをマウントするために使用されるファイル システム パス。
- ボリューム名 (文字列) – マウントするボリュームのオプションの名前。
- 外部です (ブール値) – if
trueリソース参照はKubernetesリソースを指します。それ以外の場合(デフォルト)、Vantiqリソースを参照します。 - 任意 (ブール値) - 対象リソースが存在しない場合にサービスコネクタを起動するかどうかを示します。デフォルト値は
false.
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべての ServiceConnector インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべての ServiceConnector インスタンスに対する読み取り専用アクセス権が与えられます。
Services
Services アプリケーションの特定の機能的側面に関連する動作をカプセル化します。サービスは、その動作をインターフェースを介して公開します。インターフェースは、サービスの利用者が利用できる手続きやイベントタイプのリストで構成されます。サービスは、 Vantiqカタログ これにより、インターフェースにリモートからアクセスできるようになります。
サービスには次のプロパティがあります。
- 名 – サービスの名前。これは読み取り専用のプロパティで、リソース識別子として機能します。
- 説明 – サービスの説明
- グローバルタイプ – 状態を表す型の名前 グローバルステートフルプロシージャ型の各フィールドは、サービスのすべてのグローバル プロシージャ内で同じ名前のステートフル変数になります。
- パーティション型 – 状態を表す型の名前 パーティション化されたステートフルプロシージャ型の各フィールドは、サービスのすべてのパーティション化されたプロシージャに同じ名前のステートフル変数を作成します。
- スケジュールされた手順 – 識別するオブジェクト 予定された手順 およびその間隔。ステートフルサービスにのみ有効です。スケジュールされた各プロシージャは、グローバルまたはマルチパーティションのいずれかである必要があります。リストされたプロシージャがこれらのいずれにも該当しない(または存在しない)場合、サービスは実行できません。形式は次のとおりです。
{<procedure name>: <interval in ms>, ...}. - イベントタイプ – 識別するオブジェクト イベントタイプ 所有サービスによるイベントの生成と消費を記述するために使用されます。キーはイベントタイプの名前で、サービスごとに有効な識別子で一意である必要があります。値はイベントタイプ定義です。
- 説明 – イベント タイプの説明。
- 方向 – イベントタイプに関連付けられたイベントが「流れる方向」を示します。次のいずれかである必要があります。
- アウトバウンド – イベントがサービスからサービスのコンシューマーに流れることを示します。 外国行きの イベントタイプは、
WHEN句 ルールの発動条件として、または アプリ. - 受信 – コンシューマーからサービスに処理のために送信されるイベントを示します。 本国行きの イベントタイプは、
PUBLISHステートメント.
- アウトバウンド – イベントがサービスからサービスのコンシューマーに流れることを示します。 外国行きの イベントタイプは、
- 実装リソース – リソースは、 ルール または アプリ 受信イベントを消費し、その動作を実装します。
- 信頼できる – サービスイベントタイプが「確実に」処理されるかどうかを示します( 信頼できるメッセージング ガイド 詳細については)。
- イベントスキーマ – への参照 タイプ このタイプのイベントに関連付けられたデータの構造を記述します。
- インタフェース – サービス内のすべての公開プロシージャのインターフェースのリスト。これは、ローカルサービスおよびシステムサービスに対して明示的に設定することも、動的に生成することもできます。カタログサービスの場合は、発行者のインターフェースと一致している必要があります。 名 の三脚と 型付きパラメータ フィールドは、公開および購読時に実際の手順と照らし合わせて検証されます。各オブジェクトのフィールドは以下のとおりで、通常は以下の同じ名前のフィールドと一致します。 手続き:
- 名 – プロシージャの名前。サービス名を含めることはできません。
- 戻り値タイプ – 戻り値の型を識別するオブジェクト。nullまたは未指定にすることができます。形式は以下のとおりです。
- type – 戻り値の型の名前を表す文字列。以下のいずれかである必要があります。 有効なVAILタイプ またはカスタムタイプ。
- マルチ – 結果として配列を期待するかどうかを示すブール値。
- 説明 – 手順を説明する文字列。nullまたは未指定にすることができます。
- パラメータ – 各パラメータの詳細を示すリスト。実際のパラメータと同じ順序で記述する必要があります。各オブジェクトのフィールドは次のとおりです。
- 名 – パラメータ名。この値は常に検証に使用されます。
- type – パラメータの型を識別する文字列。有効なVAIL型のいずれか、またはカスタム型でなければなりません。実際の手続きに型が指定されている場合は、それが検証に使用されます。実際のパラメータの型は
Objectリストされているタイプがカスタム タイプの場合。 - マルチ – パラメータが配列であると想定されるかどうかを示すブール値。この値は常に検証に使用されます。
- 説明 – パラメータの説明。この値は検証には使用されません。nullまたは未指定の場合もあります。
- – パラメータがプロシージャに必須かどうかを示すブール値。この値は検証には使用されません。nullまたは未指定の場合もあります。
標準操作
実行
サービスは、 execute プロシージャに対する操作。リクエストのリソースIDは、次の形式の修飾サービスプロシージャ名です。 <serviceName>/<procedureName>リクエスト本体は、プロシージャに渡されるパラメータです。これらは、位置指定形式(配列)または名前付きパラメータ(オブジェクト)のいずれかで指定できます。
PUT https://dev.vantiq.com/api/v1/resources/services/<serviceName>/<procedureName>
{
<procedure parameters>
}
出版
サービスは、 publish 彼らの操作 本国行きの イベントタイプ。リクエストのリソースIDは、次の形式のサービスイベントタイプです。 <serviceName>/<eventTypeName>リクエスト本体は公開するデータです。例えば、RESTバインディングではリクエストは次のようになります。
POST https://dev.vantiq.com/api/v1/resources/services/<serviceName>/<eventTypeName>
{
<eventData>
}
ステータス
標準に加えて health の三脚と metrics プロパティ、応答 status 操作には以下が含まれます:
stateInitialized–Booleanサービスの状態が初期化されているかどうかを示す値。ステートフルサービスの場合にのみ存在します。scheduledProcedures–Object各サービスのスケジュールされた手順(存在する場合)に関する情報を含む値。Objectプロパティは、現在スケジュールされている既知の手順に対応します。各手順エントリには、以下のプロパティが含まれます。interval– 手順の現在のスケジュール間隔。eventName– プロシージャを実行するために使用されるスケジュールされたイベントの名前 (存在しない場合、スケジュールされたプロシージャは現在アクティブではありません)。
カスタム操作
パブリッシュ
イベントは、イベント タイプ名で公開要求を発行し、その要求の本文に公開に関連付けられたイベント データを含めることによって、サービス インバウンド イベント タイプに公開されます。
POST https://dev.vantiq.com/api/v1/resources/services/<serviceName>/<eventTypeName>
{
<eventData>
}
の関係
サービスには次の関係が含まれる場合があります。
- 含まれています サービス内のすべての手続きとの関係。
- 依存関係 サービス状態を格納するために使用される、または任意のサービス イベント タイプのイベント スキーマとして参照される任意のタイプのリレーションシップ。
アクセス権
- 管理人 – 管理者ユーザーには、名前空間内のすべてのサービス インスタンスへのフル アクセス権と、すべてのシステム サービスへの読み取り専用アクセス権があります。
- user – ユーザーにはすべてのサービス インスタンスに対する読み取り専用アクセス権が与えられます。
例
サービス定義を取得する
GET https://dev.vantiq.com/api/v1/resources/services/MyService
{
"name": "MyService",
"description": "This is a description of my service.",
"interface": ["firstProcedure", "secondProcedure"]
}
サービスの説明を更新
PUT https://dev.vantiq.com/api/v1/resources/services/MyService
{
"name": "MyService",
"description": "This is a new description for my service."
}
ソース
ソースは、Vantiq サーバーにデータを送信するか、Vantiq サーバーからデータと通知を受信する外部システムを表します。
ソースを介した外部システム統合の概要については、以下を参照してください。 外部ソース リファレンス ガイド Vantiq にはさまざまな外部ソースが事前定義されています。
- EMAIL – 指定したユーザーにメールを送信します。 メールソース統合 より詳細をご確認いただけます。
- SMS – 指定したユーザーにテキストメッセージを送信します。 SMS ソースの統合 より詳細をご確認いただけます。
- MQTT – MQTTを使用したデータの送受信。 MQTT ソースの統合 より詳細をご確認いただけます。
- AMQP – AMQPを使用してデータを送受信します。 AMQP ソースの統合 より詳細をご確認いただけます。
- REMOTE – REST APIを使用してデータを送受信します。 リモートソース統合 より詳細をご確認いただけます。
- ビデオ – ビデオ(オンラインカメラまたはファイル)からフレームを受信します。 ビデオソース統合 より詳細をご確認いただけます。
- CHATBOT – チャットボットからデータを送受信するための Microsoft Azure ボット サービス。 見る チャットボットソース統合 より詳細をご確認いただけます。
- KAFKA – KAFKAを使用してデータを送受信します。 KAFKAソース統合 より詳細をご確認いただけます。
- GCPS – Google Cloud Pub/Subを使用してデータを送受信します。 GCPSソース統合 より詳細をご確認いただけます。
さらに、新しい外部ソースタイプは、 エンタープライズコネクタ 機能。参照 エンタープライズ コネクタ リファレンス ガイド より詳細をご確認いただけます。
ソースは、sourcesリソースタイプに対してPOSTを発行することで作成または更新されます。すべてのソースは、標準のプロパティセットと、ソースタイプ固有の設定パラメータセットを定義する必要があります。ソースのJSON形式は次のとおりです。
{
"name": "<sourceName>",
"type": "<sourceType>",
"config": {
<source type specific parameters>
}
"autoUnwind": <automatically unwind events>
}
ここで、
- 名 – ソースに割り当てられた名前。
- type – ソースの種類。 現在、エンタープライズ コネクタまたは次の文字列値のいずれかによって指定されるタイプ:
- Eメール
- SMS
- MQTT
- AMQP
- 遠隔地
- チャットボット
- カフカ
- GCPS
- 設定 – ソースに関連付けられたソース タイプ固有のパラメータが含まれます。 詳しい内容は、 設定 これは、上で参照したソース タイプ固有のドキュメントで定義されています。
- 自動アンワインド – ソースが受信したイベント データを自動的に「巻き戻す」必要があるかどうかを示します。 もし
true配列がイベント データとして受信された場合、システムは直ちに配列を処理し、配列メンバーごとに (配列自体を含むイベントではなく) XNUMX つのイベントを生成します。
ソースを削除するには、削除するソースの名前を指定して、ソース リソースに対して DELETE を発行します。
カスタム操作
ソースは次のカスタム リソース操作をサポートします。
出版
指定されたソースにデータを公開します。この操作は、公開するデータを1つの引数として受け取ります。これはJSONドキュメントである必要があります。
QUERY
指定されたソースに対してクエリ操作を実行します。この操作は、実行するクエリの説明を1つの引数として受け取ります。これはJSONドキュメントである必要があります。クエリをサポートしているソースと、そのクエリドキュメントの形式については、各ソースタイプのドキュメントをご覧ください。
配備
これにより、ソースのコネクタイメージがデプロイされます。パラメータは、 K8s クラスタデプロイ操作 加えて、 clusterName デプロイ先のクラスタの名前を指定します。( 以下の例 詳細については。)
操作は、「/command」が追加されたソースのリソース URI を使用して呼び出されます。
フェッチログ
これは、 K8sのインストール コネクタに関連付けられたパラメータは、 K8s クラスタ FetchLogs 操作 加えて、 clusterName 操作対象のインストールを含むクラスターの名前を指定します。
再起動
これにより、 K8sのインストール コネクタに関連付けられたパラメータは、 K8s クラスタの再起動操作 加えて、 clusterName 操作対象のインストールを含むクラスターの名前を指定します。
操作は、「/command」が追加されたソースのリソース URI を使用して呼び出されます。
シャットダウン
これにより、 K8sのインストール コネクタに関連付けられたパラメータは、 K8s クラスタのシャットダウン操作 加えて、 clusterName 操作対象のインストールを含むクラスターの名前を指定します。
操作は、「/command」が追加されたソースのリソース URI を使用して呼び出されます。
アンデプロイ
これは、 展開解除 の操作 K8sのインストール このソースに関連付けられたコネクタ。パラメータは K8s クラスターのアンデプロイ アンデプロイ操作 加えて、 clusterName 操作対象のインストールを含むクラスターの名前を指定します。
操作は、「/command」が追加されたソースのリソース URI を使用して呼び出されます。
の関係
ソースには、次のいずれかの関係があります。
- 依存関係 messageType として使用されるタイプとの関係
- 実行 モックパブリッシュまたはモッククエリ手順との関係
- 依存関係 エンタープライズコネクタで使用されるソース実装との関係
アクセス権
- 管理人 – 管理者ユーザーには、名前空間内のすべてのソース インスタンスへのフル アクセス権と、すべてのシステム ソースへの読み取り専用アクセス権があります。
- user – ユーザーにはすべてのソースインスタンスに対する読み取り専用アクセス権が与えられます。
グループが有効
ソースは「グループ対応」のリソースです。「ソース」をグループに配置すると、そのソースの使用(パブリッシュとサブスクライブの両方)が、グループのメンバーであるIDに制限されます。
例
ソースを作成
MQTT ソースを作成 (または更新) します。
POST https://dev.vantiq.com/api/v1/resources/sources
{
"name": "myMqttSource",
"type": "MQTT",
"direction": "SOURCE",
"config": {
"serverURIs": ["tcp://me.vantiq.com:1883"],
"topics": ["com.accessg2.stream.mqtt.example"],
"keepAliveInterval": 30,
"connectionTimeout": 30,
"cleanSession": true,
}
}
ソースを削除
ユーザー定義ノードは、 ノードの削除 削除するノードの名前を指定するRESTリクエスト。例:
DELETE https://dev.vantiq.com/api/v1/resources/sources/myMqttSource
配備します
POST https://dev.vantiq.com/api/v1/resources/sources/extSource/command
{
"op": "deploy",
"data": {
"clusterName": "clusterForMySource",
"name": "connectorInstallation",
"k8sNamespace": "myNamespace",
"config": [
{
"type": "image",
"name": "myRepo/connectorImage"
},
{
"type" : "file",
"content" : "some data",
"path" : "/app/somedirectory",
"filename": "myfile",
"contentName": "configMapKey"
}
]
}
}
なお、 config データは画像固有になります。
この操作は、 K8s ワークアイテム 作成されたリクエストの。上記の操作を実行すると、次のようになります。
{
"requestId": "<some UUID>",
"clusterName": "clusterForMySource",
"operation": "deploy",
"timestamp": <time of request>
"status": "REQUESTED"
"request": <config value from request>
"requestedBy": "<name of the Vantiq user who performed the deploy>"
}
ストレージマネージャー
アプリケーションによってデータ取得のニーズは大きく異なります。時系列データを多用するアプリケーションもあれば、分析に重点を置くアプリケーションもあります。あらゆるシナリオで適切に機能する単一のストレージ管理ソリューションは存在しません。さらに、アプリケーションは、コピーをインポートすることが現実的ではない、Vantiq の外部に保存されたデータを操作する必要があるかもしれません。ストレージ マネージャー リソースは、ユーザーが特定のニーズを満たすためにプラグ可能なストレージ管理機能を追加できるようにすることで、これらの問題に対処します。ユーザーがストレージ マネージャーを正常にインストールして構成すると、アプリケーションは外部データが Vantiq システムにローカルに保存されているかのようにアクセスできるようになります。さらに、アプリケーションは、特定のデータ ストアに固有の操作が他のコンテキストでは機能しない可能性が高いことを理解した上で、リモート データ ストレージ システムに固有の特別な機能を活用することができます。これらの特殊な機能を利用することに伴うトレードオフとして、アプリケーションはある程度のデータ ストアの独立性を放棄する必要があります。
特性
名前に加えて、ストレージ マネージャーには 1 つのプロパティがあります。 実装サービスストレージ マネージャーに関連付けられたデータに対するすべての要求を処理するサービスが識別されます。
型定義におけるストレージマネージャ参照
ストレージマネージャによって処理される基礎データを持つ型定義には、ストレージマネージャ参照が含まれます。この参照は、外部データのストレージマネージャを指定するだけでなく、外部ストアへの接続方法を指定したり、名前と値のペアとして追加のプロパティを定義したりすることもできます。このメカニズムは、型システムと外部ストレージ管理を統合し、アプリケーションが外部データを、基礎システムの機能に応じてローカルに保存されたデータと同じように操作できるようにします。以下も参照してください。 TypesリソースのstorageManagerプロパティ
一時ブロブ
一時BLOBは、サーバー内のメモリ内に大きなエンティティ(ドキュメント、画像、動画など)を保持するために使用されます。一時BLOBは、 遠隔地 or VIDEO ソース。
Temp BLOBには、Vantiqシステムによって割り当てられたIDが付与されます。Temp BLOBの有効期間は比較的短く(分単位)、その後破棄されます。Temp BLOBはメモリ常駐型であり、分析後に保存する必要がほとんどない画像を長期ストレージに保存するコストを回避することを目的としています。メモリ常駐型であるため、ローカルのVantiqインスタンス内でのみ利用可能です。
一時BLOBは、 ドキュメント, 画像または ビデオ コピーメカニズムと fromTemp 財産。 見る Temp BLOBからドキュメントを作成する ドキュメントを使用した例については、以下を参照してください。同様の機能については、 画像 の三脚と ビデオ.
Temp BLOB での REST 操作はサポートされていません。
特性
Temp BLOB には、VAIL コンシューマーに表示される次のプロパティが含まれています。
- ファイルタイプ コンテンツのMIMEタイプ
- コンテンツサイズ 含まれるエンティティのサイズ
- コンテンツ参照 Temp BLOBへのリソース参照
アクセス権
- Temp Blob が作成された名前空間内のユーザーは、他の種類のサービスまたは操作を使用してデータを読み取ったり使用したりできます。
- 更新操作はサポートされていません。
TensorFlowModels
TensorFlowモデル( tensorflowmodels リソースは、Vantiq システムに保存されている特定の種類のニューラル ネット モデルを表します。
TensorFlow モデルパーツ
YOLO TensorFlow モデル
(YOLO TensorFlowモデルの詳細については、 画像処理リファレンスガイド.)
YOLO TensorFlowモデルでは、2つのファイルをアップロードする必要があります。XNUMXつはメタ情報(ラベル名、モデルに関する制御情報)を含むメタファイルと呼ばれるJSONファイル、もうXNUMXつはモデル本体(モデルのprotobuf表現)です。メタファイルは通常数百から数千バイトですが、モデルファイルは数百メガバイトになる場合があります。
YOLO TensorFlowモデルを作成するときは、 modelType of tensorflow/yolo。 なお、 モデルタイプ tensorflow/yolo YOLO v2とYOLO v3の両方のモデルで使用されます。関連するメタファイルには、バージョンを区別するのに十分な情報が含まれています。
メタファイルとモデル自体の生成に関する情報は、 画像処理リファレンスガイド.
TensorFlow モデル (非 YOLO)
より一般的なTensorFlowモデルにはメタファイルを含めることができますが、必須ではありません。メタファイルを使用する場合は、モデルを記述するメタファイルセクションのみが必要です。 入力および出力操作 使用されている。
(YOLO以外の)TensorFlowモデルを作成するときは、 modelType of tensorflow/plain.
Tensorflowモデルインスタンスの作成と更新
メタファイルを使用しないTensorFlowモデルは、モデルのJSON表現をリソースURIに送信することで作成または更新されます。モデルのJSON表現は次のとおりです。
{
"name": "<model name>",
"modelType": "tensorflow/yolo" | "tensorflow/plain",
"contentSize": <size of model to be uploaded>
}
メタ ファイルを使用する TensorFlow モデルの場合は、次のようにマルチパート MIME メッセージを使用してメタ ファイルをアップロードします。
POST https://dev.vantiq.com/api/v1/resources/tensorflowmodels?modelName=<name of model>&modelType=<appropriate model type>&modelLength=<length of model>
--<your boundary marker>
Content-Disposition: form-data; name="<assignedName>"; filename="<filename>"
Content-Type: application/json
<meta content>
--<your boundary marker>
その モデル長さ すべてのセグメントがアップロードされたことをシステムが認識するために使用されます。
モデルコンテンツのアップロード
どちらの場合でも、実際のモデルコンテンツは、 ツス プロトコル。 の ツス プロトコルは、セグメント化された再開可能なアップロードを提供します。
モデルが作成または更新されると、インスタンスはVantiqシステムに存在するようになりますが、 不完全. 不完全 モデルは作成されるまで分析に使用することはできない コンプリートセグメントのアップロードが完了すると(十分なデータが揃うと)、 コンテンツサイズ or モデル長さ 提供されている場合、モデルはマークされます コンプリート.
モデルを完成させるために、モデルコンテンツはセグメントごとにアップロードされます。 ツス プロトコル。 ツス プロトコルについては、 ツス 仕様大まかに言うと、イベントの順序は次のようになります。
- TensorFlow モデルに対して HTTP OPTIONS リクエストを発行します。結果には以下のヘッダーが含まれます。
Tus-Max-Size– アップロードするセグメントごとのアップロードサイズ制限Tus-Extension– プロトコルの拡張に関する情報が含まれますVantiq-Patch-Multipart-Form– マルチパートMIMEパッチリクエストをサポートしていることを示します。マルチパートMIMEによるアップロードを強くお勧めします。Vantiq-Multipart-Max-Size– この拡張機能を使用したアップロードサイズの制限Vantiq-Multipart-Max-Size– 'true'の値は、これがエッジインストールであることを示します
- インスタンスに対してHTTP HEADリクエストを発行します。結果には以下のヘッダーが含まれます。
Upload-Length– 完全なモデルの予想サイズ。これは、TensorFlowModel を作成したマルチパート MIME リクエストに含まれています。Upload-Offset– 次のアップロードを開始するオフセット。
- データセグメントをアップロードする
- 各アップロードには適切な ツス ヘッダー:
Tus-Resumable– 含まれている必要があります1.0.0Upload-Offset– このセグメントを配置するオフセット。これはUpload-Offset上記の HEAD リクエストによって返されるヘッダー。Content-Type– に設定する必要がありますmultipart/form-dataマルチパートMIMEを使用する場合、application/offset+octet-streamさもないと。
- マルチパート形式のPATCHリクエストがサポートされている場合、
- セグメントをフォーム データとして PATCH し、パーツのコンテンツ タイプを設定します。
application/offset+octet-stream
- セグメントをフォーム データとして PATCH し、パーツのコンテンツ タイプを設定します。
- マルチパート形式のPATCHリクエストがサポートされていない(または利用できない)場合は、
- セグメントを含む PATCH リクエストを URL に送信します。
- 各アップロードには適切な ツス ヘッダー:
- アップロードを繰り返し、各セグメントがアップロードされるたびにオフセットを更新します。必要に応じてHEADリクエストを繰り返すこともできますが、必須ではありません。
特定のインスタンスのHEADリクエスト tensorflowmodels アップロードプロセスの現在の状態を返します。 ツスすべてのセグメントをアップロードできない場合は(例えば ネットワークの切断が発生した場合、後続のHEADリクエストでプロセスの進行状況がわかります。次のアップロードでプロセスを再開できます。
さらに、エッジインストールでは、モデルとメタファイルを1つの(通常は非常に大きな)マルチパートMIMEメッセージでアップロードすることで、TensorFlowモデルインスタンスを作成できます。エッジインストールは前述のセグメントアップロードをサポートしているため、この方法を使用する必要はありません。これは簡略化のために提供されています。マルチパートMIMEメッセージを使用したモデルのアップロードは、次の形式のメッセージで実行されます。
POST https://dev.vantiq.com/api/v1/resources/tensorflowmodels?modelName=sampleModel&modelType=tensorflow/yolo
--<your boundary marker>
Content-Disposition: form-data; name="<assignedName>"; filename="<filename>"
Content-Type: application/json
<meta content>
--<your boundary marker>
Content-Disposition: form-data; name="<assignedName>"; filename="<filename>"
Content-Type: application/octet
<model content>
--<your boundary marker>--
ここで、
<assignedName>TensorFlowモデルの名前は、tensorflowmodelsインスタンス。<fileName>モデルコンテンツまたはメタ情報が取得されたファイルの名前です。
さらに、適切な HTTP ヘッダーを設定する必要があります。
ContentLength: <length of http content in above message>
ContentType: multipart/form-data; boundary=<your boundary marker>
インスタンスが作成されると、TensorFlow モデルの情報がリソース URI 経由で利用できるようになります。 api/v1/resources/tensorflowmodels/<modelName>.
次の JSON 表現が返されます。
{
"name": "models/mymodel",
"modelType": "<model type in question>",
"metaFile": <some JSON object>,
"content": "/tfmodels/models/mymodel"
}
その content プロパティは、Vantiqサーバーからファイルの内容を取得するために使用できる絶対URIです。 modelType モデルの作成時にプロパティが提供されました。
モデル名は、最初の文字が /.
リソースインスタンスURIと /tfmodels URI では、パブリック モデルの場合でも常に認証が必要です。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべての TensorFlow モデル インスタンスに対する完全なアクセス権があります。
- user – ユーザーは、自分が作成したすべての TensorFlow モデル インスタンスに対して完全なアクセス権を持ちます。
例
Edge: TensorFlow モデルの作成または更新
POST https://dev.vantiq.com/api/v1/resources/tensorflowmodels?modelName=sampleModel&modelType=tensorflow/yolo
<your boundary marker>
Content-Disposition: form-data; name="sampleModel"; filename="mymodel.bin"
Content-Type: application/octet
<bytes for the model>
<your boundary marker>
Content-Disposition: form-data; name="sampleModel"; filename="mymeta.json"
Content-Type: application/json
<bytes for the meta information>
<your boundary marker>
ヘッダー:
ContentLength: Varies, based on boundary & model bytes length
ContentType: multipart/form-data; boundary=dLV9Wyq26L_-JQxk6ferf-RT153LhOO
TensorFlowモデルを作成する
POST https://dev.vantiq.com/api/v1/resources/system.tensorflowmodels
{
"name": "myModel",
"modelType": "tensorflow/plain",
"contentSize": 203959508
}
(これは非典型的なコンテンツ サイズではないことに注意してください。)
続いて、tus を使用してモデル コンテンツをロードします。
モデルを削除
DELETE https://dev.vantiq.com/api/v1/resources/system.tensorflowmodels/sampleModel
テスト
テストは、Vantiq リソースの機能または完全な Vantiq アプリケーションをテストするためのメカニズムです。
テストのリソースモデルは、 テストリファレンスガイド.
カスタム操作
の関係
テストには、次のいずれかの関係があります。
- テスト用 テスト対象のルール、手順、またはプロジェクトとの関係
- 依存関係 セットアップおよびクリーンアップ手順との関係、およびテストの入力、出力、または検証手順として使用されるリソース
アクセス権
- 管理人 – 管理ユーザーには、自分の名前空間内のすべてのテスト インスタンスに対する完全なアクセス権があります。
- user – ユーザーにはテストインスタンスへのアクセス権がありません。
テストレポート
テストレポートは、以前に実行されたテストの履歴です。以下のプロパティが含まれます。
- id – レポートの一意の識別子
- 名 – 実行されたテストの名前
- status – テストの現在のステータス。次のようなものがあります: 準備、生成、実行、分析、完了、またはクリーニング.
- 成功 – テストで正常に受信された期待される出力のリスト
- 障害 – テストで受信されなかった期待される出力のリスト、またはテスト中に名前空間で発生したエラーのリスト
- 始まる時間 – テストの実行が開始された時刻
- 終了時間 – テスト実行が完了した時刻
- ユニットテスト – テストされたリソースがルールまたは手順の場合に真となるブール値
- テストスイート名 – テスト実行がより大きなテストスイートの一部であった場合、実行されたテストスイートの名前
テスト実行は、システムリソースへの挿入操作を実行することによってトリガーされます。 system.testreportsユニットテストまたは統合テストのテスト実行を開始するには、タイプにINSERTします。 system.testreports name プロパティにテストの名前を設定します。例えば、 MyProcedureTest:
Method: POST
URL: /api/v1/resources/system.testreports
Body: { "name": "MyProcedureTest"}
詳細については、 テストリファレンスガイド
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのテスト レポート インスタンスに対する完全なアクセス権があります。
- user – ユーザーにはテスト レポート インスタンスへのアクセス権がありません。
テストスイート
テスト スイートは、すべて同じルール、手順、またはプロジェクトをテストする一連のテストを実行するためのメカニズムです。
テストスイートのリソースモデルは、 テストリファレンスガイド.
カスタム操作
の関係
テスト スイートには、次のいずれかの関係があります。
- テスト用 テスト対象のルール、手順、またはプロジェクトとの関係
- テスト用 スイートに含まれるすべてのテストとの関係
アクセス権
- 管理人 – 管理ユーザーには、自分の名前空間内のすべてのテスト スイート インスタンスに対する完全なアクセス権があります。
- user – ユーザーにはテスト スイート インスタンスへのアクセス権がありません。
トークン
トークンは、Vantiqサーバーへのリクエストを認証するためのメカニズムの一つです。トークンは、分散型Vantiqシステム内のノード間に、長期間有効な安全な接続を確立するために使用できます。2つのVantiqノードを接続し、一方のノードからもう一方のノードにリクエストを発行できるようにするには、アクセストークンまたはユーザー名とパスワードのペアを使用します。
トークンには次のプロパティがあります。
- アクセストークン – システムによって生成される不変の値で、自然鍵として使用されます。トークンの作成者のみ閲覧可能です。
- プロファイル – このトークンに関連付けられた権限を指定するプロファイル名のリスト。割り当てられるプロファイルは、リクエスト元の権限を超えることはできません。指定されていない場合、トークンは「個人トークン」となります。
- 単一の名前空間 – トークンが現在の名前空間へのアクセスのみに制限されているかどうかを示すブール値。個人用トークンにのみ関係します。他のトークンは元の名前空間外へのアクセス権限を持たないためです。
- 名 – トークンを識別するために使用できる、人間が読める名前
- ユーザ名 – このトークンが作成されたユーザー。特定のユーザーではなく、ノードに接続するためのトークンの場合は、NODENAME__NAMESPACENAMEのようなユーザー名になります。
- 有効期限 – トークンの「有効期限」(有効な認証情報として使用できなくなることを意味します)を示すDateTime値。デフォルトではトークンに有効期限はありません。
- トークンの種類 – オプション。「temporary」または「permanent」のいずれかを指定できます。APIユーザーはこれを指定する必要はありません。デフォルトでは、APIを通じて作成されたトークンはノードによって使用され、tokenTypeは「permanent」であると想定されます。
トークンを作成する際、accessTokenプロパティとexpiresAtプロパティを明示的に設定することはできません。accessTokenプロパティは、トークンが最初に挿入された際にシステムによって自動的に生成されます。expiresAtプロパティは、挿入時にのみ指定できる疑似プロパティtokenTimeoutを使用して設定できます。tokenTimeoutを使用してトークンの有効期間を秒単位で指定すると、作成されたトークンのexpiresAtは指定された時間後の時刻になります。
「個人トークン」とは、プロファイルを指定せずに作成されたトークンです。個人トークンのユーザーは、すべての名前空間へのアクセスを含め、トークン作成者のように行動します。個人トークンを作成すると、 単一の名前空間 プロパティを指定して、トークンを現在の名前空間のみに制限することができます。
アクセス権
- 管理人 – 管理者ユーザーは、自分の名前空間内のすべてのトークンインスタンスにフルアクセス権を持ちます。 アクセストークン 他のユーザーが作成したトークンのフィールド。
- user – ユーザーは、自分が作成したすべてのトークン インスタンスに対する読み取り専用アクセス権を持ちます (ユーザーは自分のトークンを直接作成することはできませんが、システムがユーザーに代わってトークンを作成する場合があります)。
例
アクセストークンを作成する
これにより、「ユーザー」プロファイル(リクエスター名前空間から)を持つ新しいトークンが作成され、作成後 10 分(600 秒)で期限切れになります。
Method: POST
URL: /api/v1/resources/tokens
Body: { "profiles": ["system.user"], "name": "testToken", tokenTimeout: 600 }
トークンを削除するかアクセスを取り消す
以前に作成されたトークンを削除(取り消す)します
Method: DELETE
URL: /api/v1/resources/la28DUJ008LLAJllsliqo
(la28DUJ008LLAJllsliqoは有効なトークン文字列です)
トピック
Vantiq パブリッシュ/サブスクライブモデルで使用するユーザー定義トピックは、Vantiq サービスに登録、公開、削除できます。登録は任意ですが、Vantiq IDE が操作するメタデータを充実させるため、登録することをお勧めします。
トピックには次のプロパティがあります。
- 名 – トピックの名前
- 説明 – トピックの説明
- 信頼できる – トピックによって受信されたイベントが「確実に」処理されるかどうかを示します。
- 自動アンワインド – トピックが受信したイベントデータを自動的に「巻き戻す」かどうかを示します。
true配列がイベント データとして受信された場合、システムは直ちに配列を処理し、配列メンバーごとに (配列自体を含むイベントではなく) XNUMX つのイベントを生成します。
トピック名には必ず先頭に / 英数字のみを含み、オプションで / セパレーター。各 / 文字の後に少なくとも1つの英数字が続く必要があります。トピック文字列は /トピック名は次の文字で始まってはなりません: /type, /property or /system.
URLのリソース名としてトピックを指定する場合、最終的なURLのトピック名の先頭には常に「//」が含まれます。最初の「/」はURLの次の部分を識別し、2番目の「/」はトピック名の最初の文字を表します。
カスタム操作
トピックは、次のカスタム リソース操作をサポートします。
パブリッシュ
トピックは、トピック名に対して、その公開に関連付けられたデータを含むリクエスト本体を含む公開リクエストを発行することで公開されます。このデータ値は、サブスクライブされているすべてのルールに配信されます。 新しい値 イベントのプロパティ。
POST https://dev.vantiq.com/api/v1/resources/topics/<topicName>
{
<eventData>
}
の関係
トピックには 依存関係 messageType として使用されるタイプとの関係。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのトピック インスタンスに対する完全なアクセス権があります。
- user – ユーザーには、自分の名前空間内のすべてのトピック インスタンスに対する読み取り専用アクセス権が与えられます。
例
トピックの作成
POST https://dev.vantiq.com/api/v1/resources/topics
{
"name": "/my/sample/account/update/topic",
"description": "Published after a customer successfully updates their account info."
}
トピックを公開する
POST https://dev.vantiq.com/api/v1/resources/topics//weather/denver/hourly
{
"temp": 49,
"wind": 2,
"barometer": 990
}
トピックを削除
DELETE https://dev.vantiq.com/api/v1/resources/topics//weather/denver/hourly
トピック名は、DELETE URL に配置するために URL エンコードされる必要があることに注意してください。
領域の追跡
トラッキング領域は、座標空間内の名前付き領域を表します。トラッキング領域には以下の特性があります。
- 名 – これは追跡領域の名前です。
- 境界 – これは、領域の境界を構成する (最大 4 つの) ポイントのリストを含むオブジェクトです。
- 距離 – これは次のプロパティを含むオブジェクトです。
- ポイント – 2つのポイントのリスト
- 距離 – これら2点間の距離
- 方向 – これは以下のプロパティを含むオブジェクトです
- ポイント – 2つのポイントのリスト
- 方向 – 最初のポイントから 0 番目のポイントへの移動が表す方向 (コンパス角度は 360 から XNUMX まで)。
上記の各項目では、ポイントは x の三脚と y コンポーネント(または、 LON の三脚と ラットそれぞれ。
境界に関する特別な注意:境界は、物体が 内部そのため、ポイントの順序が重要になります。最初のポイントから2番目のポイントまで反時計回りに歩くことを考えれば、 内部 境界は 左側つまり、反時計回りに境界を指定します。境界点の順序が適切でない場合、形成された多角形の面積がゼロまたは無限大であるというエラーが表示されます。この問題を解決するには、境界点の順序を修正してください。
その distance の三脚と direction プロパティはオプションです。これらのプロパティが存在しない場合、モーショントラッキングは速度情報を判断できません。
追跡領域の JSON 表現は次のとおりです。
{
"name": "intersection",
"boundary":
[
{ "x": 670, "y":699 },
{ "x": 1767, "y": 700 },
{ "x": 1765, "y": 1066 },
{ "x": 671, "y": 1067 }
],
"distance": {
"points": [
{ "x": 746, "y": 418 },
{ "x":1033, "y": 420 }
],
"distance": 24
},
"direction": {
"points" : [
{ "x": 523, "y": 1000 },
{ "x": 623, "y": 1000 }
],
"direction": 90
}
}
この例では、 交差点 境界が定義されています。指定された24点間の距離は90です(単位は指定されていませんが、アプリケーション開発者は理解できる必要があります)。指定されたXNUMX点間の方向は東(方位XNUMX度)です。
リージョンの使用に関する詳細については、 モーショントラッキング のセクション 画像処理ガイド.
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのビデオ インスタンスに対する完全なアクセス権があります。
- user – ユーザーは自分が作成したすべてのビデオインスタンスへのフルアクセス権を持ちます。
例
追跡領域の作成
POST https://dev.vantiq.com/api/v1/resources/system.trackingregions
{
"name": "intersection",
"boundary":
[
{ "x": 670, "y":699 },
{ "x": 1767, "y": 700 },
{ "x": 1765, "y": 1066 },
{ "x": 671, "y": 1067 }
],
"distance": {
"points": [
{ "x": 746, "y": 418 },
{ "x":1033, "y": 420 }
],
"distance": 24
},
"direction": {
"points" : [
{ "x": 523, "y": 1000 },
{ "x": 623, "y": 1000 }
],
"direction": 90
}
}
追跡領域を削除
DELETE https://dev.vantiq.com/api/v1/resources/system.trackingregions/intersection
種類
タイプはVantiqシステムによって管理されるデータ(オブジェクト)を表します。タイプは次のいずれかに分類されます。 リソースを追加する。 種類または スキーマ タイプ。
- リソースタイプ(単に 同じ型のオブジェクト インスタンスのコレクションが含まれます。
- スキーマ タイプは、外部ソースから取得されたデータやイベントで送信されたデータの構造 (スキーマ) を記述するために使用されます。
型には次のプロパティがあります。
- 名 – 型名を文字列で指定します。名前は一意である必要があります。「Ars」で始まる型名は、ArsChatやArsRuleSnapshotなどのシステム型を一意に識別するために予約されています。型名は英数字の文字列で、アンダースコア文字を含むことができます。その他の文字は型名には使用できません。型名の前に名前空間名を付けることもできます。
- 役割 – 次のいずれか:
- 標準 – この型はユーザー定義のリソースを定義します。指定されていない場合は、 標準 デフォルトです。
- スキーマ – 型はスキーマ型を定義します。
- バージョン – 型定義のバージョンを文字列で表します。このプロパティは将来の使用のために予約されています。
- ドキュメント – 型を説明するドキュメント リソースへのリンクの配列。
- プロパティ – 型に定義されたプロパティを記述するマップ。properties 内の各エントリは、以下のプロパティを含むオブジェクトです。
- 名 – 「_」または「ars_」で始まるプロパティ名はシステム用に予約されています。プロパティ名は英数字の文字列で、アンダースコア文字が含まれる場合があります。
- type – 次の組み込み型のいずれか: [“String”、“Integer”、“Real”、“Boolean”、“DateTime”、“Decimal”、“Currency”、“GeoJSON”、“Object”] またはユーザー定義型またはスキーマの名前。
- – 作成時または挿入時に値を指定する必要があるかどうかを示すブール値。
- デフォルト – プロパティが挿入リクエストで参照されていない場合に割り当てるデフォルト値。デフォルト値は ヌル これは、デフォルト値として null 値を宣言できないため、デフォルト プロパティをまったく指定しないことと同じです。
- 階段 – 小数値と通貨値の場合、精度の桁数。
- 配列 – プロパティが複数の値を持ち、値の配列として表されることを示すブール値。
- では使用できません – プロパティの値がデータベースに保存される際に暗号化されることを示すブール値。名前空間に定義された暗号化キーが値の暗号化に使用されます。注: では使用できません すべき NOT データベースにそのタイプのインスタンスが格納されている場合は変更できません。設定すると、このプロパティのすべての値を復号化しようとするため、このプロパティで暗号化を有効にする前のインスタンスについては破損したデータが返されます。
- 最大ストレージ – この型に割り当てられるストレージの最大容量(バイト単位)。割り当てられた領域に収まらない数のオブジェクトが型に挿入された場合、先入れ先出し方式で古いオブジェクトが削除され、新しく挿入されたオブジェクトのための領域が確保されます。割り当てられる領域は4096バイト以上である必要があります。maxStorage値が指定された型のオブジェクトに対して許可される操作には、以下のXNUMXつの制限があることに注意してください。
- アップデートはサポートされていません
- 削除はサポートされていません
- 最大オブジェクト数 – 型に格納できるオブジェクトインスタンスの最大数。このプロパティは、maxStorageが設定されている場合にのみ設定できます。maxStorageに達する前にmaxObjectsに達した場合、先入先出方式でオブジェクトが型から削除され、新しいオブジェクトのためのスペースが確保されます。maxStorageの値は常にmaxObjectsよりも優先されます。したがって、maxStorageによって十分なストレージが割り当てられており、かつ少なくともmaxObjectsが型に挿入されている場合にのみ、型にはmaxObjectsだけが格納されます。
- ナチュラルキー – 型に格納されるオブジェクトの一意のキーを構成するプロパティを識別するプロパティ名の配列。naturalKey には、1 つ以上のプロパティ名を含めることができます。同一の naturalKey を持つオブジェクトが型に挿入されないようにするのは、ユーザーの責任です。この制約を適用する方法の 1 つは、主キーのプロパティに一意のインデックスを定義することです。もう 1 つの方法は、UPSERT ステートメントのみを使用して型に新しいオブジェクトを追加することです。UPSERT ステートメントは、UPSERT で指定された主キー値を持つオブジェクトが見つかった場合、常に既存のオブジェクトを更新します。
- インデックス – 型に定義されるインデックスの配列。各エントリは、以下の要素で構成されるインデックス記述です。
- キー – (複合)キーを定義するプロパティ名の配列。キーを降順でインデックス付けする場合は名前の前に「-」が付き、昇順でインデックス付けする場合はオプションで「+」が付きます。キーが地理位置情報(GeoJSON形式)であり、地理空間インデックスが要求されている場合は、名前の前に「#」が付きます。キーセット内の1つのプロパティのみを地理空間キーとして宣言できます。地理空間キーの値は、球面上の点、線、および領域として解釈されます。
- オプション – インデックスに適用するオプションを含むオブジェクト。現在のオプションは以下のとおりです。
- ユニーク – インデックスが一意かどうかを示すブール値。
- 外部キー – 値が別の型の自然キーを表すプロパティを識別します。このようなキーは、ある型から別の型への参照をサポートします。 foreignKey プロパティには、外部キー定義の配列が含まれます。各外部キー定義には、ターゲット型の名前とキー プロパティの配列が含まれ、各キー プロパティは、ローカル型のプロパティ名とターゲット型の対応するプロパティ名を表すペアで構成されます。例:{ “name”: “MyExampleEmp”, “properties”: { “empId”: { “type”: “String” }, “empAddress”: { “type”: “String” }, “deptName”: { “type”: “String” } }, “foreignKeys”: [{“type”: “dept”, “keys”: [{“property”:”deptName”, “targetProperty”: “name”}]] }
と仮定すると 部署 最小限の定義は次のとおりです。
{ "name: "dept",
"properties": {
"name": { "type": "String" }
},
"naturalKey": ["name"]
}
- ユーザーアクセスレベル – 組み込みのアクセス制御によって型に付与されるアクセスレベルを指定します。
userプロファイル。可能な値は、よく知られている システムアクセスレベル またはタイプ固有のカスタム レベルのいずれか。 - 管理者アクセスレベル – 組み込みのアクセス制御によって型に付与されるアクセスレベルを指定します。
adminプロファイル。可能な値は、よく知られている システムアクセスレベル またはタイプ固有のカスタム レベルのいずれか。 - アクセスレベル – 特定の型に付与する権限を決定する際に使用できる追加のアクセスレベルを指定します。形式はマッピングオブジェクトで、キーはアクセスレベル名、値は プロファイルDMLエントリ。 例:
{ "myAccessLevel": { "select": {}, "insert": {}, "update": {"total" : {"ars_substitution_lt": "USD:100"}}, "delete": {}, "aggregate":{}, "invoke": [] } } - 期限切れ後 – このタイプのインスタンスの存続時間を間隔定数として指定します(例:
1 houror2 days)。時間はインスタンスが作成された瞬間(ars_createdAtシステムプロパティ)に設定されており、インスタンスの有効期限が切れると、システムは独自の判断でインスタンスを削除する場合があります。有効期限を過ぎても残っているインスタンスは、有効期限が切れていないインスタンスと同様に機能します(したがって、アプリケーションでこれらのインスタンスを無視する必要がある場合は、明示的に削除する必要があります)。 - ルール抑制 - いつ
trueランタイムがこのタイプの挿入、更新、または削除イベントでトリガーされるルールを実行しないことを指定します。これは両方に適用されます。BEFOREの三脚とWHENルール。書き込み操作時にルールベースの処理を必要としないアプリケーションのタイプの場合、システムはオーバーヘッドを大幅に削減し、実行時のパフォーマンスを大幅に向上させることができます。 - ストレージマネージャー – このタイプに関連するすべてのデータ要求を処理するストレージマネージャへの参照。 ストレージマネージャー参照は次のフィールドで構成されます。
- 名 – ストレージ管理者の名前
- 接続 (オプション) – ストレージマネージャがこのタイプで使用する接続名。接続が指定されていない場合は、デフォルトの接続が使用されます。
- プロパティ (オプション) – ストレージマネージャ固有の追加プロパティを定義する名前と値のペアを含むオブジェクト。これらのプロパティは、型を操作する際にストレージマネージャにそのまま提供されます。
JSON表現
型オブジェクトの様式化された JSON 表現:
{ "name": "String",
"properties": {"<propertyName>": {"type": "String", "required": "Boolean"},
"<propertyName>": {"type": "String", "required": "Boolean"},
...
},
"indexes": [{"keys": [<"propertyName>", "<propertyName>", ...], "options": {"unique": "Boolean"}}]
}
タイプの削除
タイプを削除すると、そのタイプのすべてのインスタンスが削除されます。
互換性のある型拡張
型定義は、権限のあるユーザーによって変更できます。ただし、型定義の変更時にその型のインスタンスが存在する場合は注意が必要です。Vantiqでは、このような型の変更は、既存のインスタンスとの上位互換性を保つことを推奨しています。
- プロパティを追加する
- インデックス定義を変更する
互換性のない拡張には、プロパティの属性の変更が含まれます。例えば、プロパティの型が 整数 〜へ Stringの場合、その型の既存のインスタンスのデータは文字列に変換されず、参照時に予期しないエラーが発生します。同様に、 マルチ プロパティの属性が変更されると、その型の既存のインスタンスの内部表現が正しくなくなり、実行時エラーが発生します。
その 名 の三脚と 役割 型の属性は変更できません。属性のいずれかを変更するには、型を再作成する必要があります。
クエリの置換
型は、GETリクエストによって返されるオブジェクトセットを識別するためのクエリをサポートします。クエリをある程度汎用化するには、実行時にシステムが認識している特定の値をクエリで使用できる必要があります。このようなパラメータは、次の形式でパラメータを指定することにより、クエリ制約に含めることができます。
{"ars_substitution": <value>}
コラボレー <value> 特別に予約された識別子です。
次のシステム既知の値には、特別な予約済み識別子が使用できます。
ars_username– 現在認証されているユーザーの名前を指します。監査オブジェクトを作成するときに役立ちます。ars_currentDateTime– 現在の日付と時刻(UT)を示します。オブジェクトにタイムスタンプを付与する際に役立ちます。ars_substitution_<operator>– これは、クエリに代入されるクエリ制約演算子を定義する、高度に特殊化されたパターンです。<operator>は、「or」、「and」、「elemMatch」などの任意のクエリ演算子に置き換えることができます。つまり、先頭の「$」を除いた演算子名をそのまま指定します。演算子はクエリに次のように置換されます。$<operator>この構造の理由は、デフォルトのストレージマネージャ(MongoDB)が、先頭に「$」を含むプロパティ名を保存しないためです。先頭の「$」を「ars_substitution_」に置き換えることで、制約をデータベースに保存できます。クエリ制約を有効な形式で指定するのはユーザーの責任です。
例:
{"name":{"ars_substitution": "ars_username" }}
カスタム操作
の関係
タイプには 依存関係 型定義内で参照されるネストされた型との関係。
リネーム
タイプは リネーム 型の内容を削除せずに名前を変更する操作です。名前は不変であるという制約を維持するため、これは実際には削除操作として扱われ、その後に挿入操作(この間に期待される型イベントが生成されます)が続きます。システムは、型に関連付けられたデータが可能な限り効率的に転送されることを保証します。
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのタイプ インスタンスへのフル アクセス権と、すべてのシステム タイプへの読み取り専用アクセス権があります。
- user – ユーザーには、すべてのタイプ インスタンスに対する読み取り専用アクセス権が与えられます。
グループが有効
タイプは「グループ対応」のリソースです。「タイプ」をグループに配置すると、そのタイプの使用はグループのメンバーであるIDに制限されます。
イベント
次の操作に対してイベントが生成されます。
- insert – 型のインスタンスが挿入されるたびに発生します。提供されるデータは、挿入された型のインスタンスです。
- update – 型のインスタンスが1つ以上更新されるたびに発生します。提供されるデータは、単一インスタンスの更新か一括更新かによって異なります。
- 単一インスタンスの更新の場合、データは更新されたインスタンスです。
- 一括更新の場合、データは次のプロパティを持つオブジェクトになります。
- ars_bulkOperation – 値が
true. - qual – 更新するインスタンスを選択するために使用されるクエリを記述するオブジェクト。
- count – 更新されたインスタンスの数。
- ars_bulkOperation – 値が
- 削除 – 特定のタイプのインスタンスが1つ以上削除されるたびに発生します。提供されるデータは、単一インスタンスの削除か一括削除かによって異なります。
- 単一インスタンスの削除の場合、提供されるデータは削除されたインスタンスです。
- 一括削除の場合、データは次のプロパティを持つオブジェクトになります。
- ars_bulkOperation – 値が
true. - qual – 更新するインスタンスを選択するために使用されるクエリを記述するオブジェクト。
- count – 更新されたインスタンスの数。
- ars_bulkOperation – 値が
例
タイプを作成
POST https://dev.vantiq.com/api/v1/resources/types
{
"name": "PaulType",
"properties": {
"empName": { "type": "String" },
"salary": {"type": "Integer" },
}
"indexes": [{keys: ["empName"]]
}
削除タイプ
DELETE https://dev.vantiq.com/api/v1/resources/types/PaulType
,war
ユーザー
ユーザーリソースは、Vantiqサービスへのアクセス権限を持つユーザーを定義します。各名前空間は複数のユーザーをサポートします。ユーザーは、名前空間管理者がPOST、PUT、PATCH、およびDELETE RESTリクエストを使用してプロビジョニングします。
ユーザー リソースには次の JSON 表現があります。
{
"username": "<myUserName>",
"password": "<myClearTextPassword>",
"profiles": ["<profile1>", ...],
"email": "<myEmailAddress>",
"preferredUsername": "<preferredUsername>",
"firstName": "<myFirstName>",
"lastName": "<myLastName>"
}
その username このプロパティは必須であり、Vantiq デプロイメント全体でグローバルに一意である必要があります。ユーザー名には以下の文字を使用できます。
- 英数字
- 埋め込まれたアンダースコア(_)
- 埋め込まれたピリオド(.)
- 埋め込みダッシュ(-)
- 埋め込みアットサイン(@)
ここでは、メールアドレスで使用される最も一般的な文字について説明します。慣例上、ユーザー名は通常、ユーザーのメールアドレスの1つとして定義されます。
ユーザー名は大文字と小文字が区別されません。Vantiq のその他の名前は大文字と小文字が区別されます。
その password も必要であり、最初のユーザー作成時に送信されると、一方向ハッシュ値として保存されます。
OAuthベースの認証プロバイダを使用するように設定した場合、 email の三脚と preferredUsername プロパティは、OAuth プロファイル クレーム (利用可能な場合) を使用して自動的に入力されます。
その profiles プロパティはオプションですが、値が指定されていない場合は、システムが組み込みの値を割り当てます。 user ローカル アクセスとシステム アクセスの両方のプロファイル。
その他のプロパティはすべてオプションです。
アクセス権
- 管理人 – 管理者ユーザーは、自身の名前空間内のすべてのユーザーインスタンスへのフルアクセス権を持ちます。これには、OAuth以外のシステムでパスワードを明示的に設定する権限も含まれます。
- ユーザー管理者 – userAdmin ユーザーは、自身の名前空間内のすべての User インスタンスへのフルアクセス権を持ちます。これには、OAuth 以外のシステムでパスワードを明示的に設定する権限も含まれます。
- 開発者 – 開発者は自身のユーザーインスタンスに対する読み取りおよび更新アクセス権を持ちます。また、自身のプロファイルの変更は制限されています。
- user – ユーザーは自身のユーザーインスタンスに対する読み取りおよび更新アクセス権を持ちます。また、自身のプロファイルの変更は制限されています。
イベント
次の操作に対してイベントが生成されます。
- 認証成功 – ユーザーが認証に成功するたびに発生します。Vantiqが内部認証システムを使用するように設定されている場合にのみ適用されます。このイベントは常にユーザーの ホーム名前空間イベントで提供されるデータは、ユーザーのインスタンスです。
- 承認失敗 – ユーザーが権限のない操作を試みた場合に発生します。提供されるデータは、以下のプロパティを持つオブジェクトです。
- エラー – エラーメッセージ
- namespace – 障害が発生した名前空間。
例
ユーザーの作成
POST https://dev.vantiq.com/api/v1/resources/users
{
"username": "[email protected]",
"password": "mypassword"
}
「[メール保護]” にパスワードを指定してログインします。この単純な例では、他のすべてのプロパティにはデフォルト値が割り当てられています。
ユーザーを削除
DELETE https://dev.vantiq.com/api/v1/resources/users/paul@paulsdomain.com
動画
ビデオは、Vantiqデータベースに保存されているビデオを構成するデータを表します。ビデオインスタンスは、以下の形式のマルチパートMIMEメッセージを使用してビデオのコンテンツをアップロードすることで作成されます。
POST https://dev.vantiq.com/api/v1/resources/videos
<your boundary marker>
Content-Disposition: form-data; name="<assignedName>"; filename="<filename>"
Content-Type: <contentType>
<file content>
<your boundary marker>
ここで、
<assignedName>保存されているビデオの名前です ビデオ インスタンス。<fileName>コンテンツが取得されたファイルの名前です。<contentType>ビデオのMIMEタイプです(例えばvideo/mpeg,video/mp4)
さらに、適切な HTTP ヘッダーを設定する必要があります。
ContentLength: <length of http content in above message>
ContentType: multipart/form-data; boundary=<your boundary marker>
ファイルがアップロードされると、そのメタデータはリソース URI 経由で利用できるようになります。 api/v1/resources/videos/<assignedName>.
次の JSON 表現が返されます。
{
"name": "assets/movies/cars/mydrive.mp4",
"fileType": "video/mp4",
"content": "/vids/assets/movies/cars/mydrive.mp4"
}
その content プロパティは、Vantiqサーバーからファイルの内容を取得するために使用できる絶対URIです。 fileType このプロパティは、アップロードされたファイルの拡張子に基づいて Vantiq によって設定されますが、ファイルのアップロード後に変更することもできます。
ビデオ名は任意の文字列にすることができますが、最初の文字が /.
リソースインスタンスURIと /vids URI では、公開ビデオの場合でも常に認証が必要です。
一時BLOBからビデオを作成する
取得した場合 TempBlob (例えばリモートソースから取得した情報からビデオを作成できます。これを行うには、 fromTemp プロパティは、Temp BLOB のリソース参照を指定します。
Method: POST
URL: /api/v1/resources/videos
Body: { "name": "<copyName>",
"fromTemp": "<Temp Blob reference>"
}
アクセス権
- 管理人 – 管理者ユーザーには、自分の名前空間内のすべてのビデオ インスタンスに対する完全なアクセス権があります。
- user – ユーザーは自分が作成したすべてのビデオインスタンスへのフルアクセス権を持ちます。
例
ビデオを作成または更新する
POST https://dev.vantiq.com/api/v1/resources/videos
<your boundary marker>
Content-Disposition: form-data; name="sampleVideo"; filename="mydrive.mp4"
Content-Type: video/mp4
<bytes for the video>
<your boundary marker>
ヘッダー:
ContentLength: Varies, based on boundary & video bytes length
ContentType: multipart/form-data; boundary=dLV9Wyq26L_-JQxk6ferf-RT153LhOO
動画を削除
DELETE https://dev.vantiq.com/api/v1/resources/videos/sampleVideo
参考情報
Kubernetes の登録商標です。 Linux Foundation.