SCAIFE API定義ファイルのこの分布には、YAML、JSON、およびHTMLフォーマットされたファイルが含まれます。ほとんどのリリースでは、5つのSCAIFEモジュールのそれぞれに各ファイル形式に1つのファイルがあります。
2021年3月のSCAIFE APIリリースでは、YAMLファイルのみをリリースしました。このリリースでは、すべてのモジュールがOpenapiバージョン3形式を使用するように更新されています。将来的には、自動化されたコード生成をJSONおよびHTMLに実行するスクリプトを更新して、OpenAPIバージョン3で動作させます。
YAMLファイルは、ソースコード分析統合フレームワーク環境(SCAIFE)API定義[1、2、3、5]を指定し、開発者が簡単に使用してコードを表示、変更、および自動的に生成できる形式(Swagger-EditorおよびSwagger-Codegenツール[4])を指定します。 YAMLファイルは、SEI開発者によってほぼ完全に手動で作成されました。 YAMLファイル内のSwaggerツールによって自動生成された唯一のものは、いくつかの例です。
JSONファイルは、swagger.yamlファイルでSwagger-codegenを実行することにより自動生成されました。これは、JSONでAPIを表示するか、JSONで最適なコード生成ツールを持っているため、Swagger.yamlファイルでコード化されています。
HTMLファイルは、YAMLファイルを読み取ることを好まない(またはツールを持っていない)人が読み取ることができる形式で、SCAIFE API定義を指定します。 HTMLファイルは、標準のWebブラウザで表示できます。 HTMLファイルにはハイパーリンクが含まれており、以下の参照されたホワイトペーパーは、HTMLファイルの理解方法に関するガイダンスを提供します。
Scaifeは、静的分析アラート分類と優先順位付けをサポートするアーキテクチャです。開発中のAPI定義を使用して、さまざまな静的分析ツールがシステムと統合できるように設計されています。 SCAIFE APIバージョン2.0.0の時点で、SCAIFEがコードコミットと連続統合(CI)サーバーから新しい静的分析出力に関する更新を受信できるようにAPI呼び出しを追加しました。 APIは、静的分析ツール、静的分析アラート監査アグリゲーター、およびその他の静的分析アラート監査フレームワークを開発および/または調査する組織にとって興味深いものであると予想しています。このSCAIFE API定義は、開発者が参照することができ、組織のツールを変更してSCAIFE API呼び出しを行い、対応するために必要な開発努力を推定するのに役立ちます。また、このAPI定義は、SCAIFE APIの実装に関心のある開発者や組織からフィードバックを生成することを目的として公開されており、SCAIFE APIを改善して、さまざまな静的分析ツールの開発者がより簡単に使用できるようになります。それを実装するプロトタイプシステムは、研究プロジェクトの協力者に配布されています。
図に示されているScaifeアーキテクチャには、5つのサーバーが含まれています。システムはモジュラーで、各モジュールを異なるツール/ソフトウェアでインスタンス化できるように設計されているため、システム全体が同じ機能を維持する必要があります。 UIモジュールには、地元のプロジェクトをアラートおよび保存するFlaw Finding Static Analysis(FFSA)の表示を可能にするGUIフロントエンドがあります。 SCAIFEアーキテクチャは、さまざまなFFSAツールを有効にし、アグリゲーターツールにアラートアグリゲーターツールが、SCAIFEシステムの残りのUIモジュールとして相互作用することにより、分類および優先順位付け機能を取得することを目的としています。これらのツールは、UIモジュールAPI呼び出しを他のサーバーにインスタンス化する必要があります。 DataHubモジュールは、1つまたは複数のUIモジュールからデータ(ツール、アラート、プロジェクト、テストスイートメタデータ、アジュジャトンなど)を保存し、いくつかのメタアラートを裁定します。 Statisticsモジュールは、分類器と適応的ヒューリスティック(アクティブ学習)アルゴリズムと自動化されたハイパーパラメーターアルゴリズムを作成、実行、および保存します。優先順位付けモジュールは、優先順位付け式とユーザーが使用した優先順位付けフィールドを保存します。登録モジュールは、認証とアクセス制御に使用されます。登録トークンを生成し、さらに他のサーバーに認証と基本的な承認を提供します。
検査を開始するには、5つのモジュールのいずれかを選択します。:ほとんどのFFSAツールとアラートアグリゲーターツール開発者は、UIモジュールのAPI定義に最も関心があります。彼らのツールがSCAIFEシステムと対話できるようにするために、彼らのツールはUIモジュールのAPIをインスタンス化する必要があります。ただし、一部の研究者/開発者は、分類の改善、積極的な学習、自動化されたハイパーパラメーターの最適化に焦点を当てているため、統計モジュールのAPIに焦点を当てたいと考えています。新しいアルゴリズムを開発し、開発したプロトタイプにモジュール的に組み込むことができます(研究協力者の場合)または独自のツールを変更して、統計モジュールのAPIをインスタンス化してから、SCAIFEシステムと相互作用して、さまざまな人によって開発された他のモジュールと対話します(例えば、SCAifeを使用して開発されたスケールのバージョンを使用します)。同様に、一部の研究者/開発者は、集計された、最終的に予想されるデータストレージのパフォーマンス、セキュリティ、回復力、およびスケーラビリティの改善に焦点を当てています。それらの人々は、DataHubモジュールのAPIに集中したいと思うでしょう。少数の研究者/開発者が登録または優先順位付けモジュールを実装することを期待しています。ただし、他のサーバーがクライアントであろうとサーバーの役割であろうと、他のサーバーと対話する必要があるため、APIは依然としてレビューするのに役立ちます。
可能であれば、オープンソース(および無料)Swaggerエディター[4]または同様のAPI表示および編集ツールを使用することをお勧めします。その中でAPI定義ファイル(.yamlまたは.json)を開きます。 Swaggerエディターは、API定義を表示、簡単なテスト、および変更するユーザーフレンドリーな方法を提供します。
それ以外の場合は、WebブラウザーでHTML API定義ファイルを表示します。これにより、モデルとメソッドは、以下のSCAIFE API定義セクションの各リソースに関連付けられたハイパーリンクに従ってアクセスできます。
各API定義セクションは、API呼び出しのソースモジュールと宛先モジュールに基づいて分類されます。たとえば、迅速なモデル登録およびログインモジュールAPI定義セクションには、ラベルUITOREGISTRATIONの下にあるAPI呼び出しのカテゴリが1つだけ含まれています。 API呼び出しのソース(要求)はUIモジュールからのものであり、API呼び出しは宛先(登録モジュール)に転送されます。データモデルは、ファイルの下部セクションで定義されています。
APIを検査するだけでなく、ツールまたはコードをSCAIFEシステムに統合するために使用することを願っています。 swagger codegen [4]または同様のツールを使用して、scaifeモジュールのyamlまたはjson API定義からコードを自動的に生成できます。これにより、コード開発を加速および自動化する利点があるだけでなく、コードがSCAIFE APIをインスタンス化することも保証されます。クライアントコードを生成するツールがある場合(つまり、そのサーバーのAPI定義で定義されているSCAIFEサーバーに呼び出されるコードが必要です)、Swagger CodeGenのようなツールは、さまざまな言語のいずれかでコードを生成します。生成されたクライアントコードを適切な場所で独自のコードにプロップし、独自の変数をパラメーターとして使用できます。同様に、SCAIFEモジュールのいずれかのサーバーコードを自動的に生成できます。これには、そのサーバーへの各API呼び出しのコントローラー関数スタブが含まれます。
APIレビュアー向けの特別なメモ: