logologo
スタート
マニュアル
開発
プラグイン
API
ホーム
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
スタート
マニュアル
開発
プラグイン
API
ホーム
logologo
API概要

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
キャッシュ

@nocobase/cli

NocoBase CLI
グローバル環境変数

@nocobase/client

アプリケーション
プラグイン

@nocobase/database

コレクション
フィールド

interfaces

BaseInterface
フィルター演算子

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
リポジトリ

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (抽象)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

データソースマネージャー
フローコンテキスト
FlowEngine
フローモデル
フローリソース

@nocobase/logger

ロガー

@nocobase/server

AppCommand
アプリケーション
AuditManager
コンテキスト
マイグレーション
プラグイン

@nocobase/sdk

Auth
ストレージ
Previous Pageアプリケーション
Next Pageコンテキスト
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#AuditManager

#概要

AuditManager は NocoBase におけるリソース監査管理モジュールで、監査対象となるリソースインターフェースを登録するために使用されます。

#基本的な使い方

import { Plugin } from '@nocobase/server';

class PluginCustomAuditResourceServer extends Plugin {
  async load() {
    this.app.auditManager.registerAction('resource:action');
  }
}

#クラスメソッド

#setLogger()

監査ログの出力方法を設定します。

const auditManager = new AuditManager();
auditManager.setLogger({
  log: async (auditLog: AuditLog) => console.log(auditLog);
})

#シグネチャ

  • setLogger(logger: AuditLogger)

#型

export interface AuditLog {
  uuid: string;
  dataSource: string;
  resource: string;
  action: string;
  sourceCollection?: string;
  sourceRecordUK?: string;
  targetCollection?: string;
  targetRecordUK?: string;
  userId: string;
  roleName: string;
  ip: string;
  ua: string;
  status: number;
  metadata?: Record<string, any>;
}

export interface AuditLogger {
  log(auditLog: AuditLog): Promise<void>;
}

#registerAction()

監査対象となるリソース操作を登録します。

#シグネチャ

  • registerAction(action: Action)

#型

export interface UserInfo {
  userId?: string;
  roleName?: string;
}

export interface SourceAndTarget {
  sourceCollection?: string;
  sourceRecordUK?: string;
  targetCollection?: string;
  targetRecordUK?: string;
}

type Action =
  | string
  | {
      name: string;
      getMetaData?: (ctx: Context) => Promise<Record<string, any>>;
      getUserInfo?: (ctx: Context) => Promise<UserInfo>;
      getSourceAndTarget?: (ctx: Context) => Promise<SourceAndTarget>;
    };

#詳細

いくつかの記述方法をサポートしています。

  1. すべてのリソースに適用する場合
registerActions(['create']);
  1. 特定のリソースのすべての操作に適用する場合 resource:*
registerActions(['app:*']);
  1. 特定のリソースの特定の操作に適用する場合 resource:action
registerAction(['pm:update']);
  1. 操作ごとにカスタムの getMetaData、getUserInfo、getSourceAndTarget メソッドを渡すこともできます。
registerActions([
  'create',
  { name: 'auth:signIn', getMetaData, getUserInfo, getSourceAndTarget },
]);

登録されたインターフェースが重複する場合、より詳細な登録方法が優先されます。例えば:

  1. registerActions('create')

  2. registerAction({ name: 'user:*', getMetaData })

  3. registerAction({ name: 'user:create', getMetaData })

user:create インターフェースの場合、3 が適用されます。

#registerActions()

複数の監査対象リソース操作を登録します。

#シグネチャ

  • registerActions(actions: Action[])