feat: Complete MongoDB/MinIO removal and integrate CLI consolidation
This commit completes the MongoDB and MinIO removal from the StellaOps platform and integrates the CLI consolidation work from remote. ## Infrastructure Changes - PostgreSQL v16+ is now the ONLY supported database - Valkey v8.0 replaces Redis for caching, DPoP security, and event streams - RustFS is the primary object storage (MinIO fully removed) - NATS is OPTIONAL for messaging (Valkey is default transport) ## Docker Compose Updates Updated all deployment profiles: - deploy/compose/docker-compose.dev.yaml - deploy/compose/docker-compose.airgap.yaml - deploy/compose/docker-compose.stage.yaml - deploy/compose/docker-compose.prod.yaml All profiles now use PostgreSQL + Valkey + RustFS stack. ## Environment Configuration Updated all env.example files with: - Removed: MONGO_*, MINIO_* variables - Added: POSTGRES_*, VALKEY_* variables - Updated: SCANNER_QUEUE_BROKER to use Valkey by default - Enhanced: Surface.Env and Offline Kit configurations ## Aoc.Cli Changes - Removed --mongo option entirely - Made --postgres option required - Removed VerifyMongoAsync method - PostgreSQL is now the only supported backend ## CLI Consolidation (from merge) Integrated plugin architecture for unified CLI: - stella aoc verify (replaces stella-aoc) - stella symbols (replaces stella-symbols) - Plugin manifests and command modules - Migration guide for users ## Documentation Updates - README.md: Updated deployment workflow notes - DEVELOPER_ONBOARDING.md: Complete Valkey-centric flow diagrams - QUICKSTART_HYBRID_DEBUG.md: Removed MongoDB/MinIO references - VERSION_MATRIX.md: Updated infrastructure dependencies - CLEANUP_SUMMARY.md: Marked all cleanup tasks complete - 07_HIGH_LEVEL_ARCHITECTURE.md: Corrected infrastructure stack - 11_DATA_SCHEMAS.md: Valkey keyspace documentation ## Merge Resolution Resolved merge conflicts by accepting incoming changes which had more complete Surface.Env and Offline Kit configurations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,14 @@ namespace StellaOps.Aoc.Cli;
|
||||
|
||||
public static class Program
|
||||
{
|
||||
private const string DeprecationDate = "2025-07-01";
|
||||
private const string MigrationUrl = "https://docs.stellaops.io/cli/migration";
|
||||
|
||||
public static async Task<int> Main(string[] args)
|
||||
{
|
||||
// Emit deprecation warning
|
||||
EmitDeprecationWarning();
|
||||
|
||||
var rootCommand = new RootCommand("StellaOps AOC CLI - Verify append-only contract compliance")
|
||||
{
|
||||
VerifyCommand.Create()
|
||||
@@ -15,4 +21,21 @@ public static class Program
|
||||
|
||||
return await rootCommand.InvokeAsync(args);
|
||||
}
|
||||
|
||||
private static void EmitDeprecationWarning()
|
||||
{
|
||||
var originalColor = Console.ForegroundColor;
|
||||
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||
Console.Error.WriteLine();
|
||||
Console.Error.WriteLine("================================================================================");
|
||||
Console.Error.WriteLine("[DEPRECATED] stella-aoc is deprecated and will be removed on " + DeprecationDate + ".");
|
||||
Console.Error.WriteLine();
|
||||
Console.Error.WriteLine("Please migrate to the unified stella CLI:");
|
||||
Console.Error.WriteLine(" stella aoc verify --since <ref> --postgres <conn>");
|
||||
Console.Error.WriteLine();
|
||||
Console.Error.WriteLine("Migration guide: " + MigrationUrl);
|
||||
Console.Error.WriteLine("================================================================================");
|
||||
Console.Error.WriteLine();
|
||||
Console.ForegroundColor = originalColor;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public sealed class AocVerificationService
|
||||
// Parse the since parameter
|
||||
var sinceTimestamp = ParseSinceParameter(options.Since);
|
||||
|
||||
// Verify PostgreSQL database
|
||||
// Verify using PostgreSQL
|
||||
await VerifyPostgresAsync(options.PostgresConnectionString, sinceTimestamp, options.Tenant, result, cancellationToken);
|
||||
|
||||
stopwatch.Stop();
|
||||
@@ -228,4 +228,5 @@ public sealed class AocVerificationService
|
||||
Console.WriteLine("Note: excititor.vex_documents table not found (may not be initialized)");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -117,25 +117,16 @@ public sealed class AocVerificationServiceTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void VerifyOptions_MongoAndPostgres_AreMutuallyExclusive()
|
||||
public void VerifyOptions_PostgresConnectionString_IsRequired()
|
||||
{
|
||||
var optionsMongo = new VerifyOptions
|
||||
{
|
||||
Since = "HEAD~1",
|
||||
MongoConnectionString = "mongodb://localhost:27017"
|
||||
};
|
||||
|
||||
var optionsPostgres = new VerifyOptions
|
||||
var options = new VerifyOptions
|
||||
{
|
||||
Since = "HEAD~1",
|
||||
PostgresConnectionString = "Host=localhost;Database=test"
|
||||
};
|
||||
|
||||
Assert.NotNull(optionsMongo.MongoConnectionString);
|
||||
Assert.Null(optionsMongo.PostgresConnectionString);
|
||||
|
||||
Assert.Null(optionsPostgres.MongoConnectionString);
|
||||
Assert.NotNull(optionsPostgres.PostgresConnectionString);
|
||||
Assert.NotNull(options.PostgresConnectionString);
|
||||
Assert.Equal("Host=localhost;Database=test", options.PostgresConnectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -143,7 +134,8 @@ public sealed class AocVerificationServiceTests
|
||||
{
|
||||
var options = new VerifyOptions
|
||||
{
|
||||
Since = "2025-01-01"
|
||||
Since = "2025-01-01",
|
||||
PostgresConnectionString = "Host=localhost;Database=test"
|
||||
};
|
||||
|
||||
Assert.False(options.DryRun);
|
||||
@@ -154,7 +146,8 @@ public sealed class AocVerificationServiceTests
|
||||
{
|
||||
var options = new VerifyOptions
|
||||
{
|
||||
Since = "2025-01-01"
|
||||
Since = "2025-01-01",
|
||||
PostgresConnectionString = "Host=localhost;Database=test"
|
||||
};
|
||||
|
||||
Assert.False(options.Verbose);
|
||||
|
||||
Reference in New Issue
Block a user