hauerheinrich / typo3_monitor_api
Hauer-Heinrich - TYPO3 监控 API - 允许获取安装的 TYPO3 cms 的各种信息(响应:json)。
1.3.1
2023-12-12 18:14 UTC
Requires
- typo3/cms-core: ^12.4.0
Replaces
- typo3-ter/typo3-monitor-api: 1.3.1
README
typo3_monitor_api 是一个 TYPO3 扩展。受 Sven Wappler 创建的 zabbix_monitor 扩展的启发。typo3_monitor_api 扩展完全不使用 zabbix,并且与 zabbix 系统不兼容!
安装
... 如同其他 TYPO3 扩展一样 extensions.typo3.org 不需要 TypoScript 或 PageTs。
设置一个后台用户(用户名和密码),这个用户不需要并且也不应该有任何权限!!
使用方法
domain.tld/typo3-monitor-api/v1/{METHOD}
如需,请将参数添加到请求体中,格式为 JSON。
请求
基本认证 - 用户名和用户密码来自后台用户。格式:json(正文)方法 "GetExtensionVersion" 的示例
[ { "extensionKey": "news" } ]
响应
格式:json 每个响应至少包含 "status","value" 和 "message"。例如(domain.tld/typo3-monitor-api/v1/GetPHPVersion
)
[ { "status": true, "value": [ { "version": "7.4.27" } ], "message": "" } ]
方法
获取所有可用方法:domain.tld/typo3-monitor-api/v1/GetAllowedOperations
简短列表
- CheckPathExists
- GetApplicationContext
- GetDatabaseAnalyzerSummary
- GetDatabaseVersion
- GetDiskSpace
- GetExtensionList
- GetExtensionVersion
- GetFeatureValue
- GetFileSpoolValue
- GetFilesystemChecksum
- GetInsecureExtensionList
- GetLastExtensionListUpdate
- GetLastSchedulerRun
- GetLogResults
- GetOpCacheStatus
- GetOutdatedExtensionList
- GetPHPVersion
- GetProgramVersion
- GetSystemInfos
- GetTYPO3Version
- GetTotalLogFilesSize
- HasDeprecationLogEnabled
- HasExtensionUpdate
- HasExtensionUpdateList
- HasFailedSchedulerTask
- HasForbiddenUsers
- HasMissingDefaultMailSettings
- HasRemainingUpdates
- HasSecurityUpdate
- HasUpdate
- IOperation
- UpdateMinorTypo3(HttpMethod: PATCH)
扩展配置/设置
- api-access.operations.allowedOperations: 允许或禁止特定方法
- api-access.allowedIps: 限制端点到 IP 范围(例如 77.6.178.)或特定 IP。逗号分隔列表是可能的。
- api-access.blockTime: 相应 IP 被阻止的时间长度(例如 5 = 5 分钟锁定/阻止自上次失败尝试以来)
- api-access.maxCount: 请求可能发生的次数,在它被阻止之前
TODO
- 添加更好的认证
- 也许加密数据
故障排除
.htaccess
SetEnvIf Authorization "(.)" HTTP_AUTHORIZATION=$1 or RewriteEngine On RewriteRule . - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
API 请求错误
- 无法调用非对象 "request" 的方法 "getQueryParams"。 -> 这通常来自 TypoScript 条件,如
[traverse(request.getQueryParams(), 'tx_news_pi1/action') == 'detail']
,然后检查 "request 对象" 的可用性,例如[request && traverse(request.getQueryParams(), 'tx_news_pi1/action') == 'detail']
!