Code Artifact is used to store, publish, and share software packages.
Artifact Management
- In general, a software requires other software packages to be built – called dependencies -.
- Storing and retrieving theses dependencies is called Artifact Management.
AWS CodeArtifact
- AWS CodeArtifact is a secure and scalable artifact management system.
- It works with common dependency management tools such as npm, yarn, pip, and NuGet via Proxy.
- Developers and CodeBuild can retrieve dependent packages from CodeArtifact.
Integration with EventBridge
- An event is created when a package version is created, modified, or deleted.
- You can rebuild or redeploy an application with the latest packages.
- You can start the CodePipeline pipeline.
Security
- Resource Policy
- You can authorize who can access CodeArtifact via IAM policies.
- Cross-Account access
- You can authorize who can access CodeArtifact via IAM policies.
External Connection
- You can create an connection between a CodeArtifact repository and an external (public) repository (npm, NuGet …)
- It allows fetch packages that are not in your CodeArtifact repository.
Upstream Repositories
- A CodeArtifact repository can have other repositories as “Upstream Repositories”
- up to 10 Upstream Repositories
- A package manager client can access the packages that are contained in more than one repository using a single repository endpoint.
- You can only use a single external connection for many repositories in the CodeArtifact.
- Package Retention
- When a package is fetched from the external (public) repository, the package is retained in the top Upstream repository and the most-down stream repository.
- Intermediate repositories do not keep the package.
Domains
By grouping repositories in a domain:
- Packages are stored once in a domain: deduplicated storage
- Easy sharing across repositories and multiple accounts
- All assets and metadata in a domain are encrypted with a single KMS key
