Vault — Overview#
Identity#
- Module path: github.com/hashicorp/vault
- Go version: go 1.26.1
- License: Business Source License 1.1 (BUSL-1.1) — licensor IBM Corp (after HashiCorp acquisition); production use permitted, but offering the work to third parties on a hosted/embedded basis to compete with IBM’s paid version is restricted
- Repository: https://github.com/hashicorp/vault
Purpose#
Vault is a secrets management platform that provides a unified interface for securely storing, accessing, and generating secrets (API keys, passwords, certificates, database credentials, etc.). It solves the challenge of controlling and auditing secret access across modern distributed systems — including dynamic secret generation, automatic revocation via leases, and encryption-as-a-service. It targets platform engineers, security teams, and application developers who need centralized credential management without building custom solutions.
Significance#
Vault is the de facto standard for secrets management in the cloud-native ecosystem, with massive adoption across enterprises running Kubernetes, cloud infrastructure, and microservices. Its SDK (github.com/hashicorp/vault/sdk) and API client (github.com/hashicorp/vault/api) are widely imported by other HashiCorp tools and third-party integrations. The HashiCorp Vault Associate certification reflects its status as an industry-recognized tool. Its 2023 license change from MPL-2.0 to BUSL-1.1 became a landmark event in the open-source community, prompting the OpenBao fork and broader discussion about sustainable open-source business models.
Key metrics#
- Go files: 2,212 (excluding vendor)
- Top-level directories: api, audit, builtin, command, helper, http, internal, internalshared, limits, physical, plugins, sdk, serviceregistration, shamir, tools, ui, vault, version, website
- Direct dependencies: ~210 (336 indirect) in go.mod
- First commit / age: Repository history is shallow in this clone; Vault’s public history dates to 2015
Notable characteristics#
- Plugin architecture at scale: The
builtin/directory hosts dozens of auth methods (AWS, GCP, Kubernetes, LDAP, JWT, etc.) and secret engines (databases, AWS, PKI, SSH, etc.), all implemented as pluggable backends conforming to thesdk/logical.Backendinterface — one of the most extensive plugin systems in the Go ecosystem. - Separate SDK and API submodules: The repo uses Go workspace-style
replacedirectives so thatvault/sdkandvault/apiare developed in-tree but published as independent importable modules; this dual-library design is a significant architectural choice enabling third-party plugin development without importing the full Vault server. - Shamir secret sharing built-in: The
shamir/package implements Shamir’s Secret Sharing for the “unseal” operation — a security-critical cryptographic primitive embedded directly in the core product rather than delegated to a library. - License controversy as architectural signal: The shift to BUSL-1.1 (and IBM’s acquisition of HashiCorp) resulted in the OpenBao community fork; the codebase retains clear seams (the
sdkabstraction boundary) that made forking tractable, demonstrating how good interface design has practical business consequences. - Enterprise / CE split: The codebase has a community edition (CE) main branch with enterprise features developed behind a separate branch/module; the
META.d/directory and build system accommodate this dual-edition release model.