diff --git a/docs/en/reference/configuration.md b/docs/en/reference/configuration.md index cacff9f0..c073b529 100644 --- a/docs/en/reference/configuration.md +++ b/docs/en/reference/configuration.md @@ -23,7 +23,6 @@ The Agent supports: | Component | Default Location | Description | | --- | --- | --- | | Server SQLite | `openflare.db` | Can be modified via `SQLITE_PATH` | -| Server Uploads Directory | `upload` | Can be modified via `UPLOAD_PATH` | | Agent Configuration File | `./agent.json` | Can be specified via `-config` | | One-click Install Agent Config | `/opt/openflare-agent/agent.json` | Default generated by the installation script | | Agent Data Directory | `data` under the config directory | Can be modified via `data_dir` | @@ -54,7 +53,6 @@ go run . --port 3000 --log-dir ./logs | `DSN` | PostgreSQL DSN, preferred over SQLite when set | empty | | `SQL_DSN` | Legacy PostgreSQL DSN, lower priority than `DSN` | empty | | `REDIS_CONN_STRING` | Redis connection string | empty | -| `UPLOAD_PATH` | Upload directory | `upload` | | `AGENT_TOKEN` | Legacy global Agent token | empty | Description: diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index 0934f432..e6e7db79 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -23,7 +23,6 @@ Agent 支持: | 组件 | 默认位置 | 说明 | | --- | --- | --- | | Server SQLite | `openflare.db` | 可通过 `SQLITE_PATH` 修改 | -| Server 上传目录 | `upload` | 可通过 `UPLOAD_PATH` 修改 | | Agent 配置文件 | `./agent.json` | 可通过 `-config` 指定 | | 一键安装 Agent 配置 | `/opt/openflare-agent/agent.json` | 安装脚本默认生成 | | Agent 数据目录 | 配置文件所在目录下的 `data` | 可通过 `data_dir` 修改 | @@ -54,7 +53,6 @@ go run . --port 3000 --log-dir ./logs | `DSN` | PostgreSQL DSN,设置后优先于 SQLite | 空 | | `SQL_DSN` | 兼容旧命名的 PostgreSQL DSN,优先级低于 `DSN` | 空 | | `REDIS_CONN_STRING` | Redis 连接串 | 空 | -| `UPLOAD_PATH` | 上传目录 | `upload` | | `AGENT_TOKEN` | 兼容旧部署的全局 Agent Token | 空 | 说明: diff --git a/openflare_server/common/init.go b/openflare_server/common/init.go index f5a029f1..b4a206b0 100644 --- a/openflare_server/common/init.go +++ b/openflare_server/common/init.go @@ -16,9 +16,6 @@ var ( LogDir = flag.String("log-dir", "", "specify the log directory") ) -// UploadPath Maybe override by ENV_VAR -var UploadPath = "upload" - func printHelp() { fmt.Println("OpenFlare " + Version + " - Internal OpenResty Control Plane.") fmt.Println("Copyright (C) 2023 JustSong. All rights reserved.") @@ -28,7 +25,8 @@ func printHelp() { func init() { executableName := strings.ToLower(filepath.Base(os.Args[0])) - if !strings.Contains(executableName, ".test") { + isTest := strings.Contains(executableName, ".test") || flag.Lookup("test.v") != nil + if !isTest { flag.Parse() } @@ -54,9 +52,7 @@ func init() { if os.Getenv("DSN") != "" { SQLDSN = os.Getenv("DSN") } - if os.Getenv("UPLOAD_PATH") != "" { - UploadPath = os.Getenv("UPLOAD_PATH") - } + if os.Getenv("AGENT_TOKEN") != "" { AgentToken = os.Getenv("AGENT_TOKEN") } @@ -76,7 +72,5 @@ func init() { } } } - if _, err := os.Stat(UploadPath); os.IsNotExist(err) { - _ = os.Mkdir(UploadPath, 0777) - } + } diff --git a/openflare_server/main.go b/openflare_server/main.go index 68413745..ffe28526 100644 --- a/openflare_server/main.go +++ b/openflare_server/main.go @@ -101,7 +101,7 @@ func main() { if common.SQLDSN != "" { dbBackend = "postgres" } - slog.Info("server config", "port", port, "gin_mode", gin.Mode(), "log_level", common.GetLogLevel(), "db_backend", dbBackend, "sqlite_path", common.SQLitePath, "redis_enabled", common.RedisEnabled, "upload_path", common.UploadPath, "log_dir", valueOrDefault(*common.LogDir, "stdout"), "agent_token_configured", common.AgentToken != "", "node_offline_threshold", common.NodeOfflineThreshold) + slog.Info("server config", "port", port, "gin_mode", gin.Mode(), "log_level", common.GetLogLevel(), "db_backend", dbBackend, "sqlite_path", common.SQLitePath, "redis_enabled", common.RedisEnabled, "log_dir", valueOrDefault(*common.LogDir, "stdout"), "agent_token_configured", common.AgentToken != "", "node_offline_threshold", common.NodeOfflineThreshold) slog.Info("server listening", "address", fmt.Sprintf(":%s", port)) err = server.Run(":" + port) if err != nil { diff --git a/openflare_server/web/features/waf/components/helpers.ts b/openflare_server/web/features/waf/components/helpers.ts index 135a9491..0d9eb6d4 100644 --- a/openflare_server/web/features/waf/components/helpers.ts +++ b/openflare_server/web/features/waf/components/helpers.ts @@ -51,7 +51,7 @@ export const emptyDraft: WAFRuleGroupPayload = { export const defaultRuleModalState: RuleModalState = { open: false, - listType: 'whitelist', + listType: 'blacklist', dimension: 'ip', ipValue: '', ipGroupIDs: [], diff --git a/openflare_server/web/tests/unit/waf-ip-groups-page.test.tsx b/openflare_server/web/tests/unit/waf-ip-groups-page.test.tsx index bb6974e7..763ec4c8 100644 --- a/openflare_server/web/tests/unit/waf-ip-groups-page.test.tsx +++ b/openflare_server/web/tests/unit/waf-ip-groups-page.test.tsx @@ -246,4 +246,46 @@ describe('WAF IP groups', () => { expect(await screen.findByText(/IP组: edge blacklist/)).toBeInTheDocument(); }); + + it('defaults new rule entries to blacklist', async () => { + vi.stubGlobal( + 'fetch', + vi.fn((input: RequestInfo | URL) => { + const url = String(input); + + if (url.includes('/waf/rule-groups')) { + return Promise.resolve( + new Response( + JSON.stringify({ + success: true, + message: '', + data: [buildRuleGroup()], + }), + ), + ); + } + + if (url.includes('/waf/ip-groups') || url.includes('/proxy-routes/')) { + return Promise.resolve( + new Response( + JSON.stringify({ success: true, message: '', data: [] }), + ), + ); + } + + return Promise.reject(new Error(`Unhandled fetch: ${url}`)); + }), + ); + + renderWithProviders(); + + await userEvent.click( + await screen.findByRole('button', { name: /黑白名单/ }), + ); + await userEvent.click(screen.getByRole('button', { name: /添加/ })); + + expect( + await screen.findByRole('heading', { name: '添加黑名单规则' }), + ).toBeInTheDocument(); + }); });