From f68f9ad29afff45fd80f94ec576762539a6f87ac Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 4 Aug 2026 18:38:10 +0200 Subject: [PATCH] fix: consolidate the June docs audit for the pages that stay on dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces six unreviewed PRs from 2026-06-22 (#391, #392, #394, #395, #396, #398 — PRDCT-365/366/367/368/369) with one branch off current main, carrying only the fixes that belong on developers.keboola.com and only once. Dropped from the June set: - Everything under extend/component/**, extend/common-interface/**, extend/job-queue/ and extend/publish/ — those pages moved to help in keboola/connection-docs#1046 and #406 turns them into redirect stubs, so fixing them here changes nothing a reader can see. Their fixes go to connection-docs instead; #1046 carried the *unfixed* text over, so none of them had reached help. - Three hunks that #402 (PRDCT-480, open, newer) already fixes: the pagenum -> offset link, the `[job types](todo)` link, and the localhost:4000 link in integrate/variables. #395's version of that last one is wrong — it targets #step-2--create-default-values-for-variable, but the heading is "Step 2 -- Create Default Values for Variables". #402 has the correct plural. Everything substantive was verified against source rather than taken from the June diffs: - storage-api-php-client throws `InvalidArgumentException('url must be set')`, and the R client's `initialize(token, url, ...)` has no default for `url` — so the PHP and R examples were unrunnable without it, and the R page's "the only required argument is a token" was wrong. - The OAuth row for US Virginia GCP pointed at europe-west3, a copy-paste from the EU Frankfurt row. `GET connection.us-east4.gcp.keboola.com/v2/storage` reports `oauth -> https://oauth.us-east4.gcp.keboola.com`, matching the other 18 rows of that table. - `#regions-and-endpoints` is dead — the heading is "## Stacks and Endpoints". Fixed in overview/encryption.md (from #391) and in the one other page that stays (integrate/storage/docker-cli-client.md); the remaining instances sit on retired pages and are fixed on the help side instead. - Artifacts: the "all artifact types" example used `orchestration`, but the page documents exactly three types — `runs`, `custom`, `shared`. - Data Streams: the Path example used `"type": "json"`; the column-type table has no `json` type, and the section documents `path`. - `#storage-api-clients` and `#dynamic-functions` both resolve to real headings; the previous `#clients` and empty `[dynamic functions]()` did not. - The period removed after example [EX131] was mid-sentence — the sentence continues with example [EX133] on the next line. Co-Authored-By: Claude Opus 5 --- automate/set-schedule.md | 8 ++++---- .../configuration/api/pagination/index.md | 8 ++++---- .../configuration/aws-signature/index.md | 4 ++-- .../configuration/config/index.md | 5 ++--- .../configuration/ssh-proxy/index.md | 4 ++-- .../generic-writer/configuration/configuration.md | 12 ++++++------ integrate/artifacts/index.md | 2 +- integrate/artifacts/tutorial.md | 2 +- integrate/data-streams/overview/index.md | 2 +- integrate/jobs/index.md | 6 +++--- integrate/storage/api/import-export.md | 2 +- integrate/storage/api/importer.md | 4 ++-- integrate/storage/docker-cli-client.md | 2 +- integrate/storage/php-client.md | 7 ++++++- integrate/storage/r-client.md | 14 +++++++++----- integrate/variables/index.md | 4 ++-- overview/api/index.md | 6 +++--- overview/encryption.md | 2 +- overview/index.md | 4 ++-- 19 files changed, 53 insertions(+), 45 deletions(-) diff --git a/automate/set-schedule.md b/automate/set-schedule.md index a77621d6..a682bf19 100644 --- a/automate/set-schedule.md +++ b/automate/set-schedule.md @@ -108,7 +108,7 @@ An example request response will contain: The important field is `id` (with value `10850624` in the above example). In the second step, you need to activate the schedule via the [Activate Schedule API call](https://api.keboola.com/?service=scheduler#scheduler/tag/schedules/POST/schedules) -with he following body: +with the following body: ```json { @@ -116,7 +116,7 @@ with he following body: } ``` -See an [example](https://documenter.getpostman.com/view/3086797/77h845D#130cbfc4-4dd5-4f6d-99c0-2444c48ee551)): +See an [example](https://documenter.getpostman.com/view/3086797/77h845D#130cbfc4-4dd5-4f6d-99c0-2444c48ee551): ```bash curl --location --request POST 'https://scheduler.azure.keboola.com/schedules' \ @@ -229,7 +229,7 @@ You'll obtain the following example: ``` The created configuration has id `10852379`. You can now [Activate the Schedule](https://api.keboola.com/?service=scheduler#scheduler/tag/schedules/POST/schedules) -with he following body: +with the following body: ```json { @@ -237,7 +237,7 @@ with he following body: } ``` -See an [example](https://documenter.getpostman.com/view/3086797/77h845D#130cbfc4-4dd5-4f6d-99c0-2444c48ee551)): +See an [example](https://documenter.getpostman.com/view/3086797/77h845D#130cbfc4-4dd5-4f6d-99c0-2444c48ee551): ```bash curl --location --request POST 'https://scheduler.keboola.com/schedules' \ diff --git a/extend/generic-extractor/configuration/api/pagination/index.md b/extend/generic-extractor/configuration/api/pagination/index.md index 628fedb8..e093fb16 100644 --- a/extend/generic-extractor/configuration/api/pagination/index.md +++ b/extend/generic-extractor/configuration/api/pagination/index.md @@ -120,7 +120,7 @@ situations can arise: [`pagenum`](/extend/generic-extractor/configuration/api/pagination/pagenum/) and [`offset` methods](/extend/generic-extractor/configuration/api/pagination/pagenum/) will stop, and other methods will probably stop too (depends on how empty the response is). -- Less common --- API returns an **error** --- in this case a different stopping condition such as [`nextFlag`](#next-page-flag) or +- Less common --- API returns an **error** --- in this case a different stopping condition such as [`nextPageFlag`](#next-page-flag) or [`forceStop`](#force-stop) has to be used. - Less common --- API keeps returning the **last page**, the extraction is stopped when a page is obtained twice (see [example [041]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/041-paging-stop-same)). If the API returns @@ -237,8 +237,8 @@ and [example [EX140]](https://github.com/keboola/generic-extractor/tree/master/d Limit stop configuration allows you to stop scrolling when a specified number of items is extracted. The supported options are: -- `count` (required, integer) --- total number of items to extract -- `field` (required, string) --- path to the key which contains the value with total number of items +- `count` (required if `field` not set, integer) --- total number of items to extract +- `field` (required if `count` not set, string) --- path to the key which contains the value with total number of items The two options are **mutually exclusive**, but one of them is required. In both cases, the total number of items may not be honored exactly. If the total amount is not divisible by the page size, then the leftover from the last page (if any) @@ -338,7 +338,7 @@ It means that the scrolling will **continue** till the field `hasMore` is presen In this case, setting `ifNotSet` is not necessary. See [example [EX045]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/045-next-page-flag-has-more) -and [example [EX139]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/139-pagination-hasmore-child-filter)] (combining with child jobs). +and [example [EX139]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/139-pagination-hasmore-child-filter) (combining with child jobs). ### Non-Boolean Has-More Scrolling Assume that the API returns a response which contains a `hasMore` field. The field is present only in the diff --git a/extend/generic-extractor/configuration/aws-signature/index.md b/extend/generic-extractor/configuration/aws-signature/index.md index 7a936e9c..036d4491 100644 --- a/extend/generic-extractor/configuration/aws-signature/index.md +++ b/extend/generic-extractor/configuration/aws-signature/index.md @@ -6,8 +6,8 @@ permalink: /extend/generic-extractor/configuration/aws-signature/ * TOC {:toc} -Generic extractor allows signaturing requests by [**AWS**](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). -Signature is the process to add authentication information to your requests. When you use AWS tools, extractor sign your API request. +Generic Extractor allows signing requests with [**AWS Signature Version 4**](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). +Signing is the process of adding authentication information to your requests. When you use AWS tools, the extractor signs your API request. A sample AWS signature configuration looks like this: diff --git a/extend/generic-extractor/configuration/config/index.md b/extend/generic-extractor/configuration/config/index.md index 8e348173..cd4a38c3 100644 --- a/extend/generic-extractor/configuration/config/index.md +++ b/extend/generic-extractor/configuration/config/index.md @@ -160,9 +160,8 @@ will produce the following `users` table: |234|Jane Doe|fullExtract|development| The `userData` values are added to the parent jobs only. They will not affect the -[child jobs](/extend/generic-extractor/configuration/config/jobs/children). If the result table contains -columns with the same names as the `userData` properties. If there is already a column with the same name, -the `userData` column will be renamed. +[child jobs](/extend/generic-extractor/configuration/config/jobs/children). If the result table already +contains a column with the same name as a `userData` property, the `userData` column will be renamed. See [example [EX076]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/076-user-data). diff --git a/extend/generic-extractor/configuration/ssh-proxy/index.md b/extend/generic-extractor/configuration/ssh-proxy/index.md index a0596d11..0f06796f 100644 --- a/extend/generic-extractor/configuration/ssh-proxy/index.md +++ b/extend/generic-extractor/configuration/ssh-proxy/index.md @@ -10,7 +10,7 @@ permalink: /extend/generic-extractor/configuration/ssh-proxy/ *Use [Parameter Map](/extend/generic-extractor/map/) to help you navigate among various configuration options.* -An SSH proxy for Generic Extractor allows you tu securely access HTTP(s) endpoints inside your private network. +An SSH proxy for Generic Extractor allows you to securely access HTTP(s) endpoints inside your private network. It creates an SSH tunnel, and all traffic from Generic Extractor is forwarded through the tunnel to the destination server. A sample `config` configuration can look like this: @@ -91,5 +91,5 @@ cat public.key >> ~/.ssh/authorized_keys } {% endhighlight %} -See [example [EX131]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/131-ssh-tunnel). +See [example [EX131]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/131-ssh-tunnel) and [example [EX133]](https://github.com/keboola/generic-extractor/tree/master/doc/examples/133-ssh-tunnel-iterations-params). diff --git a/extend/generic-writer/configuration/configuration.md b/extend/generic-writer/configuration/configuration.md index 456ca484..6494a2c1 100644 --- a/extend/generic-writer/configuration/configuration.md +++ b/extend/generic-writer/configuration/configuration.md @@ -136,7 +136,7 @@ components. ### Default Headers -Allows you to define default query parameters that are being sent with each req This is mostly useful for +Allows you to define default headers that are being sent with each request. This is mostly useful for creating Generic Writer templates and registered components. **NOTE** That you can reference parameters defined in `user_parameters` using the `{"attr":"SOME_KEY"}` syntax. @@ -198,7 +198,7 @@ See [example 024](https://bitbucket.org/kds_consulting_team/kds-team.wr-generic/ #### BearerToken Authorization using the `Bearer token` in the header. E.g. each request will be sent with -header: `"authorization": "Bearer XXXX""` +header: `"authorization": "Bearer XXXX"` **Example**: @@ -220,7 +220,7 @@ See [example 030](https://bitbucket.org/kds_consulting_team/kds-team.wr-generic/ ### SSL Verification -Allows turning of the SSL certificate verification. Use with caution. When set to false, the certificate verification is +Allows turning off the SSL certificate verification. Use with caution. When set to false, the certificate verification is turned off. ```json @@ -245,7 +245,7 @@ For more information, refer to [requests docs](https://requests.readthedocs.io/e ## User Parameters In this section you can defined user parameters to be used in various contexts, e.g. passwords. This is also -the place to use the [dynamic functions](). +the place to use the [dynamic functions](/extend/generic-writer/configuration/#dynamic-functions). It allows referencing another values from `user_parameters` referenced by `{"attr":"par"}` notation. @@ -309,7 +309,7 @@ A relative path of the endpoint. The final request URL is `base_url` and `endpoi e.g. when `base_url` is set to `https://example.com/api` and `endpoint_path` to `/customer` the resulting URL is `https://example.com/api/customer` -**NOTE** That it is possible to change the `enpoint_path` dynamically +**NOTE** That it is possible to change the `endpoint_path` dynamically using [iteration columns](/extend/generic-writer/configuration/#iterate-by-columns) e.g. `/orders/[[id]]` as seen in [example 005](https://bitbucket.org/kds_consulting_team/kds-team.wr-generic/src/master/docs/examples/005-json-iterations/) @@ -324,7 +324,7 @@ in [example 005](https://bitbucket.org/kds_consulting_team/kds-team.wr-generic/s ### Headers -Allows you to define default query parameters that are being sent with each request. +Allows you to define request headers that are being sent with each request. **NOTE** That you can reference parameters defined in `user_parameters` using the `{"attr":"SOME_KEY"}` syntax. diff --git a/integrate/artifacts/index.md b/integrate/artifacts/index.md index 5bc79317..bd9217f2 100644 --- a/integrate/artifacts/index.md +++ b/integrate/artifacts/index.md @@ -99,7 +99,7 @@ Full configuration example with all artifact types: "limit": 5 } }, - "orchestration": { + "shared": { "enabled": true } } diff --git a/integrate/artifacts/tutorial.md b/integrate/artifacts/tutorial.md index 628df13a..4a0c197e 100644 --- a/integrate/artifacts/tutorial.md +++ b/integrate/artifacts/tutorial.md @@ -202,7 +202,7 @@ The configuration producing artifact needs to be in a phase that precedes the co print(glob.glob("/data/artifacts/in/shared/*/*")) ``` - Run curl command to create the configurtion: + Run curl command to create the configuration: ```shell curl -X POST "$STORAGE_API_HOST/v2/storage/branch/default/components/keboola.python-transformation-v2/configs" \ diff --git a/integrate/data-streams/overview/index.md b/integrate/data-streams/overview/index.md index 7aee0c4c..1812cf8f 100644 --- a/integrate/data-streams/overview/index.md +++ b/integrate/data-streams/overview/index.md @@ -46,7 +46,7 @@ The `path` column type can be used to fetch a single field from a `JSON` object. ```json { - "type": "json", + "type": "path", "name": "id", "path": "issue.id", "defaultValue": "undefined", diff --git a/integrate/jobs/index.md b/integrate/jobs/index.md index a1fd8ef5..a9854433 100644 --- a/integrate/jobs/index.md +++ b/integrate/jobs/index.md @@ -188,7 +188,7 @@ When you create a job it is in the `created` state. In a success scenario it wil That means `waiting` or `created` jobs do not have any costs associated with them, they represent a plan of what is going to happen. The states `terminated`, `cancelled`, `success` and `error` are final and end the job transitions. When a job is in final state, the `isFinished` flag is true. - The job object is both immutable and eventually consistent. Once you create a job, you cannot change any of it's properties. Any changing properties are + The job object is both immutable and eventually consistent. Once you create a job, you cannot change any of its properties. Any changing properties are self-modifying and they will stop modifying once the job reaches one of the final states. Apart from the `status` field, the job also has `desiredStatus` field. This is either `processing` or `terminating`. The desired status is @@ -413,7 +413,7 @@ From the above response, the most important part is `url`, which gives you the U If you want to get the actual job result, poll the [Job API](https://api.keboola.com/?service=job-queue#job-queue/tag/jobs/GET/jobs/{jobId}) for the current state of the job. See an [example](https://documenter.getpostman.com/view/3086797/kbc-samples/77h845D?version=latest#9b9f3e7b-de3b-4c90-bad6-a8760e3852eb). -You will receive a response in the same format as when you crated the job: +You will receive a response in the same format as when you created the job: ```json { @@ -485,7 +485,7 @@ of what the data folder looked like before the component started. If processors - `stage_2` file with contents of the data folder before processor C was run - `stage_output` file with contents of the data folder before output mapping was about to be performed (after C finished). -If configuration rows are used, then the above is repeated for each configuration row. If the job finishes with and error, only the stages before the error are uploaded. +If configuration rows are used, then the above is repeated for each configuration row. If the job finishes with an error, only the stages before the error are uploaded. This API call does not upload any tables or files to Storage. I.e. when the component finishes, its output is discarded and the output mapping to storage is not performed. This makes this API call generally very safe to call, because it cannot break the Keboola project in any way. However, keep diff --git a/integrate/storage/api/import-export.md b/integrate/storage/api/import-export.md index 8d3dfdd3..83353a2b 100644 --- a/integrate/storage/api/import-export.md +++ b/integrate/storage/api/import-export.md @@ -25,7 +25,7 @@ The imported files must conform to the [RFC4180 Specification](https://tools.iet ![Schema of file upload process](/integrate/storage/api/async-import-handling.svg) Exporting a table from Storage is analogous to its importing. First, data is [asynchronously -exported](https://keboola.docs.apiary.io/#reference/tables/unload-data-asynchronously/asynchronous-export) from +exported](https://api.keboola.com/?service=storage#post-/v2/storage/branch/-branchId-/tables/-id-/export-async) from Table Storage into File Uploads. Then you can request to [download the file](https://api.keboola.com/?service=storage#get-/v2/storage/branch/-branchId-/files/-fileId-), which will give you access to an S3 server for the actual file download. diff --git a/integrate/storage/api/importer.md b/integrate/storage/api/importer.md index 1797a1de..267d307a 100644 --- a/integrate/storage/api/importer.md +++ b/integrate/storage/api/importer.md @@ -19,7 +19,7 @@ curl --request POST --header "X-StorageApi-Token:storage-token" --form "tableId= {% endhighlight %} Using the Storage API Importer is the easiest way to upload data into Storage (except for -using one of the [API clients](/integrate/storage/#clients)). However, the disadvantage is that the whole data file +using one of the [API clients](/integrate/storage/#storage-api-clients)). However, the disadvantage is that the whole data file has to be posted in a single HTTP request. **The maximum limit for a file size is 2GB and the transfer time is 45 minutes**. This means that for substantially large files (usually more than hundreds of MB) you may experience timeouts. If that happens, use the above outlined approach and upload the @@ -34,7 +34,7 @@ files [directly to S3](/integrate/storage/api/import-export/#manually-uploading- - `escapedBy` (optional) CSV escape character; empty by default. - `incremental` (optional) If incremental is set to 0 (its default), the target table is truncated before each import. -Full list of avaialable parameters is available in the [API documentation](https://api.keboola.com/?service=import#import). +Full list of available parameters is available in the [API documentation](https://api.keboola.com/?service=import#import). ## Examples To load data incrementally (append new data to existing contents): diff --git a/integrate/storage/docker-cli-client.md b/integrate/storage/docker-cli-client.md index a5897cff..612d3905 100644 --- a/integrate/storage/docker-cli-client.md +++ b/integrate/storage/docker-cli-client.md @@ -47,7 +47,7 @@ or on Windows: docker run --volume=C:\Users\name\some-dir:/data quay.io/keboola/storage-api-cli:latest create-table in.c-main new-table /data/new-table.csv --token=storage_token -or when using other then [default US region](/overview/api/#regions-and-endpoints), you need to provide the Storage API address: +or when using other than the [default US region](/overview/api/#stacks-and-endpoints), you need to provide the Storage API address: {% highlight bash %} docker run --volume=$("pwd"):/data quay.io/keboola/storage-api-cli:latest create-table in.c-main new-table /data/new-table.csv --token=storage_token --url="https://connection.eu-central-1.keboola.com/" diff --git a/integrate/storage/php-client.md b/integrate/storage/php-client.md index 257a8164..19eb17ae 100644 --- a/integrate/storage/php-client.md +++ b/integrate/storage/php-client.md @@ -68,6 +68,7 @@ use Keboola\StorageApi\Client; $client = new Client([ 'token' => 'your-token', + 'url' => 'https://connection.keboola.com', ]); {% endhighlight %} @@ -88,6 +89,7 @@ use Keboola\StorageApi\Client; $client = new Client([ 'token' => 'your-token', + 'url' => 'https://connection.keboola.com', ]); $csvFile = new CsvFile('./new-table.csv'); $client->createTableAsync('in.c-main', 'new-table', $csvFile); @@ -105,6 +107,7 @@ use Keboola\StorageApi\Client; $client = new Client([ 'token' => 'your-token', + 'url' => 'https://connection.keboola.com', ]); $csvFile = new CsvFile('./new-table.csv'); $client->writeTableAsync('in.c-main.new-table', $csvFile); @@ -122,6 +125,7 @@ use Keboola\StorageApi\Client; $client = new Client([ 'token' => 'your-token', + 'url' => 'https://connection.keboola.com', ]); $csvFile = new CsvFile('./new-table.csv'); $client->writeTableAsync('in.c-main.new-table', $csvFile, ['incremental' => true]); @@ -141,7 +145,8 @@ use Keboola\StorageApi\Client; use Keboola\StorageApi\TableExporter; $client = new Client([ - 'token' => 'your-token' + 'token' => 'your-token', + 'url' => 'https://connection.keboola.com', ]); $exporter = new TableExporter($client); diff --git a/integrate/storage/r-client.md b/integrate/storage/r-client.md index d8b46737..0be134cf 100644 --- a/integrate/storage/r-client.md +++ b/integrate/storage/r-client.md @@ -43,11 +43,12 @@ To list available commands, run and the above command works. The client is implemented as an [RC class](http://adv-r.had.co.nz/R5.html). To work with it, create an instance of the client. -The only required argument to create it is a valid Storage API token. +The required arguments to create it are a valid Storage API token and the API URL. {% highlight r %} client <- SapiClient$new( - token = 'your-token' + token = 'your-token', + url = 'https://connection.keboola.com' ) {% endhighlight %} @@ -60,7 +61,8 @@ To create the `new-table` table in the `in.c-main` bucket, use {% highlight r %} myDataFrame <- data.frame(id = c(1,2,3,4), secondCol = c('a', 'b', 'c', 'd')) client <- SapiClient$new( - token = 'your-token' + token = 'your-token', + url = 'https://connection.keboola.com' ) table <- client$saveTable( @@ -82,7 +84,8 @@ To export data from the `old-table` table in the `in.c-main` bucket, use {% highlight r %} client <- SapiClient$new( - token = 'your-token' + token = 'your-token', + url = 'https://connection.keboola.com' ) data <- client$importTable('in.c-main.old-table') @@ -96,7 +99,8 @@ a [data.table](https://cran.r-project.org/web/packages/data.table/index.html) ob {% highlight r %} # create a client client <- SapiClient$new( - token = 'your-token' + token = 'your-token', + url = 'https://connection.keboola.com' ) # verify the token diff --git a/integrate/variables/index.md b/integrate/variables/index.md index 1372217e..10e07131 100644 --- a/integrate/variables/index.md +++ b/integrate/variables/index.md @@ -226,7 +226,7 @@ and [output](/extend/common-interface/config-file/#output-mapping--basic) mappin ] } ] - } + }, "variables_id": "807968875", "variables_values_id": "807952812" } @@ -407,7 +407,7 @@ the ID of the value row in `variableValuesId`: {% highlight json %} { "component": "keboola.python-transformation-v2", - "config": "807968875, + "config": "807968875", "mode": "run", "variableValuesId": "807957572" } diff --git a/overview/api/index.md b/overview/api/index.md index 4c301540..d6d06192 100644 --- a/overview/api/index.md +++ b/overview/api/index.md @@ -149,8 +149,8 @@ The services listed above are: - `oauth` --- [OAuth Manager Service](/extend/common-interface/oauth/) - `queue` --- [Service for Running Components](/extend/job-queue/) - `billing` --- Service for Computing Credits -- `encryption` --- Service for [Encryption](https://developers.keboola.com/overview/encryption/) -- `scheduler` --- [Service for Configuring Schedules](https://developers.keboola.com/automate/set-schedule/) +- `encryption` --- Service for [Encryption](/overview/encryption/) +- `scheduler` --- [Service for Configuring Schedules](/automate/set-schedule/) - `sync-actions` --- [Service for Running Synchronous Actions](/extend/common-interface/actions/) - `notification` --- Service for Configuring Job Notifications @@ -200,7 +200,7 @@ and in application integrations, we strongly suggest using the above API call. | Notification | `notification` | EU Ireland Azure | https://notification.north-europe.azure.keboola.com | | Notification | `notification` | EU Frankfurt GCP | https://notification.europe-west3.gcp.keboola.com | | OAuth | `oauth` | US Virginia AWS | https://oauth.keboola.com | -| OAuth | `oauth` | US Virginia GCP | https://oauth.europe-west3.gcp.keboola.com | +| OAuth | `oauth` | US Virginia GCP | https://oauth.us-east4.gcp.keboola.com | | OAuth | `oauth` | EU Frankfurt AWS | https://oauth.eu-central-1.keboola.com | | OAuth | `oauth` | EU Ireland Azure | https://oauth.north-europe.azure.keboola.com | | OAuth | `oauth` | EU Frankfurt GCP | https://oauth.europe-west3.gcp.keboola.com | diff --git a/overview/encryption.md b/overview/encryption.md index af6d468c..f101d6b5 100644 --- a/overview/encryption.md +++ b/overview/encryption.md @@ -138,7 +138,7 @@ This cipher type helps encrypt information shared across multiple components, e. The following rules apply to all ciphers: - Providing only a `configId` without a `projectId` is not allowed. Similarly, providing only `branchType` without `projectId` is also not allowed. -- Cipher decryption is only possible in the [region](/overview/api/#regions-and-endpoints) where the cipher was created. For example, ciphers with prefixes `KBC::ProjectSecureKV::` (Azure) or `KBC::ProjectSecureGKMS::` (GCP), instead of `KBC::ProjectSecure::` (AWS), use the same business logic but are specific to their region and technology and are not interchangeable. +- Cipher decryption is only possible in the [region](/overview/api/#stacks-and-endpoints) where the cipher was created. For example, ciphers with prefixes `KBC::ProjectSecureKV::` (Azure) or `KBC::ProjectSecureGKMS::` (GCP), instead of `KBC::ProjectSecure::` (AWS), use the same business logic but are specific to their region and technology and are not interchangeable. - There is no decryption API; the cipher is decrypted internally before a component is run. - Ciphering a value that is already encrypted does not change its encryption. - There is no way to retrieve the component, project, configuration ID, or branch type from the cipher. diff --git a/overview/index.md b/overview/index.md index 660fc32e..e48d5435 100644 --- a/overview/index.md +++ b/overview/index.md @@ -18,7 +18,7 @@ The following chart shows how Keboola is structured. All Keboola parts are brief ![Overview of Keboola Components](/kbc_structure.png){: .img-responsive} ## Working with Keboola -Everything you can do in the Keboola UI can be done programatically using the API of the corresponding component. +Everything you can do in the Keboola UI can be done programmatically using the API of the corresponding component. All of our components have API documentation on [api.keboola.com](https://api.keboola.com/) and most of them have a public [Github repository](https://github.com/keboola/). Our Docker components are built on [AWS ECR](https://aws.amazon.com/ecr/). @@ -28,7 +28,7 @@ This means that there are virtually **endless possibilities of what can be done ## Component Common Features All components share some common behaviour such as [*Component Configuration*](/integrate/storage/api/configurations/) [Running Jobs](/integrate/jobs/), which allows each component to be run in [Orchestrations](https://help.keboola.com/orchestrator/). -This means that once worked your way through one component, you have seen them all. +This means that once you've worked your way through one component, you have seen them all. **Most of our components are open source**. If you are interested in their code, have a look at [our repositories](/overview/repositories/). Apart from that common features, some components define additional [synchronous actions](/extend/common-interface/actions/).