Frequently asked questions
- Are environment variables the same as secrets?
- No. Environment variables are often used for non-sensitive configuration, while secrets like API keys and database passwords should be stored in a dedicated secrets manager.
- Can Indonesian SaaS companies use environment variables for passwords?
- They can technically do so, but it is not a strong security practice. For production systems, use a secrets manager, limit access, and rotate credentials regularly.
- What should be stored in environment variables?
- Use them for non-sensitive settings such as app mode, feature flags, service endpoints, and region-specific configuration that does not expose access credentials.
- How does this help with compliance?
- Clear separation improves access control, auditability, and change management, which supports common security and compliance expectations such as ISO-aligned controls.
- What is the best next step for a startup in Jakarta?
- Start by inventorying all secrets, moving them out of code and shared files, then adopt a secrets manager and review access with your engineering and compliance leads.
Time information: This article was automatically generated on October 20, 2026 at 8:03 PM (Asia/Jakarta, 2026-10-20T13:03:21.301Z).
Why this distinction matters
In many SaaS teams, especially fast-moving startups in Jakarta and across Indonesia, environment variables and secrets get lumped together as “things we set at deploy time.” That shortcut is convenient, but it creates security and compliance problems. The simple rule is this: environment variables are for configuration; secrets are for credentials and sensitive tokens.
If your team treats both the same way, you increase the chance of accidental exposure in source control, CI logs, shared screenshots, container images, or support tickets. For companies serving enterprise customers, this can become a serious issue during security reviews, vendor assessments, or internal audits.
What belongs in environment variables?
Environment variables are best for values that help an application behave differently across environments without exposing sensitive access. Common examples include:
- Application mode, such as
development,staging, orproduction - Feature flags
- Public service endpoints
- Region or locale settings
- Non-sensitive timeouts and limits
- Log levels
These values are useful because they let you deploy the same build to different environments. A team in Indonesia may use different endpoints for local payment gateways, WhatsApp providers, or cloud regions, but those settings are not automatically secrets.
What should be treated as secrets?
Secrets are values that can be used to authenticate, authorize, or decrypt. If exposed, they can directly compromise systems or data. Examples include:
- Database usernames and passwords
- API keys
- OAuth client secrets
- JWT signing keys
- Private certificates
- Encryption keys
- Service account credentials
- Webhook signing secrets
For SaaS products handling customer data, these secrets often connect to billing, messaging, identity, storage, and analytics systems. A leaked key can lead to unauthorized access, data loss, financial fraud, or service abuse.
Why environment variables are not enough for secrets
Many teams think a secret is safe if it is “only in the environment.” That assumption is risky. Environment variables can be exposed in several ways:
- Printed in application logs during debugging
- Read by processes with the same runtime permissions
- Shown in crash dumps or diagnostics
- Visible to anyone with access to deployment tooling
- Copied into
.envfiles and shared across teams - Embedded in build pipelines or container metadata
In practice, the problem is not the variable itself. The problem is the lack of a dedicated control boundary. Secrets need stronger handling than ordinary configuration.
A practical boundary for SaaS teams
A useful operating model is to classify every runtime value into one of three groups:
- Public configuration: safe to expose, such as feature names or public URLs.
- Internal configuration: not secret, but operationally important, such as environment names or retry limits.
- Secrets: must be protected, rotated, and access-controlled.
This separation makes ownership clearer. Engineering can manage configuration in deployment manifests, while secrets are stored in a dedicated secrets manager or cloud-native secret service with strict access policies.
For Indonesian SaaS companies, this model is especially helpful when teams are distributed across Jakarta, Bandung, Surabaya, or remote-first setups. It reduces the chance that a developer, contractor, or support engineer accidentally handles sensitive data outside approved workflows.
What a better secrets workflow looks like
A stronger workflow does not need to be complicated. Start with these practices:
- Store secrets in a dedicated secrets manager, not in Git
- Restrict access by role and environment
- Rotate secrets on a schedule and after personnel changes
- Use short-lived credentials where possible
- Separate staging and production secrets
- Audit who accessed or changed secrets
- Mask secrets in CI/CD logs and admin dashboards
If your stack supports it, prefer workload identity or managed authentication over static long-lived keys. That reduces the number of secrets you need to protect.
How this affects compliance readiness
Clear secret handling supports common security controls found in ISO-aligned programs, internal security policies, and enterprise procurement checklists. It helps with:
- Access control
- Change management
- Asset inventory
- Logging and monitoring
- Secure development practices
- Incident response preparation
Important note: good secret management does not guarantee ISO certification or legal compliance. It does, however, make audits easier and reduces the chance that a reviewer finds uncontrolled credentials in code or deployment artifacts. If your organization is preparing for an ISO assessment or a customer security review, a professional audit is still recommended.
Common mistakes we see in real SaaS environments
At APLINDO, we often see the same patterns in early-stage and scaling teams:
.envfiles committed to Git history- Shared production credentials in team chat
- One database password used across multiple environments
- Secrets copied into spreadsheet trackers
- CI pipelines that echo sensitive values during debugging
- “Temporary” keys that never get rotated
These issues are common because teams optimize for speed. The fix is not to slow delivery dramatically. It is to make the secure path the default path.
How to start in one sprint
If you are a startup or enterprise team in Indonesia, you can improve quickly with a focused sprint:
- Inventory every environment variable and secret.
- Label each item as public config, internal config, or secret.
- Move secrets out of code repositories and shared files.
- Introduce a secrets manager for production systems.
- Turn on secret masking in CI/CD.
- Define rotation ownership and review cadence.
- Document the boundary in your engineering handbook.
This is a good first step before broader compliance work. It also helps new engineers onboard faster because they can see exactly where sensitive values belong.
Key takeaways
- Environment variables are for configuration; secrets need stronger protection.
- A dedicated secrets manager is safer than storing credentials in
.envfiles or Git. - Clear separation improves auditability, access control, and compliance readiness.
- Indonesian SaaS teams should protect production secrets with rotation, masking, and role-based access.
- Good secret handling supports security programs, but it does not replace a formal audit or legal review.
What APLINDO recommends
For funded startups and enterprises, the best approach is to define a simple policy and implement it consistently across engineering, DevOps, and compliance. APLINDO’s Jakarta-based, remote-first team helps companies design SaaS systems with better security boundaries, including secrets management, applied AI workflows, and compliance consulting.
If you are building products for Indonesia or global markets, separating environment variables from secrets is one of the fastest ways to reduce risk without slowing delivery.

