logologo
Démarrer
Manuel
Développement
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Démarrer
Manuel
Développement
Plugins
API
logologo
Aperçu de l'API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

CLI NocoBase
Variables d'environnement globales

@nocobase/client

Application
Plugin

@nocobase/database

Collection
Champ

interfaces

BaseInterface
Opérateurs de filtre

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Dépôt

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstraite)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gestionnaire de sources de données
Contexte de Flux
FlowEngine
FlowModel
Ressource de flux

@nocobase/logger

Logger

@nocobase/server

AppCommand
Application
AuditManager
Contexte
Migration
Plugin

@nocobase/sdk

Auth
Stockage
Previous PageApplication
Next PageContexte
Avis de traduction IA

Cette documentation a été traduite automatiquement par IA.

#AuditManager

#Vue d'ensemble

AuditManager est le module de gestion d'audit des ressources de NocoBase. Il vous permet d'enregistrer les interfaces de ressources qui doivent être auditées.

#Utilisation de base

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

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

#Méthodes de classe

#setLogger()

Cette méthode définit la manière dont les journaux d'audit sont générés.

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

#Signature

  • setLogger(logger: AuditLogger)

#Type

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()

Enregistre une action de ressource à auditer.

#Signature

  • registerAction(action: Action)

#Type

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>;
    };

#Détails

Plusieurs syntaxes sont prises en charge :

  1. S'applique à toutes les ressources
registerActions(['create']);
  1. S'applique à toutes les actions d'une ressource spécifique : resource:*
registerActions(['app:*']);
  1. S'applique à une action spécifique d'une ressource spécifique : resource:action
registerAction(['pm:update']);
  1. Permet de passer des méthodes personnalisées getMetaData, getUserInfo et getSourceAndTarget pour l'action.
registerActions([
  'create',
  { name: 'auth:signIn', getMetaData, getUserInfo, getSourceAndTarget },
]);

Lorsque des interfaces enregistrées se chevauchent, la méthode d'enregistrement la plus spécifique a une priorité plus élevée. Par exemple :

  1. registerActions('create')

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

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

Pour l'interface user:create, c'est l'enregistrement 3 qui sera appliqué.

#registerActions()

Enregistre plusieurs actions de ressource à auditer.

#Signature

  • registerActions(actions: Action[])