mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-30 06:16:37 +08:00
7d71f1e4e1
- New internal/repository/logstore abstraction: exported domain interfaces (AccessLogStore/ObservabilityStore/UserAccessLogStore/StatusStore), config-driven provider (Active/Build/Migrating/SetConfigReader), GORM implementation for PostgreSQL/SQLite (incl. hourly rollups computed in real time, migration listers, PG partition maintenance), and a ClickHouse wrapper preserving the native batch path; repository facade delegates to logstore; import-lint test enforces apps never import analyticsrepo. - ClickHouse is now optional: the log DB is either the main DB (postgres when database.enabled, else sqlite) or clickhouse; boot validation + first-run seed; log_database / log_db_migration are protected keys. - New user task 切换日志数据库 (of_log_db_switch): freeze log writes, drain batch writers, copy all 6 raw log tables by id (preserving IDs) with target-partition pre-creation for PG, flip log_database on success, clear the freeze flag on failure. - Per-store retention (log_retention_days_*) with expiry cleanup folded into the daily system_cleanup task; legacy database_auto_cleanup_* and of_database_auto_cleanup decommissioned. - goose migrations: 6 log tables in PG (2 monthly-partitioned) + SQLite, retention config seeds, schedule cleanup; GET /api/v1/admin/status/log-database endpoint; frontend retention settings, switch-task UI and status badge; changelog and docs updated. docs(plan): log database decoupling implementation plan docs(design): log database decoupling design (ClickHouse optional)
198 lines
5.5 KiB
TypeScript
198 lines
5.5 KiB
TypeScript
export { OpenFlareBaseService } from './base.service';
|
|
|
|
export { NodeService } from './node.service';
|
|
export { ProxyRouteService } from './proxy-route.service';
|
|
export { ConfigVersionService } from './config-version.service';
|
|
export { ApplyLogService } from './apply-log.service';
|
|
export { DashboardService } from './dashboard.service';
|
|
export { WafService } from './waf.service';
|
|
export { ZoneDomainService, ZoneService, zoneQueryKey } from './zone.service';
|
|
export { TlsCertificateService } from './tls-certificate.service';
|
|
export { DnsAccountService } from './dns-account.service';
|
|
export { PagesService } from './pages.service';
|
|
export { OriginService } from './origin.service';
|
|
export { AccessLogService } from './access-log.service';
|
|
export { OptionService } from './option.service';
|
|
export { UptimeKumaService } from './uptimekuma.service';
|
|
export { StatusService } from './status.service';
|
|
export {
|
|
CloudflareService,
|
|
cloudflareQueryKey,
|
|
} from './cloudflare.service';
|
|
|
|
export type {
|
|
ApplyLogCleanupPayload,
|
|
ApplyLogCleanupResult,
|
|
ApplyLogItem,
|
|
ApplyLogList,
|
|
ApplyLogListQuery,
|
|
ApplyResult,
|
|
ConfigDiffResult,
|
|
ConfigOptionDiffItem,
|
|
ConfigPreviewResult,
|
|
ConfigVersionCleanupPayload,
|
|
ConfigVersionCleanupResult,
|
|
ConfigVersionDetail,
|
|
ConfigVersionSummary,
|
|
NodeAgentReleaseInfo,
|
|
NodeAgentUpdatePayload,
|
|
NodeBootstrapToken,
|
|
NodeItem,
|
|
NodeMutationPayload,
|
|
NodeHealthEvent,
|
|
NodeObservability,
|
|
NodeObservabilityAnalytics,
|
|
NodeObservabilityTrends,
|
|
NodeSystemProfile,
|
|
NodeStatus,
|
|
NodeType,
|
|
OpenrestyStatus,
|
|
ProxyRouteConfigSection,
|
|
ProxyRouteCustomHeader,
|
|
ProxyRouteItem,
|
|
ProxyRouteMutationPayload,
|
|
ProxyRoutePoWConfig,
|
|
ProxyRouteZoneDomain,
|
|
ReleaseChannel,
|
|
SupportFile,
|
|
DashboardOverview,
|
|
DashboardNodeHealth,
|
|
DashboardSummary,
|
|
DashboardTraffic,
|
|
DashboardCapacity,
|
|
DistributionItem,
|
|
TrafficDistributions,
|
|
TrafficTrendPoint,
|
|
CapacityTrendPoint,
|
|
NetworkTrendPoint,
|
|
DiskIOTrendPoint,
|
|
WAFIPGroup,
|
|
WAFIPGroupAutoTestPayload,
|
|
WAFIPGroupAutoTestResult,
|
|
WAFIPGroupPayload,
|
|
WAFIPGroupSyncResult,
|
|
WAFIPGroupSubscriptionFormat,
|
|
WAFIPGroupType,
|
|
WAFCreateRulePayload,
|
|
WAFRule,
|
|
WAFRuleEdge,
|
|
WAFRuleGraph,
|
|
WAFRuleNode,
|
|
WAFSaveRuleGraphPayload,
|
|
WAFUpdateRuleMetaPayload,
|
|
WAFRuleGroup,
|
|
WAFRuleGroupPayload,
|
|
WAFSiteRuleGroups,
|
|
AccessLogCleanupPayload,
|
|
AccessLogCleanupResult,
|
|
AccessLogFilters,
|
|
AccessLogIPAnalysis,
|
|
AccessLogIPAnalysisFilters,
|
|
AccessLogIPSummaryFilters,
|
|
AccessLogIPSummaryItem,
|
|
AccessLogIPSummaryList,
|
|
AccessLogIPTrend,
|
|
AccessLogIPTrendFilters,
|
|
AccessLogItem,
|
|
AccessLogList,
|
|
AccessLogOverview,
|
|
AccessLogOverviewFilters,
|
|
AccessLogOverviewMetricPoint,
|
|
FoldedAccessLogFilters,
|
|
FoldedAccessLogIPFilters,
|
|
FoldedAccessLogIPList,
|
|
FoldedAccessLogList,
|
|
OptionItem,
|
|
GeoIPLookupResult,
|
|
OpenFlarePublicStatus,
|
|
OriginDetail,
|
|
OriginItem,
|
|
OriginMutationPayload,
|
|
PagesDeployment,
|
|
PagesDeploymentFile,
|
|
PagesGitHubLatestSourceUpdatePayload,
|
|
PagesGitHubReleaseSelector,
|
|
PagesGitHubReleaseSource,
|
|
PagesGitHubSourceUpdatePayload,
|
|
PagesGitHubTagSourceUpdatePayload,
|
|
PagesManualSource,
|
|
PagesProject,
|
|
PagesProjectPayload,
|
|
PagesRemoteSourceUpdatePayload,
|
|
PagesRemoteURLSource,
|
|
PagesSource,
|
|
PagesSourceActionPayload,
|
|
PagesSourceActionReceipt,
|
|
PagesSourceRevision,
|
|
PagesSourceStatus,
|
|
PagesSourceUpdatePayload,
|
|
PagesSourceUpdateResult,
|
|
AcmeAccountItem,
|
|
DnsAccountItem,
|
|
DnsAccountMutationPayload,
|
|
ZoneDomainItem,
|
|
ZoneDomainMutationPayload,
|
|
ZoneItem,
|
|
ZoneMutationPayload,
|
|
ZoneOverview,
|
|
ZoneStats,
|
|
ZoneStatsPoint,
|
|
ZoneStatsRange,
|
|
TlsCertificateApplyPayload,
|
|
TlsCertificateContentItem,
|
|
TlsCertificateDetailItem,
|
|
TlsCertificateFileImportPayload,
|
|
TlsCertificateItem,
|
|
TlsCertificateMutationPayload,
|
|
CloudflareAvailableDomain,
|
|
CloudflareConnection,
|
|
CloudflareConnectionPayload,
|
|
CloudflareConnectionSource,
|
|
CloudflareGroup,
|
|
CloudflareGroupDetail,
|
|
CloudflareGroupPayload,
|
|
CloudflareMember,
|
|
CloudflareMemberCreatePayload,
|
|
CloudflareNodeOption,
|
|
CloudflareOverview,
|
|
CloudflareSyncReceipt,
|
|
CloudflareSyncStatus,
|
|
} from './types';
|
|
|
|
import { AccessLogService } from './access-log.service';
|
|
import { ApplyLogService } from './apply-log.service';
|
|
import { ConfigVersionService } from './config-version.service';
|
|
import { DashboardService } from './dashboard.service';
|
|
import { DnsAccountService } from './dns-account.service';
|
|
import { NodeService } from './node.service';
|
|
import { OptionService } from './option.service';
|
|
import { StatusService } from './status.service';
|
|
import { UptimeKumaService } from './uptimekuma.service';
|
|
import { OriginService } from './origin.service';
|
|
import { PagesService } from './pages.service';
|
|
import { ProxyRouteService } from './proxy-route.service';
|
|
import { TlsCertificateService } from './tls-certificate.service';
|
|
import { WafService } from './waf.service';
|
|
import { ZoneDomainService, ZoneService } from './zone.service';
|
|
import { CloudflareService } from './cloudflare.service';
|
|
|
|
export const openflareServices = {
|
|
node: NodeService,
|
|
proxyRoute: ProxyRouteService,
|
|
configVersion: ConfigVersionService,
|
|
applyLog: ApplyLogService,
|
|
dashboard: DashboardService,
|
|
waf: WafService,
|
|
zone: ZoneService,
|
|
zoneDomain: ZoneDomainService,
|
|
tlsCertificate: TlsCertificateService,
|
|
dnsAccount: DnsAccountService,
|
|
pages: PagesService,
|
|
origin: OriginService,
|
|
accessLog: AccessLogService,
|
|
option: OptionService,
|
|
uptimeKuma: UptimeKumaService,
|
|
status: StatusService,
|
|
cloudflare: CloudflareService,
|
|
} as const;
|