logologo
Bắt đầu
Hướng dẫn
Phát triển
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
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
logologo
Tổng quan API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

Giao diện dòng lệnh NocoBase
Biến Môi Trường Toàn Cầu

@nocobase/client

Ứng dụng
Plugin

@nocobase/database

bộ sưu tập
Trường

interfaces

BaseInterface
Các Toán Tử Lọc

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repository

shared

create-options
destroy-options
find-one
Bắt đầu với Bộ sưu tập
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (trừu tượng)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Trình quản lý nguồn dữ liệu
Ngữ cảnh luồng
FlowEngine
FlowModel
Tài nguyên luồng

@nocobase/logger

Logger

@nocobase/server

AppCommand
Ứng dụng
AuditManager
Ngữ cảnh
Di chuyển
Plugin

@nocobase/sdk

Auth
Storage
Previous PageỨng dụng
Next PageNgữ cảnh
TIP

Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh

#AuditManager

#Tổng quan

AuditManager là mô-đun quản lý kiểm toán tài nguyên trong NocoBase, dùng để đăng ký các giao diện tài nguyên cần được kiểm toán.

#Cách sử dụng cơ bản

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

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

#Phương thức của lớp

#setLogger()

Đặt phương thức xuất cho nhật ký kiểm toán.

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

#Chữ ký

  • setLogger(logger: AuditLogger)

#Kiểu

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

Đăng ký một hành động tài nguyên để kiểm toán.

#Chữ ký

  • registerAction(action: Action)

#Kiểu

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

#Chi tiết

Hỗ trợ một số cách viết sau:

  1. Áp dụng cho tất cả tài nguyên
registerActions(['create']);
  1. Áp dụng cho tất cả hành động của một tài nguyên cụ thể resource:*
registerActions(['app:*']);
  1. Áp dụng cho một hành động cụ thể của một tài nguyên cụ thể resource:action
registerAction(['pm:update']);
  1. Hỗ trợ truyền vào các phương thức getMetaData, getUserInfo, và getSourceAndTarget tùy chỉnh cho hành động
registerActions([
  'create',
  { name: 'auth:signIn', getMetaData, getUserInfo, getSourceAndTarget },
]);

Khi các giao diện đã đăng ký bị trùng lặp, phương thức đăng ký có độ chi tiết cao hơn sẽ có ưu tiên cao hơn. Ví dụ:

  1. registerActions('create')

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

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

Đối với giao diện user:create, phương thức 3 sẽ có hiệu lực.

#registerActions()

Đăng ký nhiều hành động tài nguyên để kiểm toán.

#Chữ ký

  • registerActions(actions: Action[])