Home Docs Schema Formats Errors
Conduit

No‑Op Auth

No‑Op Authorization

No‑Op Authorization is Conduit’s fallback authorization mode. When enabled—or when all other authorization mechanisms are disabled or misconfigured— Conduit allows all requests without performing any authentication or permission checks.

No‑Op Authorization

No‑Op Auth is the simplest authorization mode. It does not validate tokens, roles, or permissions. Every request is treated as fully authorized.

auth:
  environmentEnabled: false
  dbEnabled: false

When both environmentEnabled and dbEnabled are set to false, Conduit automatically uses No‑Op Auth.

Behavior

The No‑Op authenticator always returns success for any authorization request:

Authorize(...) → allowed = true

This means:

  • All read operations are allowed
  • All write operations are allowed
  • All schema mutations are allowed

No‑Op Auth is ideal for:

  • Local development
  • Testing environments
  • Internal tools without security requirements
  • Deployments where authorization is handled externally (e.g., API gateways)

Implementation

Conduit’s No‑Op authenticator is intentionally minimal. It always reports itself as active and always authorizes every request.

type NoopAuth struct{}

func (noopAuth *NoopAuth) Authorize(...) {
    return true, true, nil
}

func (noopAuth *NoopAuth) IsNoop() bool {
    return true
}

Notes

  • No‑Op Auth is automatically selected when no other auth mode is active.
  • It is also used when database auth is misconfigured (empty table/columns/roles).
  • No‑Op Auth should not be used in production unless external security controls exist.