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

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Variabel Lingkungan Global

@nocobase/client

Aplikasi
plugin

@nocobase/database

Koleksi
Bidang

interfaces

BaseInterface
Operator Filter

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositori

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstrak)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Manajer Sumber Data
FlowContext
FlowEngine
FlowModel
Sumber Daya Alur Kerja

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplikasi
AuditManager
Konteks
Migrasi
Plugin

@nocobase/sdk

Auth
Penyimpanan
Previous PageAplikasi
Next PageKonteks
TIP

Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris

#AuditManager

#Gambaran Umum

AuditManager adalah modul manajemen audit sumber daya di NocoBase, yang digunakan untuk mendaftarkan antarmuka sumber daya yang perlu diaudit.

#Penggunaan Dasar

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

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

#Metode Kelas

#setLogger()

Mengatur metode keluaran untuk log audit.

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

#Tanda Tangan

  • setLogger(logger: AuditLogger)

#Tipe

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

Mendaftarkan tindakan sumber daya yang akan diaudit.

#Tanda Tangan

  • registerAction(action: Action)

#Tipe

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

#Detail

Beberapa gaya penulisan didukung:

  1. Berlaku untuk semua sumber daya
registerActions(['create']);
  1. Berlaku untuk semua tindakan dari sumber daya tertentu resource:*
registerActions(['app:*']);
  1. Berlaku untuk tindakan tertentu dari sumber daya tertentu resource:action
registerAction(['pm:update']);
  1. Mendukung penerusan metode getMetaData, getUserInfo, dan getSourceAndTarget kustom untuk tindakan tersebut
registerActions([
  'create',
  { name: 'auth:signIn', getMetaData, getUserInfo, getSourceAndTarget },
]);

Ketika antarmuka yang terdaftar tumpang tindih, metode pendaftaran yang lebih spesifik memiliki prioritas lebih tinggi. Contohnya:

  1. registerActions('create')

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

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

Untuk antarmuka user:create, 3 akan berlaku.

#registerActions()

Mendaftarkan beberapa tindakan sumber daya yang akan diaudit.

#Tanda Tangan

  • registerActions(actions: Action[])