This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Gerhard Lazu 9cda86f6f8
Update the version in docs to next release
This also accounts for dagger.io/dagger/core split introduced in
https://github.com/dagger/dagger/pull/1866

We should hold this merge until we are ready to cut the release,
otherwise links & some instructions will be broken until we release
v0.2.3.

Even though I would have preferred to have docs/update-version.sh in
Dagger, this is the quickest thing for now.

Related to https://github.com/dagger/dagger/issues/1854

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2022-03-28 22:23:51 +01:00

72 lines
7.7 KiB
Markdown

---
slug: /1213/api
displayed_sidebar: europa
---
# Dagger CUE API (0.2+)
As of Dagger 0.2 (codename Europa), the Dagger CUE API can be imported via `dagger.io/dagger` & `dagger.io/dagger/core`
The Dagger CUE API is the set of CUE packages released alongside the Dagger engine.
Developers of other Dagger packages are expected to build on top of these core packages.
### Plan definition
`#Plan` defines the structure of a Dagger plan - a complete configuration executable by `dagger do`
| Definition | File | Description |
| :-- | :-- | :-- |
| `#Plan` | [plan.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/plan.cue) | A special kind of program which `dagger` can execute |
### Core types
Dagger extends the CUE type system with the following core types:
| Definition | File | Description |
| :-- | :-- | :-- |
| `#Address` | [types.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/types.cue) | Network service address |
| `#CacheDir` | [exec.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/exec.cue) | A (best effort) persistent cache dir |
| `#FS` | [types.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/types.cue) | Reference to a filesystem tree |
| `#HealthCheck` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/image.cue) | Container health check |
| `#ImageConfig` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/image.cue) | Container image config |
| `#Mount` | [exec.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/exec.cue) | Transient filesystem mount |
| `#Ref` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/image.cue) | An address for a remote container image |
| `#Scratch` | [types.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/types.cue) | An empty directory |
| `#Secret` | [types.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/types.cue) | Secure reference to an external secret |
| `#Socket` | [types.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/types.cue) | Reference to a network socket: unix, tcp/udp or npipe |
| `#TempDir` | [exec.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/exec.cue) | A temporary directory for command execution |
### Core actions
Dagger works by executing actions in a certain order and passing data between actions in a certain layout.
Developers can combine actions into higher-level actions, which in turn can be combined into even higher-level actions,
and so on at arbitrary levels of depth. At the bottom of this abstraction stack are *core actions*: these
are implemented by Dagger itself, and are always available.
The following core actions are available:
| Definition | File | Description |
| :-- | :-- | :-- |
| `#Copy` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Copy files between two filesystem trees |
| `#DecodeSecret` | [secrets.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/secrets.cue) | Decode a secret without leaking its contents |
| `#Diff` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Extract the difference between two filesystems as its own file system |
| `#Dockerfile` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/image.cue) | Build a container image using a Dockerfile |
| `#Exec` | [exec.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/exec.cue) | Execute a command in a docker-compatible container |
| `#Export` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/image.cue) | Export an image as a tar archive |
| `#GitPull` | [git.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/git.cue) | Download a repository from a remote git server |
| `#HTTPFetch` | [http.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/http.cue) | Get a file from an HTTP server |
| `#Merge` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Merge multiple filesystem trees |
| `#Mkdir` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Create a directory in a filesystem tree |
| `#NewSecret` | [secrets.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/secrets.cue) | Create a new a secret from a filesystem tree |
| `#Pull` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/image.cue) | Download an image from a docker registry |
| `#Push` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/image.cue) | Upload an image to a docker registry |
| `#ReadFile` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Read a file from a filesystem tree |
| `#Scratch` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Create an empty filesystem tree |
| `#Set` | [image.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/image.cue) | Modify a docker image |
| `#Source` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Access the source for the current CUE package |
| `#Subdir` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Read a subdirectory from a filesystem tree |
| `#TrimSecret` | [secrets.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/secrets.cue) | Trim leading and trailing space characters from a secret |
| `#WriteFile` | [fs.cue](https://github.com/dagger/dagger/blob/v0.2.3/pkg/dagger.io/dagger/core/fs.cue) | Write a file to a filesystem tree |