gtcrais / laravel-centinel-api
Laravel Centinel API
Requires
- spatie/db-dumper: 1.5.1|2.9.*
This package is auto-updated.
Last update: 2024-09-09 22:31:14 UTC
README
此包提供下载应用程序日志文件的API,以及转储和下载数据库。它包含认证中间件,用于保护API路由。
Centinel API旨在与Centinel——集中式应用程序管理系统——结合使用。
对于 Laravel 4.2,使用Centinel API v1.2
要求
- PHP 5.6+
- Laravel 5.1+(由于与其中使用的Symfony组件不兼容,不支持Laravel 5.0)
- 确保您的缓存驱动器已配置且正在运行
- 不支持Windows环境
安装:Laravel
- 将
"gtcrais/laravel-centinel-api": "2.3.*"添加到您的composer.json中,并运行composer update - 对于Laravel
<=5.4,将GTCrais\LaravelCentinelApi\LaravelCentinelApiServiceProvider::class,添加到/app/config/app.php中的提供者数组中,并运行composer dump-autoload - 运行
php artisan centinel-api:setup
安装:Lumen
- 将
"gtcrais/laravel-centinel-api": "2.3.*"添加到您的composer.json中,并运行composer update - 在
/bootstrap/app.php中取消注释$app->withFacades(); - 将
$app->configure('centinelApi');添加到/bootstrap/app.php中。这将加载Centinel API配置 - 将
$app->register(GTCrais\LaravelCentinelApi\LumenCentinelApiServiceProvider::class);添加到/bootstrap/app.php以下 配置文件注册 - 运行
php artisan centinel-api:setup
其他安装说明
Laravel 5.1
- 将
routePrefix添加到VerifyCsrfToken中间件的$except数组中。示例
protected $except = [ 'Hts71OwsRTwjXDb5Kdp5zk5l6KsvEz7Q/*' // Note the /* at the end ];
Lumen
Centinel API首先将在/config/database.php中查找数据库连接配置。如果那里没有,它将在.env文件中查找。如果您希望使用数据库转储功能,请确保其中一个选项可用。
使用
强烈建议仅在使用HTTPS的网站上使用此插件!
完成安装过程后,您将在/config目录中找到centinelApi.php配置文件。从那里,将privateKey、encryptionKey和routePrefix复制到Centinel,然后您可以安排应用程序日志检查和数据库备份。
配置文件
privateKey- 随机字符串,用于认证encryptionKey- 随机字符串,用于额外的安全层routePrefix- 随机字符串,作为API路由的前缀enabledRoutes- 如果您只想公开API的一部分,您可以在此处禁用日志或数据库路由disableTimeBasedAuthorization- 如果您的服务器和Centinel的日期时间不同步,导致出现“请求时间不匹配”或“API调用过多”错误,请将此设置为truezipPassword- 压缩数据库转储时使用的密码。请确保保存Zip密码,以便在服务器崩溃时恢复数据库database- 数据库设置和选项
除了connection之外的所有数据库选项都是可选的。
某些数据库选项在Laravel/Lumen 5.1中不可用,并且在PHP 5(无论框架版本如何)中也不可用。有关更多详细信息,请参阅Spatie DB Dumper v1.5.1
有关如何使用选项的详细信息,请检查已安装的包版本。对于PHP 7上的Laravel/Lumen 5.2+,将是Spatie DB Dumper v2.9
要忽略数据库设置/选项,将其设置为null。
API路由
- [POST]
/{routePrefix}/create-log - [POST]
/{routePrefix}/download-log - [POST]
/{routePrefix}/dump-database - [POST]
/{routePrefix}/download-database
更多详细信息请查看/Controllers/CentinelApiController.php控制器。
数据库备份
Spatie DB Dumper用于创建数据库备份。MySQL和PostgreSQL受支持,分别需要mysqldump和pg_dump工具。
此外,在运行在PHP 7上的Laravel/Lumen 5.2+应用程序中,支持Sqlite和MongoDB,分别需要sqlite3和mongodump工具。
Centinel API将在发送到Centinel之前尝试压缩和加密数据库备份。如果您使用的是PHP 7.2+,它将使用PHP的本地ZipArchive类来压缩和加密数据库。否则,它将寻找7-Zip和Zip库来执行此操作。如果没有可用选项,备份将发送而不会被压缩和加密。
运行php artisan centinel-api:check-zip以查看您的服务器上可用的库。请注意,Zip加密算法比ZipArchive和7-Zip的加密算法要弱得多。最终,您需要决定哪种安全级别是可以接受的。您始终可以选择通过在Centinel中禁用数据库备份以及取消注释enabledRoutes配置选项中的DatabaseRoutes来退出数据库备份。
身份验证
有关详细信息,请查看/Middleware/AuthorizeCentinelApiRequest.php中间件。
许可证
Laravel Centinel API是开源软件,许可协议为MIT许可证。