You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Spacelift is a sophisticated, continuous integration and deployment (CI/CD) plat
8
8
9
9
At the same time, Spacelift is super easy to get started with - you can go from zero to fully managing your cloud resources within less than a minute, with no pre-requisites. It integrates nicely with the large players in the field - notably [GitHub](integrations/source-control/github.md) and [AWS](integrations/cloud-providers/aws.md).
10
10
11
-
If you're new to Spacelift, please spend some time browsing through the articles in the same order as they appear in the menu - start with the main concepts and follow with integrations. If you're more advanced, you can navigate directly to the article you need, or use the search feature to find a specific piece of information. If you still have questions, feel free to [reach out to us.](https://spacelift.io/contact)
11
+
If you're new to Spacelift, please spend some time browsing through the articles in the same order as they appear in the menu - start with the main concepts and follow with integrations. If you're more advanced, you can navigate directly to the article you need, or use the search feature to find a specific piece of information. If you still have questions, feel free to [reach out to us.](https://spacelift.io/contact){: rel="nofollow"}
Copy file name to clipboardexpand all lines: docs/concepts/blueprint/README.md
+5-5
Original file line number
Diff line number
Diff line change
@@ -252,14 +252,14 @@ As you noticed if we attach an existing resource to the stack (such as Worker Po
252
252
253
253
## Template engine
254
254
255
-
We built our own variable substitution engine based on [Google CEL](https://github.com/google/cel-spec). The library is available on [GitHub](https://github.com/spacelift-io/celplate/).
255
+
We built our own variable substitution engine based on [Google CEL](https://github.com/google/cel-spec){: rel="nofollow"}. The library is available on [GitHub](https://github.com/spacelift-io/celplate/){: rel="nofollow"}.
256
256
257
257
### Functions, objects
258
258
259
-
In the giant example above, you might have noticed something interesting: inline functions! CEL supports a couple of functions, such as: `contains`, `startsWith`, `endsWith`, `matches`, `size` and a bunch of others. You can find the full list in the [language definition](https://github.com/google/cel-spec/blob/v0.7.1/doc/langdef.md). It also supports some basic operators, such as: `*`, `/`, `-`, `+`, relations (`==`, `!=`, `<`, `<=`, `>`, `>=`), `&&`, `||`, `!`, `?:` (yes, it supports the ternary operator 🎉) and `in`.
259
+
In the giant example above, you might have noticed something interesting: inline functions! CEL supports a couple of functions, such as: `contains`, `startsWith`, `endsWith`, `matches`, `size` and a bunch of others. You can find the full list in the [language definition](https://github.com/google/cel-spec/blob/v0.7.1/doc/langdef.md){: rel="nofollow"}. It also supports some basic operators, such as: `*`, `/`, `-`, `+`, relations (`==`, `!=`, `<`, `<=`, `>`, `>=`), `&&`, `||`, `!`, `?:` (yes, it supports the ternary operator 🎉) and `in`.
260
260
261
261
!!! hint
262
-
It could be useful to look into [the unit tests](https://github.com/google/cel-go/blob/v0.13.0/cel/cel_test.go) of the library. Look for the invocations of `interpret` function.
262
+
It could be useful to look into [the unit tests](https://github.com/google/cel-go/blob/v0.13.0/cel/cel_test.go){: rel="nofollow"} of the library. Look for the invocations of `interpret` function.
263
263
264
264
There is one caveat to keep in mind: keep the YAML syntax valid.
265
265
@@ -520,7 +520,7 @@ stack:
520
520
Note that this is not a working example as it misses a few things (`inputs` section, `vcs` etc.), but it should give you an idea of what you can do.
521
521
522
522
!!! tip
523
-
What can you do with `google.protobuf.Timestamp` and `google.protobuf.Duration`? Check out the [language definition](https://github.com/google/cel-spec/blob/v0.7.1/doc/langdef.md#list-of-standard-definitions), it contains all the methods and type conversions available.
523
+
What can you do with `google.protobuf.Timestamp` and `google.protobuf.Duration`? Check out the [language definition](https://github.com/google/cel-spec/blob/v0.7.1/doc/langdef.md#list-of-standard-definitions){: rel="nofollow"}, it contains all the methods and type conversions available.
524
524
525
525
## Validation
526
526
@@ -556,7 +556,7 @@ The up-to-date schema of a Blueprint is available through a [GraphQL query](../.
556
556
```
557
557
558
558
!!! tip
559
-
Remember that there are multiple ways to interact with Spacelift. You can use the [GraphQL API](../../integrations/api.md), the [CLI](https://github.com/spacelift-io/spacectl), the [Terraform Provider](https://registry.terraform.io/providers/spacelift-io/spacelift/latest/docs) or the web UI itself if you're feeling fancy.
559
+
Remember that there are multiple ways to interact with Spacelift. You can use the [GraphQL API](../../integrations/api.md), the [CLI](https://github.com/spacelift-io/spacectl){: rel="nofollow"}, the [Terraform Provider](https://registry.terraform.io/providers/spacelift-io/spacelift/latest/docs){: rel="nofollow"} or the web UI itself if you're feeling fancy.
560
560
561
561
For simplicity, here is the current schema, but it might change in the future:
Copy file name to clipboardexpand all lines: docs/concepts/configuration/context.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -98,7 +98,7 @@ If the data in the context is produced by one or more Spacelift stacks, contexts
98
98
99
99
As an example of one such use case, let's imagine an organization where shared infrastructure (VPC, DNS, compute cluster etc.) is centrally managed by a DevOps team, which exposes it as a service to be used by individual product development teams. In order to be able to use the shared infrastructure, each team needs to address multiple entities that are generated by the central infra repo. In vanilla Terraform one would likely use remote state provider, but that might expose secrets and settings the DevOps team would rather keep it to themselves. Using a context on the other hand allows the team to decide (and hopefully document) what constitutes their "external API".
100
100
101
-
The proposed setup for the above use case would involve two administrative stacks - one to manage all the stacks, and the other for the DevOps team. The management stack would programmatically define the DevOps one, and possibly also its context. The DevOps team would receive the context ID as an input variable, and use it to expose outputs as [`spacelift_environment_variable`](https://github.com/spacelift-io/terraform-provider-spacelift#spacelift_environment_variable-resource)and/or [`spacelift_mounted_file`](https://github.com/spacelift-io/terraform-provider-spacelift#spacelift_mounted_file-resource) resources. The management stack could then simply attach the context populated by the DevOps stack to other stacks it defines and manages.
101
+
The proposed setup for the above use case would involve two administrative stacks - one to manage all the stacks, and the other for the DevOps team. The management stack would programmatically define the DevOps one, and possibly also its context. The DevOps team would receive the context ID as an input variable, and use it to expose outputs as [`spacelift_environment_variable`](https://github.com/spacelift-io/terraform-provider-spacelift#spacelift_environment_variable-resource){: rel="nofollow"} and/or [`spacelift_mounted_file`](https://github.com/spacelift-io/terraform-provider-spacelift#spacelift_mounted_file-resource){: rel="nofollow"} resources. The management stack could then simply attach the context populated by the DevOps stack to other stacks it defines and manages.
Copy file name to clipboardexpand all lines: docs/concepts/configuration/runtime-configuration/runtime-yaml-reference.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@ The version property is optional and currently ignored but for the sake of compl
46
46
47
47
### `stacks`
48
48
49
-
The stacks section is a map using stack public ID (slug) as keys and stack settings - described in [this section](runtime-yaml-reference.md#stack_defaults) - as values. If you're using this mapping together with stack defaults, note that any default setting is overridden by an explicitly set stack-specific value. This is particularly important for list and map fields where one may assume that these are merged. In practice, they're not merged - they're replaced. If you want merging semantics, [YAML provides native methods to merge arrays and maps](http://blogs.perl.org/users/tinita/2019/05/reusing-data-with-yaml-anchors-aliases-and-merge-keys.html).
49
+
The stacks section is a map using stack public ID (slug) as keys and stack settings - described in [this section](runtime-yaml-reference.md#stack_defaults) - as values. If you're using this mapping together with stack defaults, note that any default setting is overridden by an explicitly set stack-specific value. This is particularly important for list and map fields where one may assume that these are merged. In practice, they're not merged - they're replaced. If you want merging semantics, [YAML provides native methods to merge arrays and maps](http://blogs.perl.org/users/tinita/2019/05/reusing-data-with-yaml-anchors-aliases-and-merge-keys.html){: rel="nofollow"}.
Copy file name to clipboardexpand all lines: docs/concepts/policy/README.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ Please refer to the following table for information on what each policy types re
31
31
|[Trigger](trigger-policy.md)| Selects [stacks](../stack/README.md) for which to trigger a [tracked run](../run/tracked.md)| Positive |`set<string>`|`trigger`|
32
32
33
33
!!! tip
34
-
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library) that are ready to use or that you could tweak to meet your specific needs.
34
+
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library){: rel="nofollow"} that are ready to use or that you could tweak to meet your specific needs.
35
35
36
36
If you cannot find what you are looking for, please reach out to [our support](../../product/support/README.md#contact-support) and we will craft a policy to do exactly what you need.
37
37
@@ -47,7 +47,7 @@ Multiple policies of the same type can be attached to a single stack, in which c
47
47
48
48
### Policy language
49
49
50
-
[Rego](https://www.openpolicyagent.org/docs/latest/policy-language/) - the language that we're using to execute policies - is a very elegant, Turing incomplete data query language. It takes a few hours (tops) to get your head around all of its quirks but if you can handle SQL and the likes of [`jq`](https://stedolan.github.io/jq/){: rel="nofollow"}, you'll find Rego pretty familiar. For each policy, we also give you plenty of examples that you can tweak to achieve your goals, and each of those examples comes with a link allowing you to execute it in [the Rego playground](https://play.openpolicyagent.org/){: rel="nofollow"}.
50
+
[Rego](https://www.openpolicyagent.org/docs/latest/policy-language/){: rel="nofollow"} - the language that we're using to execute policies - is a very elegant, Turing incomplete data query language. It takes a few hours (tops) to get your head around all of its quirks but if you can handle SQL and the likes of [`jq`](https://stedolan.github.io/jq/){: rel="nofollow"}, you'll find Rego pretty familiar. For each policy, we also give you plenty of examples that you can tweak to achieve your goals, and each of those examples comes with a link allowing you to execute it in [the Rego playground](https://play.openpolicyagent.org/){: rel="nofollow"}.
51
51
52
52
### Constraints
53
53
@@ -236,7 +236,7 @@ Capturing all evaluations sounds tempting but it will also be extremely messy. W
236
236
In order to show you how to work with the policy workbench, we are going to use a [task policy](task-run-policy.md) that whitelists just two tasks - an innocent `ls`, and tainting a particular resource. It also only samples successful evaluations, where the list of `deny` reasons is empty:
237
237
238
238
!!! info
239
-
This example comes from our [test repo](https://github.com/spacelift-io/terraform-starter), which gives you hands-in experience with most Spacelift functionalities within 10-15 minutes, depending on whether you like to RTFM or not. We strongly recommend you give it a go.
239
+
This example comes from our [test repo](https://github.com/spacelift-io/terraform-starter){: rel="nofollow"}, which gives you hands-in experience with most Spacelift functionalities within 10-15 minutes, depending on whether you like to RTFM or not. We strongly recommend you give it a go.
240
240
241
241

Copy file name to clipboardexpand all lines: docs/concepts/policy/approval-policy.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -144,7 +144,7 @@ This is the schema of the data input that each policy request will receive:
144
144
## Examples
145
145
146
146
!!! tip
147
-
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library/tree/main/approval) that are ready to use or that you could tweak to meet your specific needs.
147
+
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library/tree/main/approval){: rel="nofollow"} that are ready to use or that you could tweak to meet your specific needs.
148
148
149
149
If you cannot find what you are looking for below or in the library, please reach out to [our support](../../product/support/README.md#contact-support) and we will craft a policy to do exactly what you need.
150
150
@@ -153,7 +153,7 @@ This is the schema of the data input that each policy request will receive:
153
153
In this example, each Unconfirmed run will require two approvals - including proposed runs triggered by Git events. Additionally, the run should have no rejections. Anyone who rejects the run will need to change their mind in order for the run to go through.
154
154
155
155
!!! info
156
-
We suggest requiring more than one review because one approval should come from the run/commit author to indicate that they're aware of what they're doing, especially if their VCS handle is different than their IdP handle. This is something [we practice internally at Spacelift](https://spacelift.io/blog/flexible-backoffice-tool-using-slack).
156
+
We suggest requiring more than one review because one approval should come from the run/commit author to indicate that they're aware of what they're doing, especially if their VCS handle is different than their IdP handle. This is something [we practice internally at Spacelift](https://spacelift.io/blog/flexible-backoffice-tool-using-slack){: rel="nofollow"}.
Copy file name to clipboardexpand all lines: docs/concepts/policy/login-policy.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
Login policies can allow users to log in to the account, and optionally give them admin privileges, too. Unlike all other policy types, login policies are global and can't be attached to individual stacks. They take effect immediately once they're created and affect all future login attempts.
6
6
7
7
!!! info
8
-
Login policies are only evaluated for the [Cloud or Enterprise plan](https://spacelift.io/pricing).
8
+
Login policies are only evaluated for the [Cloud or Enterprise plan](https://spacelift.io/pricing){: rel="nofollow"}.
9
9
10
10
!!! warning
11
11
Login policies don't affect GitHub organization or [SSO](../../integrations/single-sign-on/README.md) admins and private account owners who always get admin access to their respective Spacelift accounts. This is to avoid a situation where a bad login policy locks out everyone from the account.
@@ -87,7 +87,7 @@ For Single Sign-On, the list of teams is pretty much arbitrary and depends on ho
87
87
## Examples
88
88
89
89
!!! tip
90
-
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library/tree/main/login) that are ready to use or that you could tweak to meet your specific needs.
90
+
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library/tree/main/login){: rel="nofollow"} that are ready to use or that you could tweak to meet your specific needs.
91
91
92
92
If you cannot find what you are looking for below or in the library, please reach out to [our support](../../product/support/README.md#contact-support) and we will craft a policy to do exactly what you need.
Copy file name to clipboardexpand all lines: docs/concepts/policy/push-policy/README.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -204,11 +204,11 @@ In GitLab, it is the group of the repository which is typically the URL of the r
204
204
205
205
Azure DevOps is a special case because they don't provide us the friendly name of the `head_owner`. In this case, we need to refer to `head_owner` as the ID of the forked repository's project which is a UUID. One way to figure out this UUID is to open `https://dev.azure.com/<organization>/_apis/projects` website which lists all projects with their unique IDs. You don't need any special access to this API, you can just simply open it in your browser.
206
206
207
-
[Official documentation](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/list) of the API.
207
+
[Official documentation](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/list){: rel="nofollow"} of the API.
208
208
209
209
#### Bitbucket Cloud
210
210
211
-
In Bitbucket Cloud, `head_owner` means [workspace](https://support.atlassian.com/bitbucket-cloud/docs/what-is-a-workspace/). It's in the URL of the repository: `https://www.bitbucket.org/<workspace>/<forked_repository>`.
211
+
In Bitbucket Cloud, `head_owner` means [workspace](https://support.atlassian.com/bitbucket-cloud/docs/what-is-a-workspace/){: rel="nofollow"}. It's in the URL of the repository: `https://www.bitbucket.org/<workspace>/<forked_repository>`.
212
212
213
213
#### Bitbucket Datacenter/Server
214
214
@@ -436,7 +436,7 @@ It is also possible to define an auxiliary rule called `ignore_track`, which ove
436
436
## Examples
437
437
438
438
!!! tip
439
-
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library/tree/main/push) that are ready to use or that you could tweak to meet your specific needs.
439
+
We maintain a [library of example policies](https://github.com/spacelift-io/spacelift-policies-example-library/tree/main/push){: rel="nofollow"} that are ready to use or that you could tweak to meet your specific needs.
440
440
441
441
If you cannot find what you are looking for below or in the library, please reach out to [our support](../../../product/support/README.md#contact-support) and we will craft a policy to do exactly what you need.
Copy file name to clipboardexpand all lines: docs/concepts/policy/push-policy/run-external-dependencies.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ A common use case of this feature is making Spacelift wait for a CI/CD pipeline
10
10
Using this feature consists of two parts:
11
11
12
12
- defining dependencies in push policies
13
-
- marking dependencies as finished or failed using [spacectl](https://github.com/spacelift-io/spacectl)
13
+
- marking dependencies as finished or failed using [spacectl](https://github.com/spacelift-io/spacectl){: rel="nofollow"}
14
14
15
15
### Defining dependencies
16
16
@@ -30,7 +30,7 @@ You can of course have more complex rules, that decide on the set of external de
30
30
31
31
### Marking dependencies as finished or failed
32
32
33
-
To mark a dependency as finished or failed, you need to use the [spacectl](https://github.com/spacelift-io/spacectl) command line tool.
33
+
To mark a dependency as finished or failed, you need to use the [spacectl](https://github.com/spacelift-io/spacectl){: rel="nofollow"} command line tool.
At the same time, if any of the dependencies has failed, the run will be marked as failed as well.
45
45
46
46
!!! warning
47
-
In order to mark a run dependency as finished or failed, [spacectl](https://github.com/spacelift-io/spacectl) needs to be authenticated and have _write_ access to all the spaces that have runs with the given dependency defined.
47
+
In order to mark a run dependency as finished or failed, [spacectl](https://github.com/spacelift-io/spacectl){: rel="nofollow"} needs to be authenticated and have _write_ access to all the spaces that have runs with the given dependency defined.
0 commit comments