3.1 KiB
3.1 KiB
Secret Detection Tenant Configuration API
Module
Scanner
Status
IMPLEMENTED
Description
Per-tenant secret detection configuration with SecretRevelationPolicy (FullMask/PartialReveal/AuditOnly), exception allowlist patterns, enabled rule categories, and CRUD API endpoints with OpenAPI specs. Includes EF Core/Dapper persistence.
Implementation Details
- Revelation Policy:
src/Scanner/__Libraries/StellaOps.Scanner.Core/Secrets/Configuration/SecretRevelationPolicy.cs-SecretRevelationPolicyenum (FullMask, PartialReveal, AuditOnly) controlling how detected secrets are displayedsrc/Scanner/__Libraries/StellaOps.Scanner.Core/Secrets/Configuration/SecretRevelationService.cs-SecretRevelationServiceapplying revelation policy to detected secrets
- Detection Settings:
src/Scanner/__Libraries/StellaOps.Scanner.Core/Secrets/Configuration/SecretDetectionSettings.cs-SecretDetectionSettingsper-tenant configuration including enabled rule categories, exception allowlist patterns, and revelation policy
- Secret Masking:
src/Scanner/__Libraries/StellaOps.Scanner.Core/Secrets/Masking/SecretMasker.cs-SecretMaskerapplying masking according to the configured revelation policy
- Persistence:
src/Scanner/__Libraries/StellaOps.Scanner.Storage/Postgres/PostgresSecretDetectionSettingsRepository.cs-PostgresSecretDetectionSettingsRepositorypersisting per-tenant settings in PostgreSQLsrc/Scanner/__Libraries/StellaOps.Scanner.Storage/Entities/SecretDetectionSettingsRow.cs- Database entity for settings storage
- API:
src/Scanner/StellaOps.Scanner.WebService/Services/SecretDetectionSettingsService.cs-SecretDetectionSettingsServicebusiness logic for CRUD operations on detection settingssrc/Scanner/StellaOps.Scanner.WebService/Contracts/SecretDetectionConfigContracts.cs- API contracts for secret detection configuration endpoints
- Tests:
src/Scanner/__Tests/StellaOps.Scanner.Core.Tests/Secrets/Configuration/SecretDetectionSettingsTests.cs- Settings model testssrc/Scanner/__Tests/StellaOps.Scanner.Core.Tests/Secrets/Configuration/SecretRevelationServiceTests.cs- Revelation service testssrc/Scanner/__Tests/StellaOps.Scanner.Core.Tests/Secrets/Configuration/RevelationPolicyConfigTests.cs- Policy config testssrc/Scanner/__Tests/StellaOps.Scanner.Core.Tests/Secrets/Masking/SecretMaskerTests.cs- Masking tests
E2E Test Plan
- Create a per-tenant secret detection configuration via the API with FullMask revelation policy and verify it persists in PostgreSQL
- Switch revelation policy to PartialReveal and verify detected secrets show partial content (e.g., first/last 4 characters)
- Configure exception allowlist patterns and verify matching secrets are excluded from detection results
- Enable/disable specific rule categories and verify only enabled categories produce findings
- Verify AuditOnly mode logs secrets for audit without masking in internal records
- Verify CRUD API endpoints return proper OpenAPI-compliant responses with correct HTTP status codes