Here's a small change from this month's release notes that's easy to miss. Databricks now automatically deletes a service principal's OAuth client secret after 90 days without use. This matches how unused access tokens were already cleaned up.
Why this matters for data engineers
Most daily jobs won't notice, because their secrets are used all the time. The risk is in workloads that run rarely, for example:
- Quarterly or year-end reporting jobs
- Disaster recovery or backfill pipelines that only run when something goes wrong
- External tools (orchestrators, BI tools, ingestion services) connected once and then left idle
- Integrations for seasonal projects or audits
If one of these hasn't authenticated in over 90 days, its secret may be gone. The job then fails on authentication the next time it runs, often at the worst possible moment.
What to do
- Take inventory of service principals. List the service principals in your account and note which ones back infrequent workloads.
- Make sure each one has an owner. Every service principal should have a responsible team, so someone knows what to fix when it fails.
- Plan for rotation instead of relying on long-lived secrets. Store secrets in a proper secret manager, and document how to create a new one and update the consumers that use it.
- Add auth failures to your alerting. A clear alert for authentication errors turns a mysterious failure into a quick fix.
- Know the recovery path. If a secret was deleted and is still needed, the fix is to create a new OAuth secret for that service principal and update wherever it's stored.
The bigger picture
Removing credentials nobody uses is good security practice: fewer old secrets lying around means less risk if one ever leaks. The trade-off is that "set it and forget it" integrations now need a bit of ownership. Treat it as a good reason to clean up.
How does your team track service principals for rarely-run jobs? I'd like to hear what's working.
Liresa Ferizaj