logologo
Start
Manual
Utveckling
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
Start
Manual
Utveckling
Plugins
API
logologo
API-översikt

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Globala Miljövariabler

@nocobase/client

Applikation
Plugin

@nocobase/database

Samling
Fält

interfaces

BaseInterface
Filteroperatorer

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repository

shared

create-options
destroy-options
find-one
Tomt läge
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
Datakälla (abstrakt)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Datakällshanterare
Flödeskontext
FlowEngine
FlowModel
Flödesresurs

@nocobase/logger

Logger

@nocobase/server

AppCommand
Applikation
AuditManager
Kontext
Migrering
Plugin

@nocobase/sdk

Auth
Lagring
Previous PageApplikation
Next PageKontext
TIP

Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen

#AuditManager

#Översikt

AuditManager är NocoBase:s modul för hantering av resursgranskning, som används för att registrera resursgränssnitt som behöver granskas.

#Grundläggande användning

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

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

#Klassmetoder

#setLogger()

Ställer in utmatningsmetoden för granskningsloggar.

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

#Signatur

  • setLogger(logger: AuditLogger)

#Typ

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

Registrerar en resursåtgärd som ska granskas.

#Signatur

  • registerAction(action: Action)

#Typ

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

#Detaljer

Flera skrivstilar stöds:

  1. Gäller för alla resurser
registerActions(['create']);
  1. Gäller för alla åtgärder för en specifik resurs resource:*
registerActions(['app:*']);
  1. Gäller för en specifik åtgärd för en specifik resurs resource:action
registerAction(['pm:update']);
  1. Stöder att skicka anpassade getMetaData, getUserInfo och getSourceAndTarget metoder för åtgärden
registerActions([
  'create',
  { name: 'auth:signIn', getMetaData, getUserInfo, getSourceAndTarget },
]);

När registrerade gränssnitt överlappar har den mer specifika registreringsmetoden högre prioritet. Till exempel:

  1. registerActions('create')

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

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

För user:create-gränssnittet kommer 3 att gälla.

#registerActions()

Registrerar flera resursåtgärder som ska granskas.

#Signatur

  • registerActions(actions: Action[])