Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
1 line
6.8 KiB
JSON
1 line
6.8 KiB
JSON
{"repo": "bhoyee/certiwatch", "files": {"apps/worker/Options/WorkerOptions.cs": {"5329c6099e15ba5fd2e439d86e6af2a9b6128cd3": {"t": 1786068392.9451845, "n": 1577, "h": "1c98d0cd5c6eea8d", "c": "namespace CertiWatch.Worker.Options;\n\nusing System.IO;\n\npublic sealed class WorkerOptions\n{\n public string ApiBaseUrl { get; set; } = \"http://localhost:5001\";\n public Guid TenantId { get; set; } = Guid.Parse(\"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\");\n public Guid SourceId { get; set; } = Guid.Parse(\"cccccccc-cccc-cccc-cccc-cccccccccccc\");\n public Guid DeviceId { get; set; } = Guid.Parse(\"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb\");\n public string DeviceToken { get; set; } = \"dev-token\";\n public string AzureVisionEndpoint { get; set; } = string.Empty;\n public string AzureVisionKey { get; set; } = string.Empty;\n public string DoctrBaseUrl { get; set; } = string.Empty;\n public string DeepSeekApiKey { get; set; } = string.Empty;\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\n public IReadOnlyList<string> WatchPaths { get; set; } = new[] { UploadsPath, DefaultCloudImportPath };\n public bool EnableWatcher { get; set; } = true;\n public bool EnableSampleDocuments { get; set; } = false;\n public string DocumentType { get; set; } = \"generic_certificate\";\n public int CloudImportPollMinutes { get; set; } = 5;\n public string CloudImportDownloadPath { get; set; } = DefaultCloudImportPath;\n\n private static string DefaultSamplesPath =>\n Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, \"..\", \"..\", \"..\", \"..\", \"..\", \"samples\", \"documents\"));\n\n private static string UploadsPath =>\n \"/uploads\";\n\n private static string DefaultCloudImportPath =>\n \"/tmp/cloud-import\";\n}\n"}}, "docker-compose.yml": {"5329c6099e15ba5fd2e439d86e6af2a9b6128cd3": {"t": 1786068429.165222, "n": 4768, "h": "60eef24de4bcabbf", "c": "version: \"3.9\"\n\nservices:\n postgres:\n image: postgres:16\n restart: unless-stopped\n environment:\n POSTGRES_USER: postgres\n POSTGRES_PASSWORD: postgres\n POSTGRES_DB: certiwatch\n ports:\n - \"15432:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n\n redis:\n image: redis:7\n restart: unless-stopped\n command: [\"redis-server\", \"--save\", \"60\", \"1\", \"--loglevel\", \"warning\"]\n ports:\n - \"6379:6379\"\n\n api:\n build:\n context: .\n dockerfile: apps/api/Dockerfile\n depends_on:\n - postgres\n - redis\n environment:\n ASPNETCORE_ENVIRONMENT: Development\n ASPNETCORE_URLS: http://+:8080\n ConnectionStrings__postgres: Host=postgres;Username=postgres;Password=postgres;Database=certiwatch\n MagicLinks__BaseUrl: http://localhost:3300\n Stripe__SecretKey: ${Stripe__SecretKey:-sk_test_xxx}\n Stripe__WebhookSecret: ${Stripe__WebhookSecret:-whsec_xxx}\n Stripe__MagicLinks__BaseUrl: ${Stripe__MagicLinks__BaseUrl:-http://localhost:3300}\n Stripe__SuccessUrl: http://localhost:3300/signup/success\n Stripe__CancelUrl: http://localhost:3300/signup\n Stripe__TrialDays: 7\n Stripe__Plans__0__PlanId: starter\n Stripe__Plans__0__PriceId: ${Stripe__Plans__0__PriceId:-price_starter}\n Stripe__Plans__0__DisplayName: Starter\n Stripe__Plans__0__RecordLimit: 50\n Stripe__Plans__1__PlanId: growth\n Stripe__Plans__1__PriceId: ${Stripe__Plans__1__PriceId:-price_growth}\n Stripe__Plans__1__DisplayName: Growth\n Stripe__Plans__1__RecordLimit: 500\n Stripe__Plans__2__PlanId: pro\n Stripe__Plans__2__PriceId: ${Stripe__Plans__2__PriceId:-price_pro}\n Stripe__Plans__2__DisplayName: Pro\n Stripe__Plans__2__RecordLimit: 0\n Email__FromAddress: ${Email__FromAddress:-hello@salisu.dev}\n Email__FromName: ${Email__FromName:-IncidentPulse}\n # No SmtpHost default: EmailService treats an empty host as \"log the email instead of\n # sending it\" (see apps/api/Infrastructure/Services/EmailService.cs). Defaulting this to\n # smtp.resend.com with a placeholder re_XXXX password meant every send silently failed\n # against Resend's real server with a fake API key unless you'd already set up an account -\n # set these three in .env only once you actually have real SMTP/Resend credentials.\n Email__SmtpHost: ${Email__SmtpHost:-}\n Email__SmtpPort: ${Email__SmtpPort:-587}\n Email__SmtpUsername: ${Email__SmtpUsername:-}\n Email__SmtpPassword: ${Email__SmtpPassword:-}\n Email__SmtpEncryption: ${Email__SmtpEncryption:-starttls}\n Storage__UploadsRoot: /uploads\n ports:\n - \"5002:8080\"\n volumes:\n - ./uploads:/uploads\n - ./samples/documents:/samples/documents:ro\n\n worker:\n build:\n context: .\n dockerfile: apps/worker/Dockerfile\n depends_on:\n api:\n condition: service_started\n paddleocr:\n condition: service_healthy\n environment:\n WORKER__DeepSeekApiKey: ${DEEPSEEK_API_KEY:-}\n WORKER__DeepSeekBaseUrl: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n WORKER__ApiBaseUrl: http://api:8080\n # Enroll a device (see README \"Docker quickstart\") to get a real id/token pair, then set\n # them in .env as WORKER__DeviceId / WORKER__DeviceToken - do not hardcode real values here.\n WORKER__DeviceId: ${WORKER__DeviceId:-}\n WORKER__DeviceToken: ${WORKER__DeviceToken:-}\n WORKER__TenantId: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\n WORKER__DoctrBaseUrl: ${WORKER__DoctrBaseUrl:-http://paddleocr:8000}\n DOTNET_ENVIRONMENT: Development\n WORKER__EnableWatcher: \"true\"\n WORKER__EnableSampleDocuments: \"false\"\n volumes:\n - ./uploads:/uploads:ro\n - ./samples/documents:/samples/documents:ro\n\n frontend:\n build:\n context: ./apps/frontend\n dockerfile: Dockerfile\n args:\n # Use host-exposed API so browser calls succeed\n NEXT_PUBLIC_API_BASE_URL: http://localhost:5002\n NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: ${NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY:-pk_test_xxx}\n depends_on:\n - api\n - worker\n environment:\n NEXT_PUBLIC_API_BASE_URL: http://localhost:5002\n NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: ${NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY:-pk_test_xxx}\n ports:\n - \"3300:3000\"\n volumes:\n - ./uploads:/uploads\n\n paddleocr:\n build:\n context: ./apps/ocr-paddle\n dockerfile: Dockerfile\n ports:\n - \"8000:8000\"\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -f http://localhost:8000/health || exit 1\"]\n interval: 10s\n timeout: 5s\n retries: 5\n deploy:\n resources:\n limits:\n cpus: '1.0'\n memory: 2G\n\nvolumes:\n postgres_data:\n"}}}} |