Repository navigation
Conversation
…ith careful monitoring of how it's created. To finish up and do manual cleanup & ensure REST parity
…ng same connections
…e client with alters!
* Better auth handling, we now pass tokens created * Get/Patch for alter endpoints now handle basic info correctly
* Start of getting custom fields working (creation/update/deleting - attaching to alters to be sorted out)
* Actually handle reading/saving custom fields * Ensure DB rebuild contains all tables required
… only * Fix primary front not being sent to the client * Fix histories not being deleted with an alter * Ensure SocketEventNames is being for everything when possible
* Fix docker compose not creating healthy DB's * Changes from schema correction
… correctly * Fix User ID creation * Fix ResolveRegionalKeyspace & ScyllaUserRegistryRegionContext not accounting for id/username/discord * Fix docker compose being flaky on inital startup
* Move some fields around to only provide what is needed
…e backend! * Add database healthcheck endpoint, to replace with a proper full health check endpoint(s) soonTM
* Upload merged reports
Co-authored-by: Cursor <cursoragent@cursor.com>
Split Interfold.IntegrationTests & UnitTests into 14 per-feature integration/unit-test projects
…s out of Interfold.Shared
Move enums, ID wrappers, DTOs, task-name registries, repository interfaces, and
middleware out of Interfold.Shared.{Contracts,Domain,Api} into the feature
modules that own them. Introduce IAlterFieldDefinitions (Alters.Contracts) with
an adapter in Settings.Domain to break the Alters.Domain <-> Settings.Domain
cycle that would otherwise form when ISettingsFieldRepository moves.
Interfold.Shared.Domain is now a pure cross-cutting-abstractions module.
Shared refactor
….AppHost - Introduced `DevSeedHostedService` to manage in-process seeding of Postgres and Scylla databases. - Added `DevSeedContext` and `DevSeedResource` to encapsulate parameters and resources needed for seeding. - Created `DevSeedExtensions` to wire up the seed pipeline in the application builder. - Updated configuration in `launchSettings.json` to support new parameters for dev environment. - Added `NpgsqlPostgresExecutor` and `DataStaxScyllaExecutor` for database interactions during seeding. - Enhanced documentation in `configuration.md` to reflect changes in local development setup.
Replace the per-project AspireFixture path with one shared, persistent Postgres + Scylla + Cassandra set that every leaf integration project attaches to. Bench lifecycle (file-locked lease, ensure-ready, idle-reaper, ready emitter) lives in tests/.../TestBench/; opt-in is baked into each leaf assembly via <AssemblyMetadata> because MTP + TUnit ignore runsettings <EnvironmentVariables>. Infrastructure opts out because MigrationLedgerTests needs exclusive ledger ownership — the coordinator no longer falls back to the Shared assembly's metadata, which was silently promoting opt-out projects onto the bench. Concurrency-hardening on the now-shared state: hardcoded JWT keypair in TestDbCredentials (PostgresSeeder only seeds internal.secrets once, so per-process Lazy<> keys stranded every subsequent process on 401), per-invocation nonces on shared principals so PostgresIdempotencyStore can't replay a peer variant's AlterId/FrontId, ApplyOnceAsync guards around Postgres seeding + migrations, and a post-migrate ledger check that fail-fasts the silent-skip trap. Local-vs-CI test scoping: MultiNodeScyllaTests and every Bootstrapper.IntegrationTests test class carry [Explicit] (multi-DC cluster + DinD each burn several GB + minutes). Local `dotnet test` skips them; CI's matrix opts in with `--treenode-filter`, and the Bootstrapper csproj passes `--ignore-exit-code 8` so a zero-discovery run still returns 0. Also: HostAioPrerequisite bumps fs.aio-max-nr so 3+ Scylla nodes clear seastar AIO init; ConfigPhase gains an isInteractive test seam (SetIn doesn't affect IsInputRedirected); BootstrapperBuild prunes stale /tmp/interfold-bootstrap-test-publish sessions; WebSocketTests' alter-fanout push test gets [Retry(2)] for the reply-vs-push race.
Add centralised auto-managed integration-test DB bench
PublishTrimmed already disables reflection STJ; FirebasePhase still used plain JsonSerializerOptions, so unit tests passed while the shipped binary failed. Disable reflection in Debug/unit tests too and cover Firebase shapes with dedicated contexts. Co-authored-by: Cursor <cursoragent@cursor.com>
Operators can reopen the Spectre config form seeded from interfold.bootstrap.json and continue the bootstrap pipeline, instead of deleting the file to get interactive prompts back. Co-authored-by: Cursor <cursoragent@cursor.com>
Feat/bootstrap reconfigure
…erd support - Added a new test to verify that the update-images process can handle stale local Cassandra images after a rebuild, addressing the issue described in compose#14014. - Updated the DinDFixtureBase to support enabling the containerd image store for testing. - Modified the dockerd-entrypoint.sh to conditionally configure the containerd snapshotter. - Refactored UpdateImagesPhase to utilize docker compose ps instead of images for better compatibility with containerd. - Adjusted related unit tests to reflect changes in the image parsing logic and command building for docker compose.
Stop enabling containerd in nested Cassandra DinD (overlay-on-overlay breaks docker build on GHA), and snapshot running digests via container inspect so tag names from compose ps no longer defeat the no-op path. Co-authored-by: Cursor <cursoragent@cursor.com>
…t runs Null or unknown security_level now maps to Private instead of aborting owner socket join. Test-bench and full-suite runs on fast hardware get clearer Aspire failures, a gated secrets pre-load pool, and thread-safe CLI console capture. Co-authored-by: Cursor <cursoragent@cursor.com>
Treat storage.avatarStorageRoot as the host directory mounted at /app/data/avatars so uploads survive API image updates, matching certs. Co-authored-by: Cursor <cursoragent@cursor.com>
Read support resources from assembly embeds; stage bind-mount sources under
{outputDir}/support at publish only. Cassandra builds from embedded Dockerfile via stdin.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| - | - | Elliptic Curve Private Key | cb52915 | tests/integration/Interfold.IntegrationTests.Shared/TestServices/TestDbCredentials.cs | View secret |
| - | - | Generic Password | b4ffb59 | csharp/Interfold.IntegrationTests/TestServices/TestDbCredentials.cs | View secret |
| - | - | Generic Private Key | 954ee5b | tests/integration/Interfold.IntegrationTests.Shared/TestServices/TestDbCredentials.cs | View secret |
| - | - | Generic Password | b4ffb59 | csharp/Interfold.IntegrationTests/TestServices/TestDbCredentials.cs | View secret |
| - | - | Generic High Entropy Secret | 357ea12 | csharp/Interfold.Api.UnitTests/Socket/PhxJoinPayloadPlatformToleranceTests.cs | View secret |
| - | - | Generic Password | 94080ba | compose_templates/docker-compose.interfold-api.yml | View secret |
| - | - | Generic Password | b4ffb59 | csharp/Interfold.IntegrationTests/TestServices/TestDbCredentials.cs | View secret |
| 13427954 | Triggered | Generic Password | ad921a5 | compose_templates/docker-cassandra.yml | View secret |
| - | - | Generic High Entropy Secret | b4ffb59 | csharp/Interfold.Infrastructure/DependencyInjection/ConfigurationServiceCollectionExtensions.cs | View secret |
| - | - | Generic Password | e8d5ce3 | csharp/Interfold.Infrastructure/Configuration/ConfigurationServiceCollectionExtensions.cs | View secret |
| - | - | Generic High Entropy Secret | b4ffb59 | csharp/Interfold.IntegrationTests/TestServices/InterfoldWebApplicationFactory.cs | View secret |
| - | - | ODBC Connection String | 8754fe8 | csharp/Interfold.IntegrationTests/TestServices/SingleNodeScyllaFixture.cs | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secrets safely. Learn here the best practices.
- Revoke and rotate these secrets.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
No description provided.