Skip to the content.

Task 15 — Секреты и конфигурация

Phase: 1 Status: done Owner: — Slug: secrets-config

Goal

appsettings + environment variables; секреты никогда не пишутся в skill packages, Markdown memory, telemetry или export archives.

Acceptance criteria

Sub-tasks

Scope / Likely files

src/agent/Config/, src/agent/HostBuilderExtensions.cs

Dependencies

Implementation notes

2026-08-12

Добавлено:

Config/AppConfig.cs — SecretsConfig:

Config/ISecretMaskingService.cs — интерфейс с 4 методами: MaskSecrets, ResolveSecret, IsSecretReference, ExpandSecretReferences

Config/SecretMaskingService.cs — реализация:

DI (CLI + WebAPI):

Skills/SkillPackager.cs — новый конструктор с SecretsConfig + ISecretMaskingService; Export redacts description + prompt перед записью в .skillpkg ZIP

Storage/MemoryStore.cs — новый конструктор; WriteProfileAsync, WritePreferencesAsync, WriteEntitiesAsync, AppendAsync, AppendContextAsync redacted content перед записью

Observability/OtelService.cs — nullable SecretsConfig? + ISecretMaskingService?; SetTag, SetTags, AddEvent redacts string values when RedactInTelemetry = true; OtelHostBuilderExtensions использует DI factory

WebApi/Controllers/AuditController.cs — /api/audit/export redacts details/policy_decision/permission_used перед CSV export

Tests — tests/.../Config/SecretMaskingServiceTests.cs — 24 теста (24/24 passed)

Validation:

Risks / Rollback

Случайная утечка в логи; централизованный redaction-фильтр.