定制 os2web/os2web_audit 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

os2web/os2web_audit

Composer 安装命令:

composer require os2web/os2web_audit

包简介

Drupal OS2 module that provides audit logging for Danish Municipalities

README 文档

README

This audit module can be used to track changes and perform audit logging on drupal sites.

Features

This module includes three plugins that facilitate logging information to Loki, files, or to the database through Drupal's watchdog logger.

These logging providers are designed using Drupal's plugin APIs. Consequently, it opens up possibilities for creating new AuditLogger plugins within other modules, thus enhancing the functionality of this audit logging.

For performance purposes we use a queue system. This avoids hindering performance more than necessary as the actual logging is done async. Furthermore, this allows for retries in case any audit log plugins should fail.

Installation

Enable the module and go to the modules setting page at /admin/config/os2web_audit/settings/.

composer require os2web/os2web_audit
drush pm:enable os2web_audit

Drush

Test audit log

The module provides a Drush command named audit:log. This command enables you to log a test message to the configured logger. The audit:log command accepts a string that represents the message to be logged.

The message provided, will be logged twice, once as an informational message and once as an error message.

drush audit:log 'This is a test message'

Retry jobs

The module also comes with methods for retrying failed jobs in the os2web_audit queue.

drush audit:retry-failed-jobs

Per default, it simply retries all failed jobs however it comes with the following options:

 --id[=ID]       Retry a specific job by ID (e.g. 1245.)
 --ignore-state  Retry job regardless of state. This only effects the --id option.
 --limit[=LIMIT] Retry (up to) a limited number of jobs. Minimum: 1, Maximum: 5000, Default 1000.

Usage

The module exposes a simple Logger service which can log an info and error messages.

Inject the logger service named os2web_audit.logger and send messages into the logger as shown below:

$msg = sprintf('Fetch personal data from service with parameter: %s', $param);
$this->auditLogger->info('Lookup', $msg);

Implementations

See implementations for a list of modules that have audit logging integrated.

Queue

The actual logging is handled by jobs in an Advanced Queue queue.

The queue, OS2Web audit (os2web_audit), must be processed by a server cron job, e.g.

drush advancedqueue:queue:process os2web_audit

List the queue (and all other queues) with

drush advancedqueue:queue:list

or go to /admin/config/system/queues/jobs/os2web_audit for a graphical overview of jobs in the queue.

Purge successful jobs

It is possible to configure the queue to purge jobs based on the number of jobs or the number of days since processing.

Go to admin/config/system/queues/manage/os2web_audit to configure this.

Below is an example of purging successful jobs after 7 days.

queue purge config

Remember to export this to ensure it is not overridden upon config import.

Coding standards

PHP files (PHP_CodeSniffer)

Check PHP coding standards

docker run --interactive --rm --volume ${PWD}:/app itkdev/php8.3-fpm:latest composer install
docker run --interactive --rm --volume ${PWD}:/app itkdev/php8.3-fpm:latest composer coding-standards-check

Apply coding standard changes

docker run --interactive --rm --volume ${PWD}:/app itkdev/php8.3-fpm:latest composer install
docker run --interactive --rm --volume ${PWD}:/app itkdev/php8.3-fpm:latest composer coding-standards-apply

Code analysis

phpstan is used to perform static analysis of the code. Run the following script:

./scripts/code-analysis

Markdown files

docker run --interactive --rm --volume "$PWD:/md" itkdev/markdownlint markdownlint '**/*.md' --fix
docker run --interactive --rm --volume "$PWD:/md" itkdev/markdownlint markdownlint '**/*.md'

统计信息

  • 总下载量: 14.14k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 7
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: EUPL-1.2
  • 更新时间: 2024-05-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固