-
Notifications
You must be signed in to change notification settings - Fork 69
Kafka asyncapi client #804
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
65aad28
skeleton
bmaidics 33be2a0
checkpoint
bmaidics a71c350
checkpoint
bmaidics db6997f
checkpoint
bmaidics 0574abe
checkpoint
bmaidics 63136cd
checkpoint
bmaidics 0833f4d
checkpoint
bmaidics ae38add
Checkpoint
bmaidics e8f93fc
check
bmaidics 4984c85
Checkpoint
bmaidics 046583b
some fixes
bmaidics ffd9900
Merge remote-tracking branch 'upstream/develop' into asyncapi_mqtt
bmaidics a366947
checkpoint
bmaidics 54aea97
Address review items
bmaidics 51f039c
Merge remote-tracking branch 'upstream/develop' into asyncapi_mqtt
bmaidics ee96b7d
remove files
bmaidics 504af3e
Reviews
bmaidics 3ca1ffb
Add dependency to docker
bmaidics 084c7ff
Fix
bmaidics 24a2897
Fixes
bmaidics f7b2b50
Fix pom
bmaidics d13162d
Add asyncapi schema validation
bmaidics 87d8ae6
Merge remote-tracking branch 'upstream/develop' into asyncapi_mqtt
bmaidics e484222
first commit
bmaidics 607ea1a
checkpoint
bmaidics cc72a7a
REVERT BEFORE MERGE: Akram's HTTP changes
bmaidics 6f3b371
checkpoint
bmaidics 3f9c72f
REVERT THIS AS WELL
bmaidics 3ad70d6
checkpoint
bmaidics 8a8aae2
Fix tests
bmaidics 12f7619
Test http
bmaidics 049e595
Review items
bmaidics 3267a92
Merge branch 'asyncapi_mqtt' into http_asyncapi
bmaidics 0a2fb4e
Merge fixes
bmaidics 7d05a57
Merge remote-tracking branch 'upstream/develop' into asyncapi_mqtt
bmaidics 4d59803
Use binding.qvault
bmaidics dd71f47
Merge branch 'asyncapi_mqtt' into http_asyncapi
bmaidics 18acd92
Review fixes
bmaidics 9056e04
Add schema, builders
bmaidics 3df787a
Client done?
bmaidics 8ca3a72
Checkpoint
bmaidics b79279e
feedbacks
bmaidics d99bb51
Merge remote-tracking branch 'upstream/develop' into http_asyncapi
bmaidics 285f1d3
Merge branch 'http_asyncapi' into kafka_client_asyncapi
bmaidics d694e5b
Fix
bmaidics 8df7787
Merge remote-tracking branch 'upstream/develop' into kafka_client_asy…
bmaidics efbdf81
Merge fixes
bmaidics 6706138
Remove unnecessary files
bmaidics 3801e01
fix
bmaidics File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
199 changes: 199 additions & 0 deletions
199
...spec/src/main/scripts/io/aklivity/zilla/specs/binding/asyncapi/config/kafka/asyncapi.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,199 @@ | ||
| # | ||
bmaidics marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| # Copyright 2021-2023 Aklivity Inc. | ||
| # | ||
| # Aklivity licenses this file to you under the Apache License, | ||
| # version 2.0 (the "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at: | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
| # License for the specific language governing permissions and limitations | ||
| # under the License. | ||
| # | ||
|
|
||
| asyncapi: 3.0.0 | ||
| info: | ||
| title: Streetlights Kafka API | ||
| version: 1.0.0 | ||
| description: "The Smartylighting Streetlights API allows you to remotely manage the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off \U0001F303\n* Dim a specific streetlight \U0001F60E\n* Receive real-time information about environmental lighting conditions \U0001F4C8\n" | ||
| license: | ||
| name: Apache 2.0 | ||
| url: 'https://www.apache.org/licenses/LICENSE-2.0' | ||
| defaultContentType: application/json | ||
| servers: | ||
| scram-connections: | ||
| host: 'test.mykafkacluster.org:18092' | ||
| protocol: kafka-secure | ||
| description: Test broker secured with scramSha256 | ||
| security: | ||
| - $ref: '#/components/securitySchemes/saslScram' | ||
| tags: | ||
| - name: 'env:test-scram' | ||
| description: >- | ||
| This environment is meant for running internal tests through | ||
| scramSha256 | ||
| - name: 'kind:remote' | ||
| description: This server is a remote server. Not exposed by the application | ||
| - name: 'visibility:private' | ||
| description: This resource is private and only available to certain users | ||
| channels: | ||
| lightingMeasured: | ||
| address: 'smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured' | ||
| messages: | ||
| lightMeasured: | ||
| $ref: '#/components/messages/lightMeasured' | ||
| description: The topic on which measured values may be produced and consumed. | ||
| parameters: | ||
| streetlightId: | ||
| $ref: '#/components/parameters/streetlightId' | ||
| lightTurnOn: | ||
| address: 'smartylighting.streetlights.1.0.action.{streetlightId}.turn.on' | ||
| messages: | ||
| turnOn: | ||
| $ref: '#/components/messages/turnOnOff' | ||
| parameters: | ||
| streetlightId: | ||
| $ref: '#/components/parameters/streetlightId' | ||
| lightTurnOff: | ||
| address: 'smartylighting.streetlights.1.0.action.{streetlightId}.turn.off' | ||
| messages: | ||
| turnOff: | ||
| $ref: '#/components/messages/turnOnOff' | ||
| parameters: | ||
| streetlightId: | ||
| $ref: '#/components/parameters/streetlightId' | ||
| lightsDim: | ||
| address: 'smartylighting.streetlights.1.0.action.{streetlightId}.dim' | ||
| messages: | ||
| dimLight: | ||
| $ref: '#/components/messages/dimLight' | ||
| parameters: | ||
| streetlightId: | ||
| $ref: '#/components/parameters/streetlightId' | ||
| operations: | ||
| receiveLightMeasurement: | ||
| action: receive | ||
| channel: | ||
| $ref: '#/channels/lightingMeasured' | ||
| summary: >- | ||
| Inform about environmental lighting conditions of a particular | ||
| streetlight. | ||
| traits: | ||
| - $ref: '#/components/operationTraits/kafka' | ||
| messages: | ||
| - $ref: '#/channels/lightingMeasured/messages/lightMeasured' | ||
| turnOn: | ||
| action: send | ||
| channel: | ||
| $ref: '#/channels/lightTurnOn' | ||
| traits: | ||
| - $ref: '#/components/operationTraits/kafka' | ||
| messages: | ||
| - $ref: '#/channels/lightTurnOn/messages/turnOn' | ||
| turnOff: | ||
| action: send | ||
| channel: | ||
| $ref: '#/channels/lightTurnOff' | ||
| traits: | ||
| - $ref: '#/components/operationTraits/kafka' | ||
| messages: | ||
| - $ref: '#/channels/lightTurnOff/messages/turnOff' | ||
| dimLight: | ||
| action: send | ||
| channel: | ||
| $ref: '#/channels/lightsDim' | ||
| traits: | ||
| - $ref: '#/components/operationTraits/kafka' | ||
| messages: | ||
| - $ref: '#/channels/lightsDim/messages/dimLight' | ||
| components: | ||
| messages: | ||
| lightMeasured: | ||
| name: lightMeasured | ||
| title: Light measured | ||
| summary: >- | ||
| Inform about environmental lighting conditions of a particular | ||
| streetlight. | ||
| contentType: application/json | ||
| traits: | ||
| - $ref: '#/components/messageTraits/commonHeaders' | ||
| payload: | ||
| $ref: '#/components/schemas/lightMeasuredPayload' | ||
| turnOnOff: | ||
| name: turnOnOff | ||
| title: Turn on/off | ||
| summary: Command a particular streetlight to turn the lights on or off. | ||
| traits: | ||
| - $ref: '#/components/messageTraits/commonHeaders' | ||
| payload: | ||
| $ref: '#/components/schemas/turnOnOffPayload' | ||
| dimLight: | ||
| name: dimLight | ||
| title: Dim light | ||
| summary: Command a particular streetlight to dim the lights. | ||
| traits: | ||
| - $ref: '#/components/messageTraits/commonHeaders' | ||
| payload: | ||
| $ref: '#/components/schemas/dimLightPayload' | ||
| schemas: | ||
| lightMeasuredPayload: | ||
| type: object | ||
| properties: | ||
| lumens: | ||
| type: integer | ||
| minimum: 0 | ||
| description: Light intensity measured in lumens. | ||
| sentAt: | ||
| $ref: '#/components/schemas/sentAt' | ||
| turnOnOffPayload: | ||
| type: object | ||
| properties: | ||
| command: | ||
| type: string | ||
| enum: | ||
| - 'on' | ||
| - 'off' | ||
| description: Whether to turn on or off the light. | ||
| sentAt: | ||
| $ref: '#/components/schemas/sentAt' | ||
| dimLightPayload: | ||
| type: object | ||
| properties: | ||
| percentage: | ||
| type: integer | ||
| description: Percentage to which the light should be dimmed to. | ||
| minimum: 0 | ||
| maximum: 100 | ||
| sentAt: | ||
| $ref: '#/components/schemas/sentAt' | ||
| sentAt: | ||
| type: string | ||
| format: date-time | ||
| description: Date and time when the message was sent. | ||
| securitySchemes: | ||
| saslScram: | ||
| type: scramSha256 | ||
| description: Provide your username and password for SASL/SCRAM authentication | ||
| parameters: | ||
| streetlightId: | ||
| description: The ID of the streetlight. | ||
| messageTraits: | ||
| commonHeaders: | ||
| headers: | ||
| type: object | ||
| properties: | ||
| my-app-header: | ||
| type: integer | ||
| minimum: 0 | ||
| maximum: 100 | ||
| operationTraits: | ||
| kafka: | ||
| bindings: | ||
| kafka: | ||
| clientId: | ||
| type: string | ||
| enum: | ||
| - my-app-id | ||
37 changes: 0 additions & 37 deletions
37
....spec/src/main/scripts/io/aklivity/zilla/specs/binding/asyncapi/config/server.secure.yaml
This file was deleted.
Oops, something went wrong.
26 changes: 0 additions & 26 deletions
26
...syncapi.spec/src/main/scripts/io/aklivity/zilla/specs/binding/asyncapi/config/server.yaml
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
47 changes: 47 additions & 0 deletions
47
...o/aklivity/zilla/specs/binding/asyncapi/streams/asyncapi/kafka/produce.message/client.rpt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| # | ||
| # Copyright 2021-2023 Aklivity Inc. | ||
| # | ||
| # Aklivity licenses this file to you under the Apache License, | ||
| # version 2.0 (the "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at: | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
| # License for the specific language governing permissions and limitations | ||
| # under the License. | ||
| # | ||
|
|
||
| property deltaMillis 0L | ||
| property newTimestamp ${kafka:timestamp() + deltaMillis} | ||
|
|
||
| connect "zilla://streams/asyncapi0" | ||
| option zilla:window 8192 | ||
| option zilla:transmission "half-duplex" | ||
|
|
||
| write zilla:begin.ext ${asyncapi:beginEx() | ||
| .typeId(zilla:id("asyncapi")) | ||
| .extension(kafka:beginEx() | ||
| .typeId(zilla:id("kafka")) | ||
| .merged() | ||
| .capabilities("PRODUCE_ONLY") | ||
| .topic("test") | ||
| .ackMode("LEADER_ONLY") | ||
| .build() | ||
| .build()) | ||
| .build()} | ||
|
|
||
| connected | ||
|
|
||
| write zilla:data.ext ${kafka:dataEx() | ||
| .typeId(zilla:id("kafka")) | ||
| .merged() | ||
| .produce() | ||
| .timestamp(newTimestamp) | ||
| .partition(0, 1) | ||
| .build() | ||
| .build()} | ||
| write "Hello, world" | ||
| write flush |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.