Skip to content

Develop - #25

Closed
Azyyyyyy wants to merge 199 commits into
OctoconDev:mainfrom
Azyyyyyy:develop
Closed

Azyyyyyy wants to merge 199 commits into
OctoconDev:mainfrom
Azyyyyyy:develop

Conversation

@Azyyyyyy

Copy link
Copy Markdown

No description provided.

Azyyyyyy added 30 commits March 19, 2026 15:35
…ith careful monitoring of how it's created. To finish up and do manual cleanup & ensure REST parity
* 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
Azyyyyyy and others added 28 commits July 24, 2026 12:33
Co-authored-by: Cursor <cursoragent@cursor.com>
Split Interfold.IntegrationTests & UnitTests into 14 per-feature integration/unit-test projects
* Fix namespaces being incorrect
* Fix https redirect happening on dev instance (Interfold.Api.Host)
…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.
….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>
…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>
@Azyyyyyy Azyyyyyy closed this Aug 30, 2026
@gitguardian

gitguardian Bot commented Aug 30, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 12 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

Since your pull request originates from a forked repository, GitGuardian is not able to associate the secrets uncovered with secret incidents on your GitGuardian dashboard.
Skipping this check run and merging your pull request will create secret incidents on your GitGuardian dashboard.

🔎 Detected hardcoded secrets in your pull request
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
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. 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


🦉 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants