logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo
Visão Geral da API

@nocobase/auth

AuthManager
Autenticação
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Variáveis de Ambiente Globais

@nocobase/client

Aplicação
Plugin

@nocobase/database

Coleção
Campo

interfaces

BaseInterface
Operadores de Filtro

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositório

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstrata)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gerenciador de Fonte de Dados
Contexto do Fluxo
FlowEngine
FlowModel
Recurso de Fluxo

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplicação
AuditManager
Contexto
Migração
Plugin

@nocobase/sdk

Auth
Storage
Previous PageAplicação
Next PageContexto
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#AuditManager

#Visão Geral

AuditManager é o módulo de gerenciamento de auditoria de recursos no NocoBase, usado para registrar interfaces de recursos que precisam ser auditadas.

#Uso Básico

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

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

#Métodos da Classe

#setLogger()

Define o método de saída para os logs de auditoria.

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

#Assinatura

  • setLogger(logger: AuditLogger)

#Tipo

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

Registra uma ação de recurso para ser auditada.

#Assinatura

  • registerAction(action: Action)

#Tipo

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

#Detalhes

São suportados vários estilos de escrita:

  1. Aplica-se a todos os recursos
registerActions(['create']);
  1. Aplica-se a todas as ações de um recurso específico resource:*
registerActions(['app:*']);
  1. Aplica-se a uma ação específica de um recurso específico resource:action
registerAction(['pm:update']);
  1. Suporta a passagem de métodos personalizados getMetaData, getUserInfo e getSourceAndTarget para a ação.
registerActions([
  'create',
  { name: 'auth:signIn', getMetaData, getUserInfo, getSourceAndTarget },
]);

Quando as interfaces registradas se sobrepõem, o método de registro mais específico tem prioridade maior. Por exemplo:

  1. registerActions('create')

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

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

Para a interface user:create, o item 3 será aplicado.

#registerActions()

Registra múltiplas ações de recurso para serem auditadas.

#Assinatura

  • registerActions(actions: Action[])