Skip to content

Commit 2aa735b

Browse files
authored
Merge branch 'main' into chore/update-plugin-categories
2 parents 66d9eb8 + 24a0533 commit 2aa735b

File tree

12 files changed

+47
-126
lines changed

12 files changed

+47
-126
lines changed

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,26 @@
1-
name: Bug Report
1+
name: Bug report
22
description: File a bug report
33
body:
44
- type: markdown
55
attributes:
66
value: |
7-
Thanks for reporting an issue, please review the task list below before submitting the issue. Your issue report will be closed if the issue is incomplete and the below tasks not completed.
8-
9-
NOTE: If you are unsure about something and the issue is more of a question a better place to ask questions is on [Slack](https://kestra.io/slack).
7+
Thanks for reporting an issue! Please provide a [Minimal Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example) and share any additional information that may help reproduce, troubleshoot, and hopefully fix the issue, including screenshots, error traceback, and your Kestra server logs. For quick questions, you can contact us directly on [Slack](https://kestra.io/slack).
108
- type: textarea
119
attributes:
12-
label: Expected Behavior
13-
description: A concise description of what you expected to happen.
14-
placeholder: Tell us what should happen
10+
label: Describe the issue
11+
description: A concise description of the issue and how we can reproduce it.
12+
placeholder: Describe the issue step by step
1513
validations:
16-
required: false
17-
- type: textarea
18-
attributes:
19-
label: Actual Behaviour
20-
description: A concise description of what you're experiencing.
21-
placeholder: Tell us what happens instead
22-
validations:
23-
required: false
24-
- type: textarea
25-
attributes:
26-
label: Steps To Reproduce
27-
description: Steps to reproduce the behavior.
28-
placeholder: |
29-
1. In this environment...
30-
2. With this config...
31-
3. Run '...'
32-
4. See error...
33-
validations:
34-
required: false
14+
required: true
3515
- type: textarea
3616
attributes:
37-
label: Environment Information
17+
label: Environment
3818
description: Environment information where the problem occurs.
3919
value: |
40-
- Kestra Version:
41-
- Plugin version:
42-
- Operating System (OS / Docker / Kubernetes):
43-
- Java Version (If not docker):
44-
validations:
45-
required: true
46-
- type: textarea
47-
attributes:
48-
label: Example flow
49-
description: Example flow source.
50-
placeholder: |
51-
If relevant, an example flow
20+
- Kestra Version: develop
5221
validations:
5322
required: false
5423
labels:
55-
- bug
24+
- area/plugin
25+
type: Bug
26+
projects: ["kestra-io/15"]

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ contact_links:
22
- name: Chat
33
url: https://kestra.io/slack
44
about: Chat with us on Slack.
5+
blank_issues_enabled: false

.github/ISSUE_TEMPLATE/feature.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
name: Feature request
22
description: Create a new feature request
33
body:
4-
- type: markdown
5-
attributes:
6-
value: |
7-
Please describe the feature you want for Kestra to implement, before that check if there is already an existing issue to add it.
84
- type: textarea
95
attributes:
106
label: Feature description
11-
placeholder: Tell us what feature you would like for Kestra to have and what problem is it going to solve
7+
placeholder: Tell us more about your feature request
128
validations:
139
required: true
1410
labels:
15-
- enhancement
11+
- area/plugin
12+
type: Feature
13+
projects: ["kestra-io/15"]

.github/ISSUE_TEMPLATE/other.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.github/pull_request_template.md

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -40,47 +40,4 @@ Thank you for your contribution. ❤️ -->
4040

4141
### Contributor Checklist ✅
4242

43-
- [ ] PR Title and commits follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)
44-
- [ ] Add a `closes #ISSUE_ID` or `fixes #ISSUE_ID` in the description if the PR relates to an opened issue.
45-
- [ ] Documentation updated (plugin docs from `@Schema` for properties and outputs, `@Plugin` with examples, `README.md` file with basic knowledge and specifics).
46-
- [ ] Setup instructions included if needed (API keys, accounts, etc.).
47-
- [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`).
48-
- [ ] Use `runContext.logger()` to log enough important infos where it's needed and with the best level (DEBUG, INFO, WARN or ERROR).
49-
50-
⚙️ **Properties**
51-
- [ ] Properties are declared with `Property<T>` carrier type, do **not** use `@PluginProperty`.
52-
- [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering.
53-
- [ ] You can model a JSON thanks to a simple `Property<Map<String, Object>>`.
54-
55-
🌐 **HTTP**
56-
- [ ] Must use Kestra’s internal HTTP client from `io.kestra.core.http.client`
57-
58-
📦 **JSON**
59-
- [ ] If you are serializing response from an external API, you may have to add a `@JsonIgnoreProperties(ignoreUnknown = true)` at the mapped class level. So that we will avoid to crash the plugin if the provider add a new field suddenly.
60-
- [ ] Must use Jackson mappers provided by core (`io.kestra.core.serializers`)
61-
62-
**New plugins / subplugins**
63-
- [ ] Make sure your new plugin is configured like mentioned [here](https://kestra.io/docs/plugin-developer-guide/gradle#mandatory-configuration).
64-
- [ ] Add a `package-info.java` under each sub package respecting [this format](https://github.com/kestra-io/plugin-odoo/blob/main/src/main/java/io/kestra/plugin/odoo/package-info.java) and choosing the right category.
65-
- [ ] Every time you use `runContext.metric(...)` you have to add a `@Metric` ([see this doc](https://kestra.io/docs/plugin-developer-guide/document#document-the-plugin-metrics))
66-
- [ ] Docs don't support to have both tasks/triggers in the root package (e.g. `io.kestra.plugin.kubernetes`) and in a sub package (e.g. `io.kestra.plugin.kubernetes.kubectl`), whether it's: all tasks/triggers in the root package OR only tasks/triggers in sub packages.
67-
- [ ] Icons added in `src/main/resources/icons` in SVG format and not in thumbnail (keep it big):
68-
- `plugin-icon.svg`
69-
- One icon per package, e.g. `io.kestra.plugin.aws.svg`
70-
- For subpackages, e.g. `io.kestra.plugin.aws.s3`, add `io.kestra.plugin.aws.s3.svg`
71-
See example [here](https://github.com/kestra-io/plugin-elasticsearch/blob/master/src/main/java/io/kestra/plugin/elasticsearch/Search.java#L76).
72-
- [ ] Use `"{{ secret('YOUR_SECRET') }}"` in the examples for sensible infos such as an API KEY.
73-
- [ ] If you are fetching data (one, many or too many), you must add a `Property<FetchType> fetchType` to be able to use `FETCH_ONE`, `FETCH` and even `STORE` to store big amount of data in the internal storage.
74-
- [ ] Align the `"""` to close examples blocks with the flow id.
75-
- [ ] Update the existing `index.yaml` for the main plugin, and for each new subpackage add a metadata file named exactly after the subpackage (e.g. `s3.yaml` for `io.kestra.plugin.aws.s3`) under `src/main/resources/metadata/`, following the same schema.
76-
77-
🧪 **Tests**
78-
- [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks).
79-
- [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`.
80-
- [ ] Avoid disabling tests for CI. Instead, configure a local environment whenever it's possible with `.github/setup-unit.sh` (to be set executable with `chmod +x setup-unit.sh`) (which can be executed locally and in the CI) all along with a new `docker-compose-ci.yml` file (do **not** edit the existing `docker-compose.yml`). If needed, create an executable (`chmod +x cleanup-unit.sh`) `cleanup-unit.sh` to remove the potential costly resources (tables, datasets, etc).
81-
- [ ] Provide screenshots from your QA / tests locally in the PR description. The goal here is to use the JAR of the plugin and directly test it locally in Kestra UI to ensure it integrates well.
82-
83-
📤 **Outputs**
84-
- [ ] Do not send back as outputs the same infos you already have in your properties.
85-
- [ ] If you do not have any output use `VoidOutput`.
86-
- [ ] Do not output twice the same infos (eg: a status code, an error code saying the same thing...).
43+
- [ ] I have read and followed the [plugin contribution guidelines](https://kestra.io/docs/plugin-developer-guide/contribution-guidelines)

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
plugins {
2-
id "com.vanniktech.maven.publish" version "0.35.0"
2+
id "com.vanniktech.maven.publish" version "0.36.0"
33
id "io.kestra.gradle.inject-bom-versions" version "1.0.0"
44
id 'java-library'
55
id "idea"
66
id 'jacoco'
77
id "com.adarshr.test-logger" version "4.0.0"
8-
id "com.gradleup.shadow" version "9.3.0"
8+
id "com.gradleup.shadow" version "9.3.1"
99
id 'signing'
1010
id "com.github.ben-manes.versions" version "0.53.0"
1111
id 'net.researchgate.release' version '3.1.0'
@@ -53,7 +53,7 @@ dependencies {
5353
compileOnly'org.slf4j:slf4j-api'
5454

5555
// libs included in the final jar
56-
api group: 'com.couchbase.client', name: 'java-client', version: '3.10.0'
56+
api group: 'com.couchbase.client', name: 'java-client', version: '3.11.0'
5757
}
5858

5959

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
description=Integrate Couchbase NoSQL database operations into your Kestra flows for efficient data management, real-time analytics, and improved performance across your data-driven applications.
2-
version=1.1.2-SNAPSHOT
3-
kestraVersion=1.2.3
2+
version=1.1.3-SNAPSHOT
3+
kestraVersion=1.2.3

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

src/main/java/io/kestra/plugin/couchbase/CouchbaseConnectionInterface.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,22 @@
55

66
public interface CouchbaseConnectionInterface {
77
@Schema(
8-
title = "Connection string used to locate the Couchbase cluster."
8+
title = "Couchbase connection string",
9+
description = "Full connection string (e.g., couchbase://host) rendered with flow variables before opening the cluster."
910
)
1011
@PluginProperty(dynamic = true)
1112
String getConnectionString();
1213

1314
@Schema(
14-
title = "Plaintext authentication username."
15+
title = "Cluster username",
16+
description = "Renderable username for authenticating to the cluster; store sensitive values in secrets."
1517
)
1618
@PluginProperty(dynamic = true)
1719
String getUsername();
1820

1921
@Schema(
20-
title = "Plaintext authentication password."
22+
title = "Cluster password",
23+
description = "Renderable password for authenticating to the cluster; prefer secret storage."
2124
)
2225
@PluginProperty(dynamic = true)
2326
String getPassword();

src/main/java/io/kestra/plugin/couchbase/Query.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
@Getter
3131
@NoArgsConstructor
3232
@Schema(
33-
title = "Query a Couchbase database with N1QL."
33+
title = "Run Couchbase N1QL and capture results",
34+
description = "Executes the rendered N1QL statement on the target cluster. Defaults to STORE, writing the full result set to Kestra internal storage; use FETCH to return all rows inline or FETCH_ONE for just the first row. Parameters can be named or positional."
3435
)
3536
@Plugin(
3637
examples = {
@@ -117,26 +118,26 @@ else if (parameters instanceof List) {
117118
@Getter
118119
public static class Output implements io.kestra.core.models.tasks.Output {
119120
@Schema(
120-
title = "List containing the fetched data.",
121-
description = "Only populated if using `FETCH`."
121+
title = "All rows returned",
122+
description = "Present when fetchType resolves to FETCH; each row is returned as a JSON map."
122123
)
123124
private List<Map<String, Object>> rows;
124125

125126
@Schema(
126-
title = "Map containing the first row of fetched data.",
127-
description = "Only populated if using `FETCH_ONE`."
127+
title = "First row returned",
128+
description = "Present when fetchType resolves to FETCH_ONE; null if the query returns no rows."
128129
)
129130
private Map<String, Object> row;
130131

131132
@Schema(
132-
title = "The URI of the stored result in Kestra's internal storage.",
133-
description = "Only populated if using `STORE`."
133+
title = "Stored result URI",
134+
description = "Present when fetchType resolves to STORE; points to the Kestra internal storage object containing all rows."
134135
)
135136
private URI uri;
136137

137138
@Schema(
138-
title = "The number of rows to be fetched.",
139-
description = "Only populated if `fetchType` is 'FETCH' or 'STORE'."
139+
title = "Number of rows returned",
140+
description = "Set when fetchType is FETCH or STORE; useful for branching or triggers."
140141
)
141142
private Long size;
142143
}

0 commit comments

Comments
 (0)