.agents/skills/testing-secrets-ui/SKILL.md
Start the full stack:
make up-dev
This runs docker-compose.dev.yml which starts PostgreSQL, Redis, backend (Fastify), frontend (React/Vite), and Nginx.
Wait for all containers to be healthy. The app runs on http://localhost:8080.
Common issue: Migration lock If the backend fails to start with "Migration table is already locked", unlock it:
docker exec -i infisical-dev-db psql -U infisical -d infisical -c "UPDATE infisical_migrations_lock SET is_locked = 0;"
docker exec -i infisical-dev-db psql -U infisical -d infisical -c "UPDATE infisical_migrations_startup_lock SET is_locked = 0;"
docker restart infisical-dev-api
Wait ~15 seconds for migrations to complete.
Create a test account at http://localhost:8080/signup (local dev has no email verification).
Create a test organization and project after signup.
createSecret function from frontend/src/hooks/api/secrets/mutations.tsxuseUpdateSecretV3 mutation from mutations.tsxWhen testing that special characters in secret keys are handled correctly:
/, %, #, ?, & in the key name/ becomes %2F)docker logs infisical-dev-api 2>&1 | grep "secret" to confirm the encoded URLfrontend/src/hooks/api/secrets/mutations.tsx — Secret create/update/delete mutationsfrontend/src/hooks/api/secrets/queries.tsx — Secret query hooksdocker logs infisical-dev-apidocker exec -it infisical-dev-db psql -U infisical -d infisicalNo external secrets are required for local dev testing. The local environment uses:
infisical (configured in docker-compose.dev.yml)