* Create a new issue template
Fixes#1348
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Wrap text
Signed-off-by: Jon Skeet <skeet@pobox.com>
---------
Signed-off-by: Jon Skeet <jonskeet@google.com>
Signed-off-by: Jon Skeet <skeet@pobox.com>
* AsyncAPI with CloudEvents
Adding a first draft according to https://github.com/cloudevents/spec/issues/1276
Signed-off-by: Lazzaretti <fabrizio@lazzaretti.me>
* add changes from code review
- remove intorudcion
- wrap the lines at 80 chars
- s/should/will/
- create translation files he/CN
Signed-off-by: Lazzaretti <fabrizio@lazzaretti.me>
* fix: title naming
Signed-off-by: Lazzaretti <fabrizio@lazzaretti.me>
* Add short samples on how to add CloudEvents support to AsyncAPI
Signed-off-by: Lazzaretti <fabrizio@lazzaretti.me>
* Change links for asyncapi-traits to location after merging
Signed-off-by: Lazzaretti <fabrizio@lazzaretti.me>
---------
Signed-off-by: Lazzaretti <fabrizio@lazzaretti.me>
* Add CloudStreams and Synapse as products that use the CloudEvents spec
Signed-off-by: Charles d'Avernas <charles.davernas@neuroglia.io>
* Renamed cloud events into CloudEvents
Signed-off-by: Charles d'Avernas <charles.davernas@neuroglia.io>
---------
Signed-off-by: Charles d'Avernas <charles.davernas@neuroglia.io>
* Add data-classification.md extension
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX based upon PR comments: correct spelling, add link in extensions/README.md and usage of MUST keyword in example use case
-
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX based upon PR comments: improve spelling
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX based upon PR comments: improve description around recommended labels, remove 'applicability constraints', extend usage section.
-
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX based upon PR comments: improve wording and usage of notational conventions
-
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX: add missing 'of'
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX based upon PR comments: extend usage section to state expectations when intermediaries/consumers encounter unknown attribute values.
-
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX: must -> MUST
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
* FIX based upon PR comments: in Usage section change 'ignore event' into 'report error'.
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
---------
Signed-off-by: Rob Sessink <rob.sessink@gmail.com>
Co-authored-by: Rob Sessink <rob.sessink@gmail.com>
Adding myself to the contributors list. It's a small thing, but
since I contributed to the deprecation extension, it's important
for me to be included.
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Add CloudEvents extension for deprecated events
Introduced the `deprecation` attribute to indicate when an event type is deprecated,
and added the `sunset` attribute to specify the date and time when the event
will become unsupported. This extension provides clear guidelines and examples for
implementing these attributes, aiming to improve lifecycle management and ensure
better communication with consumers.
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Fix PR comments: Add deprecationmigration and deprecationfrom
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Fix typos
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Fix PR comments, and renamed deprecated field
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Remove reference to RFC 3339
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Remove deprecated unnecessary constraint
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Remove quotes from boolean value example
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Change deprecated to be Required
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Make deprecate have a value of true all the time
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Improve clarity
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Fix typo
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
---------
Signed-off-by: Vandewilly Oliveira da Silva <vandewilly.oliveira-da.silva@hpe.com>
* Removed company names and put names in alphabetical order
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
* Removed company names and put names in alphabetical order
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
* Update docs/contributors.md
Co-authored-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
---------
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
Co-authored-by: Calum Murray <cmurray@redhat.com>
* docs: add release note for CESQL v1
Signed-off-by: Calum Murray <cmurray@redhat.com>
* docs: add link to cesql v1 release notes to RELEASES.md
Signed-off-by: Calum Murray <cmurray@redhat.com>
* fix: order by release date instead of group
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Address review comments
* Add link to cesql v1 in releases table
* Add short paragraph to cesql README
Signed-off-by: Calum Murray <cmurray@redhat.com>
---------
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Remove IS_(BOOL|INT|STRING) tests since the functions are not required
by spec
* Fix cast of boolean no longer causing error
* Remove test that requires complete expression evaluation, as the spec
leaves this to implementations
* Fix remaining tests to return missing attribute errors where necessary
Signed-off-by: Calum Murray <cmurray@redhat.com>
* clarify integer overflow behaviour, order of evaluation
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Address feedback from @duglin
* Link to ISO 9075
* Fix some typos
* Clarify return types and errors
* Simplify ebnf definitions for value identifiers
* Clarify type casting and behaviour for operators
Signed-off-by: Calum Murray <cmurray@redhat.com>
* further fixes from review by @duglin
Signed-off-by: Calum Murray <cmurray@redhat.com>
* clarify error handling and zero values
Signed-off-by: Calum Murray <cmurray@redhat.com>
* further clarify error handling and zero values
Signed-off-by: Calum Murray <cmurray@redhat.com>
* parenthized -> paranthesized
Signed-off-by: Calum Murray <cmurray@redhat.com>
* more fixes from review by @duglin
Signed-off-by: Calum Murray <cmurray@redhat.com>
* fix the should verification problem
Signed-off-by: Calum Murray <cmurray@redhat.com>
* clarify default type of attributes
Signed-off-by: Calum Murray <cmurray@redhat.com>
* fix indentation of operator precedence
Signed-off-by: Calum Murray <cmurray@redhat.com>
* it's -> its
Signed-off-by: Calum Murray <cmurray@redhat.com>
---------
Signed-off-by: Calum Murray <cmurray@redhat.com>
* test: tck tests now check that AND and OR operators are short circuit evaluated
Signed-off-by: Calum Murray <cmurray@redhat.com>
* fix: test for OR short circuiting uses the OR operator
Signed-off-by: Calum Murray <cmurray@redhat.com>
* test: verify that AND and OR only short circuit when expected to
Signed-off-by: Calum Murray <cmurray@redhat.com>
---------
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Initial version for OPC UA extension
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* fixed type errors
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* split opcuametadataversion into separate attributes; added additional constraints
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* Add SingleDataSetMessage constraint
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* type need to reference DataSetMessage.MessageType
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* fixed spec verification findings
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* Added translation files
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* integrated review feedback
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* added references to OPC UA and OPC UA PubSub
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* clarified opcuametadataversion usage when dataschema is used
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* Added examples; corrected subject for events; explained use cases and benefits
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* Addressed review feedback
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* clarify usage of traceparent and recordedtime
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* fixed typo Minior -> Minor; clarify usage of extension attributes
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
---------
Signed-off-by: Alexander Köpke <alexander.koepke@microsoft.com>
* Update open-source.md: Add Microcks to open source projects list
Simulating CloudEvents with AsyncAPI and Microcks link added
Signed-off-by: Yacine Kheddache <yacine@microcks.io>
* Update open-source.md
Microcks: re-order so the list is alphabetized as requested.
Signed-off-by: Yacine Kheddache <yacine@microcks.io>
* Update open-source.md : reorder the entire list by Alphabetical order
reorder the entire list by Alphabetical order as requested
Signed-off-by: Yacine Kheddache <yacine@microcks.io>
---------
Signed-off-by: Yacine Kheddache <yacine@microcks.io>
* Add example about structuring a composite subject field.
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Fix capitalization of the word "may"
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Fix alignment of text in the raw textual format
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* State explicitly that custom extensions should go inside a composite subject.
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Alter proposal by embedding values into the subject field
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Make example compliant with the intended purpose of subject
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Fix inconsistent usage of words describe vs. identify for a subject
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Improve wording of the example
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* Improve clarity of composite content for a subject property
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
---------
Signed-off-by: Ervin Varga <ervin.varga@gmail.com>
* fix: use KiB instead of non-standard KBytes and KB
See https://github.com/cloudevents/spec/issues/1259
Signed-off-by: Sasha Tkachev <sasha64sasha@gmail.com>
* fix: use KiB in all files
Signed-off-by: Sasha Tkachev <sasha64sasha@gmail.com>
---------
Signed-off-by: Sasha Tkachev <sasha64sasha@gmail.com>
* clarified that missing attributes should not result in errors
Signed-off-by: Calum Murray <cmurray@redhat.com>
* remove missingAttribute errors from tck tests
Signed-off-by: Calum Murray <cmurray@redhat.com>
* MUST not -> MUST NOT
Signed-off-by: Calum Murray <cmurray@redhat.com>
* addressing a missing attribute makes the subexpression false
Signed-off-by: Calum Murray <cmurray@redhat.com>
* fix: clarified language for missing attribute handling
Signed-off-by: Calum Murray <cmurray@redhat.com>
---------
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Change constraint to OPTIONAL for authtype
Issue created for this change: https://github.com/cloudevents/spec/issues/1245
For the recently added extension Auth Context /extensions/authcontext.md the attribute of authtype is the only one marked as REQUIRED in the constraints.
The key principle here is that authtype classification results should be predictable and should not change. However, for some cases the type is preferred to be unknown when we can't determine reliable. The main concern we have is how authtype classifications might change when we are able to classify the request in the future.
As a result if we change from unknown to app_user it is a "breaking" change for API consumers. Since their code may build business logic based on authtype results.
This is the reason we are suggesting making authtype OPTIONAL to avoid having customers build business logic around it.
If we have to return an authtype in a situation where we don't know for certain, I would prefer to add the enum value unknown.
We think is better to avoid this altogether until we can consistently and predictably classify "authtype" to avoid future "breaking change' scenario.
Signed-off-by: Josué Fabricio Urbina González <jfurbina@google.com>
* Add unknown value for authtype
From the discussion of the previous snapshot of github.com/cloudevents/spec/pull/1246
It is preferred to add another value to the authtype enum of `unknown`. This is to avoid setting the attribute as OPTIONAL since all extensions have at least one REQUIRED attribute.
Signed-off-by: Josué Fabricio Urbina González <jfurbina@google.com>
---------
Signed-off-by: Josué Fabricio Urbina González <jfurbina@google.com>
* Add tck test cases for LIKE operator with bool/int type coercion
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Add tck test cases which recreate other SubscriptionsAPI filters
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Add missing sources, fix LIKE expression
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Remove tests with behaviour not specified in the spec
Signed-off-by: Calum Murray <cmurray@redhat.com>
---------
Signed-off-by: Calum Murray <cmurray@redhat.com>
* Make the implementation of CESQL OPTIONAL.
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
* Update formatting
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
* Address review comments
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
---------
Signed-off-by: Klaus Deißner <klaus.deissner@sap.com>
* feat: add `recordedtime` extension attribute
This extension defines an attribute that represents the time when an occurrence
was recorded in a particular event, i.e. the time when the CloudEvent was
created by a producer.
This enables bitemporal data to be represented with CloudEvents which enables
several use cases described in the specification of the extension attribute.
Signed-off-by: Iwan Aucamp <aucampia@gmail.com>
* changes for review comments
- Mark the attribute as REQUIRED
- Fix a broken sentence
- Removed terminology section as it just repeats what was already
established earlier.
Signed-off-by: Iwan Aucamp <aucampia@gmail.com>
* Add constraint for relation to occurence time
Given ideal clocks, and given causality holds, occurences should always
be recorded at or after the time of the occurence. But as we don't have
ideal clocks, and might not have causality, it is best to just make this
a loose requirement (i.e. SHOULD) rather than a hard requirement (i.e.
MUST).
Signed-off-by: Iwan Aucamp <aucampia@gmail.com>
---------
Signed-off-by: Iwan Aucamp <aucampia@gmail.com>
- Add support for ?model
- Add a Schema URL for the entire registry as part of the model
- Elaborate on ?inline=PATH
- s/version/versionID/, and remove "version" field from Version resource since
`id` is now its version string
- fixed the spec verification tool so it doesn't flag optional query parmeters
as markdown bookmarks (e.g. [?inline])
Signed-off-by: Doug Davis <dug@microsoft.com>
Explanation: we view the CE namespace as "owned" by this spec, so
while we allow for non-CE-namespaced elements in the batch to be
present and ignored, there shouldn't be any elements in the CE
namespace other than "event". (We don't permit nested batches, for
example.)
Conformance tests in https://github.com/cloudevents/conformance/blob/format-tests/format/xml/invalid-batches.xml#L37
(Also a typo fix.)
Signed-off-by: Jon Skeet <jonskeet@google.com>
- Added versionsUrl, versionsCount fields
- removed "type"
- s/URL/Url/ where appropriate
- "versions" in model MUST be >= 1 - meaning there will always be at least 1
version of a resource
- added missing fields in some samples
- wrap at 80 cols
Signed-off-by: Doug Davis <dug@microsoft.com>
(We should definitely have a big conformance suite for this format at some
point...)
The repetition of the language around XML element data is
deliberate, but slightly clunky. Other suggestions welcome.
Also happy to add an example with both CDATA and a text node if that
would be useful, but it feels like it's probably better in a
conformance test.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Move batch restrictions from HTTP to the main spec
The restriction in terms of uniqueness is new, and definitely open
for debate. I had previously always just assumed it. If we choose
not to require it, we should explicitly permit duplicates.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Remove uniqueness restriction in batches
Signed-off-by: Jon Skeet <jonskeet@google.com>
---------
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Initial attempt at batch clarification.
This treats batch-mode as a full-on third content mode (as it really
is). It attempts to clarify support in each transport and event
format, as well as removing duplication (e.g. in JSON format) of
what batch mode is about, and the odd "JSON batch format is a
separate event format" aspect.
Some parts may have been missed, and I'm thoroughly expecting some
push back :)
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Address review feedback
(This includes removing some italics around content modes - we should probably do more of that, to be honest.)
Signed-off-by: Jon Skeet <jonskeet@google.com>
---------
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Clarify XML format specification
- Unknown attributes and elements in a different namespace should be ignored (other than within a data element)
- Make it clear that "XML data" is really a representation of a single XML element.
Closes#998.
Closes#1005.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Provide more scoping for where XML elements/attributes should be ignored
Signed-off-by: Jon Skeet <jonskeet@google.com>
Signed-off-by: Jon Skeet <jonskeet@google.com>
* update Chinese spec
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* docs: update last edit time
Signed-off-by: Jie Ding <jie.ding@linkall.com>
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* docs: add badges to README.md
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* docs: update last edit time
Signed-off-by: Jie Ding <jie.ding@linkall.com>
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* fix: use opentelemetery
BREAKING CHANGE
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: add references
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Revert "feat: add references"
This reverts commit f8bd820280.
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Revert "fix: use opentelemetery"
This reverts commit 020b80f47c.
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: use opentelemetry instead of re-inventing the wheel
BREAKING CHANGE
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Revert "fix: use opentelemetry instead of re-inventing the wheel"
This reverts commit d8616eddf0.
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: rename filename to severity
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: use opentelemetry instead of re-inventing the wheel
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing translations
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: wrong title
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: title consistency
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: add python to workflow
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add verify languages to makefile
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: verify languages script
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing he aws-sns file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing he loglevel file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing zh loglevel file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing zh aws-sns file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing zh languages file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: add python to workflow
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: verify docs
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: query issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: cesql rfc 2119 issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: ignore marshall
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: optionally edge case
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: quoted required
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: improve pattern readability
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove banned word
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove banned word
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: capitalize optional
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: rename required to necessary
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove bad imports
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: change veirification to use docs script
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: newline bug
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: issue detection
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: add python to workflow
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add python requirements
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: install requirments
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add bs4 to requirements
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add tenacity to requirments
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add aiohttp to requirments
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: basic verify links script
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: read html text
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: markdown conversion
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* perf: use gather on all files
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add tqdm to requirements
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: add progress bar
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: explain why we use asyncio
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* config: decrease max attempts to 2
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: result generation
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: better issue for failed access
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: rate limiting issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: use pattern matching
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: formatting
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: simplify flow
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: remove todo
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing dots to mail uri
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: use pattern matching in uri
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: use new event loop
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add pymdown-extensions to requirements
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: verify local file issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: use correct uri segment
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: use bookmark instead of relative link
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: add debug option
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add 500 to the ok status codes
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: use python implementation instead of bash
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add repr for segment
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: verify no undefined bookmarks
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove redundancy
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: remove old verify links file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: simplify http tests
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: merge all scripts into a single script
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: skip type is different
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: move argsparser under main
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove code duplication
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove uneeded function
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: typo
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: move around consts for legability
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: move tests to seperate file
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add pyc to gitignore
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: remove bad comment
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: better skip text pattern
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: skip text pattern
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: rename md bookmark pattern
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: bookmark issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: bookmark pattern
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: remove code duplication
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add return statement
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: capitalization phrases
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: banned phrases pattern
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: rename function to convey correct intention
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: uppercase detection
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: split text issues into functions
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: merge lists
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: tag issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: rename text issues to plain text issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: flatten
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: uri issues
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: skipping
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: remove query prefix
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: _render_markdown_to_html
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: add html text strong type
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: sort imports
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: headers are rendered with ids
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* docs: clearify pattern
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: remove unused import
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add pytest for deps
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: remove \y from test
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add verification testing to makefile
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: print success message
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: simplify make
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: add test_tools step
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* ci: give names to steps
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: bad all target
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: add fake docs
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: settings propogration
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: ignore fake docs
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: add http links
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: add mail uri
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Revert "feat: ignore fake docs"
This reverts commit 8637df3aa1.
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: configurable excluded paths
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add pytest-asyncio to requirements
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing dot
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: add fake docs dir
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove quotes
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: add app test
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: windows paths formatting
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: typo
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: merge langauge verification into the single verification script
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: add fake translations
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: add fake issues to the expected results
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing zh cbor-format translation
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing he cbor-format translation
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing asserts
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: formatting
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: change match to search
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: use pure posix path
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: add docker target
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: makefile formatting
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove quotes
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* build: increase test verbosity
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* test: change github to google to avoid rate-limiting
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Revert "build: increase test verbosity"
This reverts commit e774bfa3c4.
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: cbor initial draft
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: simple cloudevents cddl
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: escape time
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove uri reference tagging
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add positive number mapping
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: define ce types
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: support extensions
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: allow text explicitly
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: wording
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: rename serialization to encoding
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove unsed link
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove examples
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing datacontenttype bookmark
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: add missing rfc2045-sec5 bookmark
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: change data to envelope
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: correct document title
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: clearify wording around simple values
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: abstract
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: explain why we chose the integer types
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: change required to needed
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: clearify that the type referes to the attribute type
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove uneeded s
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: rename date to data
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove uneeded space
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: better define cbor envelope
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: wrapp to 80 chars
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: formatting
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: typo
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: typo
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: allow uris to be a simple string
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: specify strings must follow rfc
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: string confused as href
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: clarify that major type 3 is a string
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: move cbor format to working drafts
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* refactor: move cddl also
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove duplication
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* feat: force shell scripts to be LF
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* style: add newline at eof
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Note around empty messages for Kafka
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Clarifications
Signed-off-by: Jon Skeet <jonskeet@google.com>
Signed-off-by: Jon Skeet <jonskeet@google.com>
* docs: add aws-sns-adapter
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* fix typos
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* add a static prefix for type
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* wrap things at 80 column
Signed-off-by: Jie Ding <jie.ding@linkall.com>
Signed-off-by: Jie Ding <jie.ding@linkall.com>
* Clarification for the abuse protection callback
Addresses #617 and #1018
Signed-off-by: clemensv <clemensv@microsoft.com>
* clarified request rate when using GET callbacks
Signed-off-by: clemensv <clemensv@microsoft.com>
Signed-off-by: clemensv <clemensv@microsoft.com>
* fix: use SHOULD instead of needs
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: clarify optional feature behavior
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* fix: remove code block
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit 9506e913ab2fadae4f73843a73abf204db0a7b19
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Wed Aug 17 20:49:38 2022 +0300
feat: translations structure
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit 6a4f46a092e983cae9f722505ee4dd39ad252367
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Wed Aug 17 20:41:56 2022 +0300
fix: typo
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit 4f1e496fef4383a70fb2d859fd47a8b7ec99afb4
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Sat Aug 13 01:40:57 2022 +0300
fix: use less pretentious language
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit d33c1e534e14628bb7760edbf55f2e2e7ac6a4fa
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Fri Aug 12 20:13:01 2022 +0300
chore: point all documents to english translation
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit d4d9faf26d8564858bd47b63d1848055e260887f
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Fri Aug 12 19:53:30 2022 +0300
style: remove rtl
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit fb29d9f594d0fe81561a6649d0dd8f608824391b
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Fri Aug 12 19:42:46 2022 +0300
feat: add hebrew sample
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
commit 4bac4b8651af1ce2d26c2417cd2cad36c7bfb25a
Author: Alexander Tkachev <sasha64sasha@gmail.com>
Date: Fri Aug 12 19:36:13 2022 +0300
chore: create hebrew tralnsation structure for cloudevents spec
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
Signed-off-by: Alexander Tkachev <sasha64sasha@gmail.com>
* Translate cloudevents/spec/blob/main/cloudevents/primer.md to zh-CN #982
Signed-off-by: Sun Shengjing <sunshengjing@Suns-MacBook-Pro.local>
* Translate cloudevents/spec/blob/main/cloudevents/primer.md to zh-CN #982#1003
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* docs:update languages/zh-CN/spec.md(#982) verify #673
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* docs:update languages/zh-CN/spec.md(#982) verify #673
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* docs:update languages/zh-CN/spec.md(#982) verify #673
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* Translate cloudevents/spec/blob/main/cloudevents/primer.md to zh-CN #982#1003: add spaces before/after the -
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* Translate cloudevents/spec/blob/main/cloudevents/primer.md to zh-CN #982 verify #679:fix bad link 'occurrence'
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* Translate cloudevents/spec/blob/main/cloudevents/primer.md to zh-CN #982 verify #679:fix bad link 'occurrence'
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
* Translate cloudevents/spec/blob/main/cloudevents/primer.md to zh-CN #982 verify #679:fix bad link 'creating-cloudevents'
Signed-off-by: Shengjing SUN <sunshengjing@gmail.com>
Co-authored-by: Sun Shengjing <sunshengjing@Suns-MacBook-Pro.local>
* add ?epoch to DELETE /services/ID
Signed-off-by: Doug Davis <dug@us.ibm.com>
* tweak everything
Signed-off-by: Doug Davis <dug@us.ibm.com>
* openapi
Signed-off-by: Doug Davis <dug@us.ibm.com>
* more edits
Signed-off-by: Doug Davis <dug@microsoft.com>
* epoch isn't used for locking
Signed-off-by: Doug Davis <dug@microsoft.com>
* more
Signed-off-by: Doug Davis <dug@microsoft.com>
* more
Signed-off-by: Doug Davis <dug@microsoft.com>
* more
Signed-off-by: Doug Davis <dug@microsoft.com>
Co-authored-by: Doug Davis <dug@us.ibm.com>
* Next round of restrictions in XML format.
These represent the following clear votes from #998:
- Example 2: text node in an `<event>` element
- Example 5: element within a context attribute element
- Example 6: element within binary `<data>` element
- Example 7: element within a text `<data>` element
- Example 8: text within an "any" `<data>` element
- Example 10: text node in a `<batch>` element
- Example 12: comments are allowed anywhere
The remaining examples did not have clear-cut votes, although it
looks like we *probably* want to prohibit additional XML attributes
within context attribute elements.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Add exemption to XML comment processing for a data child element.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* SHOULD -> MUST for comments in XML format
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Preserve all XML nodes within data element child
Signed-off-by: Jon Skeet <jonskeet@google.com>
There may be some more work required to clarify the nature of
extension attributes.
Fixed a few typos I spotted as I went along.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* translate /README.md
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* add 'README.md' and 'RELEASE_NOTES.md' to 'languages' sub-dirs of each spec directory
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* update languages-spec
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* update README.md
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
This does not attempt to cover any of the controversial aspects of #972,
and indeed there may be some uncontroversial aspects of #972 that
I haven't yet taken.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Proposed governance changes from the branching discussions
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Adjust tag format to slash instead of dash
This also clarifies that a release can cover a subdirectory; there's
no good concrete example as right now all releases would cover a
top-level directory anyway.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* docs:add multi-languages structure
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* docs: replace maintainer with reviewer role
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* Update languages/README.md
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* re-org structure and address open comments
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* docs: adress open comments
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* docs: address open comments
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
* docs: fix wrong sections
Signed-off-by: Jie Ding <jie.ding@linkall.cloud>
Per a chat we had in a previous SDK call, the SDK SHOULD validate attributes
so users can be notified if they gave an invalid value.
Signed-off-by: Doug Davis <duglin@gmail.com>
I think github thinks we're ddos-ing it with all of these GETs so let's just
skip the file since it's not that important anyway.
Also fixed a case problem in RFC keyword in: cloudevents/formats/json-format.md
Signed-off-by: Doug Davis <duglin@gmail.com>
* Remove exactly one attribute restriction for exact, prefix and suffix
To improve the usage of the API in the common case, I'm removing
the restriction for `exact`, `prefix` and `suffix` filters of only
containing exactly one attribute.
When multiple attributes are specified, all attributes must match (
like in [1]), for example, these filters:
```yaml
filters:
- suffix:
type: "com.github.push"
- suffix:
subject: "https//github.com/cloudevents/spec"
```
can be written as:
```yaml
filters:
- suffix:
type: "com.github.push"
subject: "https//github.com/cloudevents/spec"
```
[1]: https://github.com/cloudevents/spec/pull/803
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
* Update subscription open API
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
* Clarifications to JSON format
- Clarify that the "default to JSON" handling of datacontenttype
does not apply to binary data
- Give an example of a JSON number as the `data` property value
Signed-off-by: Jon Skeet <jonskeet@google.com>
* Address review comments
Signed-off-by: Jon Skeet <jonskeet@google.com>
The naming choice is based on the C# SDK core being
"CloudNative.CloudEvents". This creates a bias towards using the C#
SDK instead of "roll-your-own" - but I think that's okay,
personally. Happy to consider other options.
Signed-off-by: Jon Skeet <jonskeet@google.com>
* feat(discovery): add history via self service
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* feat(discovery): reuse id path parameter
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* feat(discovery): add historical query capability
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* Remove changes path
As suggested and discussed, removing the changes path (i.e. HTTP history
endpoint) in preference for subscriptions offering a read offset
configuration.
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* feat(discovery): change section title
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* feat(discovery): spelling fix
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
In somewhat woolly terms, my expectations from other language specs are:
- A *parameter* is used in the declaration/specification of a function or operator
- An *operand* specifies the value of an operator parameter
- An *argument* specifies the value of a function parameter
Signed-off-by: Jon Skeet <jonskeet@google.com>
(I've used SHOULD rather than MUST to be consistent with deserialization. If we were starting from scratch, I'd suggest that MUST would be more appropriate, but it's probably too late to do that.)
Fixes#880
Signed-off-by: Jon Skeet <jonskeet@google.com>
* fix(json-format): Clarify data encoding in JSON format with a JSON datacontenttype
Signed-off-by: Daniel Azuma <dazuma@google.com>
* Make the IDs in the examples match
Signed-off-by: Daniel Azuma <dazuma@google.com>
* Make the phrase checker happy
Signed-off-by: Daniel Azuma <dazuma@google.com>
* Reworked the text in response to initial comments from jskeet and duglin
Signed-off-by: Daniel Azuma <dazuma@google.com>
* Additional edits
Signed-off-by: Daniel Azuma <dazuma@google.com>
* Additional edits based on erik's suggestions
Signed-off-by: Daniel Azuma <dazuma@google.com>
* Attribute types aren't all strings
Signed-off-by: Daniel Azuma <dazuma@google.com>
* refactor(discovery): api spec/sync openapi
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): min filter support
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): duglin fixes (TY)
reject unsupported filters on `GET /services`
clarify language to note latest version
fix \ to / in `application/json`
editorial fixes
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): POST/DELETE respond w/Service
When a POST or DELETE request succeeds, the response MUST include the
Service values resulting from the update. It MAY include additional
attributes and/or values assigned by the Discovery Endpoint
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): filters
specify at least case specificity
allow expansion of filtering richness
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): no soft delete mention
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): delete ignores non-ID attrs
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* refactor(discovery): clarify removal semantic
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* Language review of the cesql expression language
Signed-off-by: Ahmed Abdalla <aabdelre@redhat.com>
* Fixing some typos
Signed-off-by: Ahmed Abdalla <aabdelre@redhat.com>
* Added CESQL filter to subscription api
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Swap the sentence
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Added suggestions sections, copy pasted from https://github.com/cloudevents/spec/pull/809
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Fix header name
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Expand test cases
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Another one
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Now filter accepts an array of expressions, and it does the and of them
Renamed filter to filters
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Nit
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Support empty array
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Rewrite the definition of the evaluation
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Better wording
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Changed as suggested
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Added CESQL TCK
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Added ABS test
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Another test case
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* fix: Clarify HTTP header value encoding and decoding requirements
Fixes#777
Once this is agreed, we should also document conformance tests, but
it's unclear at the moment where they should live.
Signed-off-by: Jon Skeet <jonskeet@google.com>
fix: CESQL - Modify SUBSTRING to make it more like other SQLs
* Make SUBSTRING behave reasonably
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* SUBSTRING like other SQLs
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* pos = 0 case
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Fix SUBSTRING
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
feat: CESQL: Add CONCAT_WS
* Concat should have a delimiter
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Added CONCAT_WS
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
feat: CESQL - specify functions overloading
* Function definitions
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* More clarification
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* STRING accepts any
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Finished the sentence
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
fix: Clarification of the IN semantics
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* More clarification
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* prettier
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Apply changes
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* docs: update CONTRIBUTING with conventional commit suggestion
Signed-off-by: Grant Timmerman <timmerman+devrel@google.com>
* bad commit
Signed-off-by: Grant Timmerman <timmerman+devrel@google.com>
* add push
Signed-off-by: Grant Timmerman <timmerman+devrel@google.com>
* ci: add comment on action
Signed-off-by: Grant Timmerman <timmerman+devrel@google.com>
* docs: update contributing with note about conventional commits
Signed-off-by: Grant Timmerman <timmerman+devrel@google.com>
* CESQL draft
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Added <> and != operators
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Fixed number-literal
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Other suggestions
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Other suggestion
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Suggestions
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* truncated division
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Type casting draft
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Type casting draft
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Added set type
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Prettier
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Relax a bit the partitioning extension
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Mention streaming as a use case
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Fix spec
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Subscription API Changes based on deep-dive
Changes based on our discussions, fixes required for unambiguous code-gen, adding credential types for outbound push-delivery
- Proper operationIds
- New subscription object attributes
- Rearranged protocol settings such that they inherit from a common base
- Introduced the "basic" filters as distinct filter types
- added "all", "any", "not" filters
I've done some validation of the spec with the Swagger code generator and NSwag. For most languages, the output for the polymorphic constructs like filters and protocol settings and credentials is as expected, meaning that the protocol settings and credentials form a class hierarchy and the generated filter objects can form a graph.
Signed-off-by: clemensv <clemensv@microsoft.com>
* modified filter structure
Signed-off-by: clemensv <clemensv@microsoft.com>
* Eliminated extra filter class
Signed-off-by: clemensv <clemensv@microsoft.com>
* Filter references
Signed-off-by: clemensv <clemensv@microsoft.com>
* Bugfix in create
Signed-off-by: clemensv <clemensv@microsoft.com>
* corrections per feedback
Signed-off-by: clemensv <clemensv@microsoft.com>
Co-authored-by: clemensv <clemensv@microsoft.com>
* fix field id /subscriptions/{id} operation
path fields must have required=true according to OAS 3.0.3 and can not be omitted
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* fix: request body is required in create and update
according to subscription spec (markdown), the content body of the
POST action to create a subscription is required. Also fixing required
content body in the PUT action that updates a subscription.
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* fix protocolsettings parameter
Currently uses anyOf but in a parameter holding a single object, which
can hold only oneOf the provided schema objects. It's correct that only
a single protocol setting can be chosen per subscription.
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* correcting protocolsettings
reverting oneOf to anyOf to allow ambiguously classifiable protocolsettings maps to be valid content
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* fix specversions
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* fix subscriptiondialect type specification
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* add missing id, epoch and subscriptiondialect
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* separate service attributes from event type attributes
renaming generic "type" object schema to "eventtype" for clarity
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
* align events attribute description
Signed-off-by: Manuel Stein <manuel.stein@nokia-bell-labs.com>
Updated the URL for the original and now missing blog post on webhooks from progrium.com. The new URL now points to a snapshot of the old blog post at archive.org.
Signed-off-by: Bruce Snyder <bruce.snyder@gmail.com>
* docs: typos and wordsmithing for 1.1
This commit addresses a few typos and does a little wordsmithing on some
of the docs and specs meant to land in the 1.1 release.
In the proprietary-specs.md document, I used MUST in a couple of places.
Not sure if this is appropriate for that doc.
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: incorporate PR feedback
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: incorporate PR feedback
Signed-off-by: Lance Ball <lball@redhat.com>
- fixed psuedo schema in discovery - config has 'types' not 'values
- typos
- clarify that URL points to the DE entry and not the actual service
- show sample JSON serializaton of a Subscription
- outline for HTTP REST API
- move "dialect" under "filter"
- s/filter/filters/
- make "dialect" an URI-reference
- add "subscriptiondialects" to the DE spec
Signed-off-by: Doug Davis <dug@us.ibm.com>
* allow values to be null
Signed-off-by: Scott Nichols <snichols@vmware.com>
* fix typo, add minlength
Signed-off-by: Scott Nichols <snichols@vmware.com>
* Draft of WebSockets protocol binding
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Fix
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Wrong wording
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Renamed subprotocols
Specified frame type
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Specify that json batch format is not supported
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Fix conflicts
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* [Discovery] import and bulk POST support
Signed-off-by: Doug Davis <dug@us.ibm.com>
* add bit about uniqueness
Signed-off-by: Doug Davis <dug@us.ibm.com>
* epoch processing
Signed-off-by: Doug Davis <dug@us.ibm.com>
* fix typo
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Re-Introducing Protocol Buffer Representation
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* required and optional attributes are explicitly represented
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* tweaks and examples to address review comments
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Updated following dicussion during 6/28 weekly meeting.
- Only required attributes are formally represented.
- Optional & Extension attributes are carried in the map.
- Documentation & Examples changed as appropiate.
- Added version marker to proto & java package.
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* tweaks
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Include spec reference
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Changed media-type designation as-per weekly call discussion
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Fixed links to work before merging to master
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Really fixing the links this time
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* DO NOT MERGE: data representation proposal, attribute type naming change
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Moved back to one_of representation for Data, updated docs
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Minor tweaks based on review commentary
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* - Modified proto map property to increase raadability of generated code.
- Clarified usage of `dataschema` CloudEvent attribute.
- Updated examples.
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Changes based on review comments
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Added language specific package definitions
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* - Removed c# directive, can be added back in a later PR.
- Added Java directive for seperate fies.
- re-pluralized 'attributes' to follow proto convention.
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Tidied 'one-of' names
Signed-off-by: Day, Jeremy(jday) <jday@paypal.com>
* Add a version/timestamp attribute
Per Scott's suggestion, this adds a new attribute that can be used to
know when an entry has been updated. It can be used as an e-tag type of
thing or to know when, during an import, the entity being imported is
older than what the discovery endpoint already has.
I wasn't sure if a counter or a timestamp would be better, so I added
both so people can see how both look.
I'm leaning more towards a timestamp since it give a bit more information.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* minor tweaks
Signed-off-by: Doug Davis <dug@us.ibm.com>
* use epoch
Signed-off-by: Doug Davis <dug@us.ibm.com>
* remove management text
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Add more clarity around our REST APIs
Signed-off-by: Doug Davis <dug@us.ibm.com>
* nits
Signed-off-by: Doug Davis <dug@us.ibm.com>
* add clarifying text
Signed-off-by: Doug Davis <dug@us.ibm.com>
* typo
Signed-off-by: Doug Davis <dug@us.ibm.com>
* split apis into 2
Signed-off-by: Doug Davis <dug@us.ibm.com>
* add epoch stuff
Signed-off-by: Doug Davis <dug@us.ibm.com>
* DE updates epoch
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Rename services types[].type to types[].name; Drop /types endpoint
Signed-off-by: Scott Nichols <snichols@vmware.com>
* rename types to events, and unrename type from name
Signed-off-by: Scott Nichols <snichols@vmware.com>
* spell check
Signed-off-by: Scott Nichols <snichols@vmware.com>
* Add required protocols to example service
Signed-off-by: Scott Nichols <snichols@vmware.com>
* ran lint
Signed-off-by: Scott Nichols <snichols@vmware.com>
* New maintainers rules
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* fmt
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Grammar
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Made the requirements a little bit more vague
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Wrapped to 80 lines
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Add an ID field that can not change
Signed-off-by: Doug Davis <dug@us.ibm.com>
* more text
Signed-off-by: Doug Davis <dug@us.ibm.com>
* more updates
Signed-off-by: Doug Davis <dug@us.ibm.com>
* use 'name' instead of 'matching'
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Fix minor markdown and text issues for Discovery
Signed-off-by: Scott Nichols <snichols@vmware.com>
* fix rando url
Signed-off-by: Scott Nichols <snichols@vmware.com>
* revert the beta.4 change
Signed-off-by: Scott Nichols <snichols@vmware.com>
* Add ce_discovery.yaml
Signed-off-by: Thomas Weingartner <thomas.weingartner@gmx.ch>
* Removed id from ce_discovery.yaml
Signed-off-by: Thomas Weingartner <thomas.weingartner@gmx.ch>
* fix: typo
Signed-off-by: Remi Cattiau <remi@cattiau.com>
* fix: Types return seems to be a map not an array
Signed-off-by: Remi Cattiau <remi@cattiau.com>
* Draft of SDK governance
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Nit on security patches
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Formatted
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* CI
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* First pass
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Update and refactored
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* Removed criteria about commits on master
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
* docs: add common processes for SDK maintainers and contributors
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: correct anchor links in sdk/pr_guidelines.md
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: store docs under governance instead of sdk folder
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: store docs under community
Signed-off-by: Lance Ball <lball@redhat.com>
* Add blog post where cloud events are used
Signed-off-by: Bernd Rücker <bernd.ruecker@camunda.com>
* fixed typo in link
Signed-off-by: Bernd Rücker <bernd.ruecker@camunda.com>
* Add property "sourcetemplate" to entity eventprovider/service
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Added restriction to Level 1 templates
Made sourcetemplate a child of type
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Revamp of discovery
- Restructued things so that it didn't feel like we were repeating the
definition of the attributes. For example, we now just define Service
and its attributes once and then simply point back to that, and its
serialization, from the Query section
- got rid of "provider" in the model. Technically, that's an impl detail
and consumers should not care what generated the CE - it's things like
the source and service that they'll care about (or even know about)
- introduced the term "Discovery Endpoint" as the "thing" that implements
the spec
- Added a JSON encoding definition
- Modified the query stuff so that all data is returned in one shot.
I believe the current spec implied that people would need to do one
query to get the list of Types of interest and then another one to pull
back the details of each Service. I think it's more natural to do it all
in one. If this is too large then we should consider query flags to
indicate if people want the deep result-set or an shallow result-set.
- I made Service and Type have a non-human friendly main keys since names
will change over time but these keys need to be static and therefore
machine usable. `description` can be used for human readable names.
Probably other minor things that I can't remember. I basically just
went from top to bottom touching stuff that felt odd as I was reading
but I think it's closer now to being something that someone could
sit down and implement w/o too many gaps.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* add 'name' and 'url'
Signed-off-by: Doug Davis <dug@us.ibm.com>
* typos
Signed-off-by: Doug Davis <dug@us.ibm.com>
* klaus's review
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Clarified that JSON format is a MUST, if structured content mode is supported.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Added AMQP,Kafka and MQTT
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
Direct copy from: https://gist.github.com/duglin/5920f706ee0ce608b0be1fa2e3669ce5
I took the liberty of includeing Klaus' sourcetemplate stuff since it
seems like people are ok with and I wanted to show what it would look like
when in use.
Signed-off-by: Doug Davis <dug@us.ibm.com>
Closes#621
And moved a few terms to order them in the order in which the event flows,
starting with the Service. If people want alphabetical, I'd be ok with that
too.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* update discovery API with full REST paths and types.
Signed-off-by: Mike Helmick <helmick@google.com>
* fix typo
Signed-off-by: Mike Helmick <helmick@google.com>
* address review comments.
Signed-off-by: Mike Helmick <helmick@google.com>
* a few cleanups on wording
Signed-off-by: Mike Helmick <helmick@google.com>
* Minor updates to Cloud Events Primer
As a recent entrant into the SIG I thought it would be a good opportunity to read through all the documentation and to suggest
improvements where appropriate.
Signed-off-by: vinayvenkat <vinayvenkat@yahoo.com>
* Incorporate review comments
Signed-off-by: vinayvenkat <vinayvenkat@yahoo.com>
* first (rough) draft of discovery api
Signed-off-by: Mike Helmick <helmick@google.com>
* fix missing ref
Signed-off-by: Mike Helmick <helmick@google.com>
* address first round of comments on discovery
Signed-off-by: Mike Helmick <helmick@google.com>
* address first round of comments on discovery
Signed-off-by: Mike Helmick <helmick@google.com>
* fix spelling/typo type errors
Signed-off-by: Mike Helmick <helmick@google.com>
* address comments, remove source
Signed-off-by: Mike Helmick <helmick@google.com>
* fix merge conflicts
Signed-off-by: Mike Helmick <helmick@google.com>
* fix merge conflicts
Signed-off-by: Mike Helmick <helmick@google.com>
* fix merge conflicts
Signed-off-by: Mike Helmick <helmick@google.com>
Add some guidance for how to determine when an incoming message is a binary
CE vs some random non-CE message. The same receiver might accept CE and non-CE
messages so we should have an interoperable way for them to know what they're
getting
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Added a paragraph about nested events to the primer
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Added a paragraph about nested events to the primer
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* line length <= 80 characters
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Changed wording in the description of extensions from "in-memory" format
to "stand-alone event format" to better reflect the recent terminology
changes in the spec.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Removed sections about in-memory formats
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Line length
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Formatting
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
Clarified definition of extension attributes to separate:
1. Core event data model definition of extension attributes.
2. Bindings must serialize extension attributes.
3. Advice about defining extension attributes.
Signed-off-by: Alan Conway <aconway@redhat.com>
* Changed name from transport to protocol binding.
Adjusted the protocol binding to the definition of event format that is introduced in #521.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Fixed a link
Removed the separate AMQP format definition
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Fixed links
Worked on comments from the PR
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Fixed link to already released amqp-transport-binding.md
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Rephrased a sentence in type mapping section of binary mode according to what was discussed on the WG call.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Further refinements
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
Clarify the meaning of missing datacontentype, when it is allowed, and
what that means when translating events between formats/protocols.
Also replaced "transport" with "protocol" everywhere, I believe that
is now the preferred term. "Transport" is not defined in the terminology.
Fixes#520
Signed-off-by: Alan Conway <aconway@redhat.com>
- s/0.4-wip/1.0-rc1/
- s/URI-reference/URI/ in scheme section for spec.md - per issue #511 since it
was just a typo
- updated Roadmap to say we completed 1.0-rc1 milestone
Signed-off-by: Doug Davis <dug@us.ibm.com>
* issue 498 - require extensions to have ce- version
Signed-off-by: Doug Davis <dug@us.ibm.com>
* fix mqtt
Signed-off-by: Doug Davis <dug@us.ibm.com>
* add pointer for mark
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Syntax fixes
Evan noticed we have more than one #data header so I tried to fix that.
Also, we still used a complex/map in an example.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Moves the naming section to a more apporpiate spot.
Renamed an example extension per Vlad's suggestion.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Update AVRO mappings to match current event schema and type system.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Address @duglin feedback.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Make AVRO spec support nested JSON object data translated to structured form
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Update Avro format definition to match avsc file.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* s/may/can/
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Fix up JSON type mappings
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Fix type mapping for AMQP
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Add `data` to AMQP.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Add payload data to amqp-format.md
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Update AMQP data encoding per discussion in #492
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Update HTTP transport to define Context-Encoding header mapping and more clearly define percent-encoding rules.Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Update "maps" language to use "corresponds to".
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Remove datacontentencoding and simplify header encoding rules.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Fix last reference to `datacontentencoding`
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Fix comma
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* `data` is not an attribute any more.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Unicode is capitalized, spell out final decoding is UTF-8.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Fix up extra links
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* missing "the"
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Remove mention of unicode, which is not needed
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Fix RFC2119 terms
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* s/optional/OPTIONAL/ per duglin
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* Changed datacontentencoding to dataencoding
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* remove dataencoding and intro data_base64 in JSON
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* Consolidated handling of "data" in the JSON spec
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* Link fix
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* link fix
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* Cleanup Map and add URI in formats
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Re-add 'Type System' heading, as it is referenced from formats
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Header indentation
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Explain URI-references and be smart with Strings
I can't think of a good reason why URI-references should be allowed to
be blank since that seems about as useful as the property not being
there at all.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* changed based on today's call
Signed-off-by: Doug Davis <dug@us.ibm.com>
It's been mentioned that we have no provision for a leave-of-absence
(e.g. vacations) w.r.t. voting rights. Luckily, we don't vote very often
and they're usually land-slides so I don't think it's impacted anything, but
we should probably have some kind of official allowance for it.
See what ya'll think...
Signed-off-by: Doug Davis <dug@us.ibm.com>
* s/schemaurl/dataschemaurl/ to be consistent
Let's discuss. But I tend to think it's better to get this right
for v1.0 than to continue to be inconsistent and let a pre-v1.0
version dictate things forever.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* per today's call
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Fix signoff, changes based on the comments
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Fixes based on the PR comments
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Verifing the avro-format.md
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Fix the alphabetized list
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Fixes based on the comments
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Update the avro schema
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Update the def based on the new avro schema
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Update the avro schema
- remove: float, boolean and long
- change field name: metadata to attribute
Signed-off-by: Fabio José <fabiojose@gmail.com>
Briefly detail the importance and challenges of persistence and the measured approach to addressing it and its requirements within the CloudEvents specification.
Closes#143Closes#276Closes#378
Signed-off-by: Erik Erikson <erik.erikson@gmail.com>
* Follow-on PR from https://github.com/cloudevents/spec/pull/300
Kafka transport binding for CloudEvents, similar to the HTTP binding and proposed NATS, MQTT, AMQP bindings.
Signed-off-by: Neil Avery <neil@confluent.io>
* addressing remaining cloudEvent attribute names
Kafka transport binding for CloudEvents, similar to the HTTP binding and proposed NATS, MQTT, AMQP bindings.
Signed-off-by: Neil Avery <neil@confluent.io>
* Intermediaries MUST forward OPTIONAL attributes, if the want to ignore them.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* line wrap to 80 characters
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Correct relative links
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Change from MUST to SHOULD
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
Extend the non-goals section to clarify what is simply out of scope and
what is in scope but the WG thinks is a bad idea. The latter category
deserves fuller explanations for newcomers.
Signed-off-by: Thomas Bouldin <inlined@google.com>
Typo and grammar fixes to primer.
Signed-off-by: Thomas Bouldin <inlined@google.com>
trying to address some comments
Signed-off-by: Doug Davis <dug@us.ibm.com>
wordsmithing
Signed-off-by: Doug Davis <dug@us.ibm.com>
Closes#188
I think the rest of #188 is already addressed by our recent PRs around
uniqueness of IDs.
/cc @ljnelson
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Update to title format.
Signed-off-by: Scott Nichols <nicholss@google.com>
* Ran 'prettier --write --list-different --no-color --prose-wrap=always'.
Signed-off-by: Scott Nichols <nicholss@google.com>
* Add some guidance on how to construct CloudEvents
Since not all event producers will generate CloudEvents natively, it might
be good to provide some guidance around how the CE attributes should be
populated when the CE producer isn't the event producer.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* More edits
Signed-off-by: Doug Davis <dug@us.ibm.com>
* clarify split between source and producer better
Signed-off-by: Doug Davis <dug@us.ibm.com>
* type system change
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* added references to data type string encodings
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* format and transport fixes for type system changes
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* Added producer, consumer and intermediate to terminology section.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Finished the definitions of source, producer, consumer and intermediary.
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Fixed typo and wording
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Fixed usage of 'may'
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Fix typo
Eliminate ambiguities in definition of producer
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
* Source as the context of the occurence
Signed-off-by: Klaus Deissner <klaus.deissner@sap.com>
See #209.
Defines a partitionKey extension attribute for use with message brokers
that support partitioning.
Signed-off-by: James Roper <james@jazzy.id.au>
Reword "id" and "source" to clarify uniqueness requirements.
Examples to show different approaches to generating unique source/IDs
Clarify producer/consumer responsibilities.
Signed-off-by: Alan Conway <aconway@redhat.com>
No semantic changes, just some re-ordering to make it easier to follow/read:
- created REQUIRED and OPTIONAL attributes sub-sections
- moved all attribtues into the appropriate sub-sections
- alphabetized the attributes in each section
I think this makes it easier for people implementing the spec to
1) find the attribute they're looking for since it's alphabetized now,
2) know which attributes they MUST support since they're all in one
section now
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Bump the version used in master to 0.3 of the spec.
Signed-off-by: Scott Nichols <nicholss@google.com>
* feedback was to use a wip tag. done.
Signed-off-by: Scott Nichols <nicholss@google.com>
* Add dataref, describe claim check pattern
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Implement Dougs suggestions
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Clarify content of data and dataref MUST be identical
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Move dataref to extension
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Fix links
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Ran pretter.io command on all markdown.
Signed-off-by: Scott Nichols <nicholss@google.com>
* fix wacky markdown format.
Signed-off-by: Scott Nichols <nicholss@google.com>
* reapply linter.
Signed-off-by: Scott Nichols <nicholss@google.com>
* HTTP Transport Binding for batching JSON
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Move JSON Batch into JSON Format; more generic HTTP transport
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Make Travis happy: don't use lowercase should/have
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Implement suggestions of Clemens
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* s/contenttype/datacontenttype/
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* add non-batching to clarify which format MUST be supported
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* minLength for non-empty attributes, add schemaurl
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Remove the 'const' from 'specversion' attribute
Signed-off-by: Fabio José <fabiojose@gmail.com>
Closes#354
2 reasons for this change:
1 - it just makes sense to me that if you have a `foo` property, then
the property the describes its type is called `footype`, not `bartype`.
2 - when a transport, like http, already has a `contenttype` property, there
could be unnecessary confusion when the CloudEvents property is serialized
along side the transport one. Meaning, people might use the wrong one
since their names are almost the same.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Transports are responsible for batching messages
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Batching in binding or in native spec
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Specify range of Integer type exactly
"32 bit integer" is under-specified, there are multiple ways to encode an
integer in 32 bits with different ranges (signed, unsigned, twos-complement,
ones-complement etc.)
Proposed new wording: "signed 32-bit twos-complement"
Signed-off-by: Alan Conway <aconway@redhat.com>
* Integer range - correct wrapping and numeric typo.
Signed-off-by: Alan Conway <aconway@redhat.com>
* Specify the media type for proto representations
Signed-off-by: Rachel Myers <rachelmyers@google.com>
* Add `MUST` to media types in proto and json
Signed-off-by: Rachel Myers <rachelmyers@google.com>
- fix mailing list info
- add pointer to the shanghai presentations
- add refs to our SDK work
- remove old f2f comment
Signed-off-by: Doug Davis <dug@us.ibm.com>
The Primer is a good location to document some of our design decisions
without cluttering the spec with non-normative text. This is my first pass
at some of the reasons why we're serializing extensions as top-level
properties in JSON.
Note, as you review this please focus on whether the text accurately
reflects the reasons why we ended up with our current design. This PR
should not be used to question whether it was a good or bad decision.
If you want to question the decision itself then a new issue (or PR) is the
best place to do that - I'm just trying to document history.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* adding Integer mapping for JSON and AMQP
Signed-off-by: clemensv <clemensv@microsoft.com>
* clarifying scope of Any to include all other types
Signed-off-by: clemensv <clemensv@microsoft.com>
* Add protobuf format
This PR is meant for the spec as it is currently written, where the
extensions is an explicit bag. The focus of this PR is on the protobuf
format itself, not on the extensions proposal.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Avoid redundant BytesWrapper by using bytes directly.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Fix markdown links
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Reformat to be 80 columns.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Only allow JSON data payloads
Efficient representation of binary bytes or proto payloads is not a
must have. The "data" field can represent bytes or serialized protos,
just in a less efficient matter.
I removed usages of these features to make the standard JSON look the
same as the CE JSON.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Clarify attributing casing styles
protobuf lower_snake_case attrs are turned into lowerCamelCase in the
proto standard JSON form. But it is legal to have top level attribute
fields that are not lowerCamelCase.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Update protobuf spec to use new design that favors forwards
compatibility over type safety.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Fix URL to pass linter
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Fix whitespace
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Address PR comments, add example.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Turn RFC references into links.
Signed-off-by: Spencer Fang <spencerfang@google.com>
* PR comments
- s/Attributes Atttributes/Attributes/
- s/required/mandated/
- Add protobuf-format.md to Makefile
- add cloudevent.proto
Signed-off-by: Spencer Fang <spencerfang@google.com>
* remove HTTP modes section
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Reword confusing use of speficiation / below
Signed-off-by: Spencer Fang <spencerfang@google.com>
* Some suggestions in Example section
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Update the urn examples
- Add examples in source section and update the JSON examples.
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Update spec.md
Remove the second example of serialized JSON and update the `source` examples list.
Signed-off-by: Fabio José <fabiojose@gmail.com>
* Special encodings for extensions
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* Special encodings for extensions in transports
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* RFC2119 errors
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
Closes#268
Per #268 I tried to make it clear which specs are optional by adding
sections/headers to the table of docs we produce.
ping @dmlb2000 - does this address your concern?
Signed-off-by: Doug Davis <dug@us.ibm.com>
While it might be clear based on our version number where we are
in our plan/roadmap - I thought it might be good to put dates next
to each milestone.
For v0.1 it was easy, I just picked the date the release was cut.
For "Setup" it was a bit of a guess since its a unclear when we actually
complete ALL of those items. I picked Feb 26th since that was the date
we merged Dan's PR to add a LICENSE doc. It seemed as good of a date as
any - not sure it matters much.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Add 'ordinal' attribute
Fixes: #191
I didn't address any of the comments in #191 because I wasn't sure how
the WG in general felt about them. So please speak up in this PR if you'd like
to see a change.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* use sequence and add more clarifying text
Signed-off-by: Doug Davis <dug@us.ibm.com>
* grab Christoph's suggested text
Signed-off-by: Doug Davis <dug@us.ibm.com>
* more tweaks
Signed-off-by: Doug Davis <dug@us.ibm.com>
- Update our description since we're not really new any more
- Add a note about when we became a sandbox project, and a ref to
the TOC minutes in which we were approved - mainly so there's a record
of it someplace. I've been asked for this info before and it should be more
easily found.
Signed-off-by: Doug Davis <dug@us.ibm.com>
Right now our 'approvers' == 'Voting members', so make that clear in our
OWNERS doc - just for completeness.
Signed-off-by: Doug Davis <dug@us.ibm.com>
- Just writing down what we do/have today
- We're not a WG, we're a sandbox project so I tried
to remove all references to us being a WG (I left the refs to the
Serverless WG though)
- wrapped some stuff at 80 cols
- replaced some tabs with spaces, because tabs are evil
Signed-off-by: Doug Davis <dug@us.ibm.com>
* qualifying projects
de-facto standards often emerge from the community
joining a consortia should not be necessary
Signed-off-by: Sarah Allen <sarahallen@google.com>
* addressed feedback in the PR comments
Signed-off-by: Sarah Allen <sarahallen@google.com>
* Add clarification on including additional context attributes
Signed-off-by: cathyhongzhang <cathy.h.zhang@huawei.com>
* Incorporate Christoph's comment on duplication
Signed-off-by: cathyhongzhang <cathy.h.zhang@huawei.com>
* Update the PR per Christoph's comment
Signed-off-by: cathyhongzhang <cathy.h.zhang@huawei.com>
* move the paragraph to the "extension attributes" section
Signed-off-by: cathyhongzhang <cathy.h.zhang@huawei.com>
* Address comments in the meeting--move the section to the end
of "Extension Attributes", and change "it is still suggested" to "SHOULD"
Signed-off-by: cathyhongzhang <cathy.h.zhang@huawei.com>
* minor edit to change "MAY" to "can"
Signed-off-by: cathyhongzhang <cathy.h.zhang@huawei.com>
* async voting
this is based on what I've observed in TOC votes and seems to work well in practice (though I've only followed a few votes)
Signed-off-by: Sarah Allen <sarahallen@google.com>
* clarifications to address feedback
Signed-off-by: Sarah Allen <sarahallen@google.com>
* yes/no vote comments to avoid accidental voting
Signed-off-by: Sarah Allen <sarahallen@google.com>
* Paragraph on keeping extension attributes minimal
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Guidance applies to single CloudEvent, better wording
Signed-off-by: Christoph Neijenhuis <christoph.neijenhuis@commercetools.de>
* Move extension serialization into other specs & rename extensions.md
Replacement for PR #225
Made spec.md into more of an infoSet spec that just defines the properties
of a CloudEvent and abstractly talks about how extension properties can be
defined by others.
Added some text to the primer to help clarify when extensions should be
used and when extra properties are meant to be part of the event
(`data`) itself.
Renamed "extensions.md" to "experimental.md" because there was some
confusion that CE extensions were only allowed to come from that doc.
Hopefully, renaming it will make it clear that extensions can come from
anythere - not just that doc.
Left each serialization/transport-binding spec to deal with extensions
in their own way. Most say nothing special about them, which means they
will be serialized just like any other CE attribute.
Based on the discussions in:
https://docs.google.com/document/d/1h4A4ys3x6OmfEIv1gqlOt0kroVRfRO3JewlLunlxTIg/edit# ,
while it wasn't unanimous it did seem there was more people leaning towards
serializing extensions like all other attributes due to the pain involved
in: dealing with promotion of extension to 1st class properties, the desire
to pass along all extensions (top-level or nested ones) to backend components,
and support for future attributes added to the spec. See the doc for more
details.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Qualifying-protocols-and-encodings.md
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* updating per discussion in the PR
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* Adding open source organization clause for equivalence with protocol standards org clause
Signed-off-by: Clemens Vasters <clemensv@microsoft.com>
* move into the primer
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Add sampling extension.
This pull request supercedes #76 and builds upon #242.
Per agreement at the f2f meeting 2018-06-15, this will be ratified
as an extension but not currently as part of the core spec. The
early inclusion of the spec and the ability for side-cars to impose
sampling early in the pipeline make it reasonable to start with
this as an extension.
I know the original author hoped to make this a core feature, though
there are two upsides:
1. Due to other decisions on 2018-06-15, this will have zero impact
on JSON encoding (but will in Proto and may in SDKs)
2. Extensions now get a whole document. This lets us pitch sampling
in more detail.
Necessary additional changes:
* Added `Integer` to our type system
* Added convention for how scalar extensions should be documented.
I'm not really excited about this proposal so others are welcome.
Special thanks to @maplebed for kicking this effort off.
Signed-off-by: Thomas Bouldin <inlined@google.com>
* PR feedback; also add conttent to extensions.md
Signed-off-by: Thomas Bouldin <inlined@google.com>
* @douglin doesn't like the world 'may' 😉
Signed-off-by: Thomas Bouldin <inlined@google.com>
* Add 'e.g.' to list of scalar types in conventions
Signed-off-by: Thomas Bouldin <inlined@google.com>
In the 2018-06-15 f2f, we agreed to holistically revisit the spec
to look for issues that may arise with our spec in practice.
As a first swag, I placed this in the 0.3 milestone since it
has security-related issues. I could also see putting this in
the 0.4 milestone since it finalizes serialization and protocl mappings.
Signed-off-by: Thomas Bouldin <inlined@google.com>
It's very helpful to use IDEs that let us visualize the rendered markdown. It would be more helpful to not worry about local project files getting added to commits.
Signed-off-by: Thomas Bouldin <inlined@google.com>
* Extends extensions.md to clarify that RFC 2119 keywords
are only for those who implement an extension.
* Notes our resolved rules that each memory format defines
extensions' placement and each transport binding defines
a default placement which an extension may override.
* Refactor the contents now in extensions/distributed-tracing.md
as a first SWAG at a reusable template.
Signed-off-by: Thomas Bouldin <inlined@google.com>
I think this merits the initial statnce of being an extension
for a few reasons:
1. I want to adhere to the CNCF policy against kingmaking even
though I think the world is better off with one interoperable
tracing standard.
2. Nothing in the trace state should have an effect on
application logic.
3. I like exercising our thoughts on extensions.
Signed-off-by: Thomas Bouldin <inlined@google.com>
I found it a bit odd that the spec never included an example CloudEvent.
People would have to go to one of the other docs to actually see what
one looked like. For me, its sometimes easier to full understand something
when I can see a real example of what is being defined. Having people leave
our doc to see one felt odd so I just copied one from the JSON mapping spec.
While in there I noticed that our TOC wasn't consistent w.r.t. what we
included so I put all 1st and 2nd level headings in there (excluding the
ones before the TOC).
Also, the TOC included references to two docs w/o any explanation around
them - the usecases and example events from some popular eventing systems.
None of these are normative so they felt really odd to be in our spec's
TOC. However, since they are useful bits of information, I added a pointer
to them from our README instead. This also provides a bit of explanation
about why they exist in our repo at all.
Signed-off-by: Doug Davis <dug@us.ibm.com>
* Fix typo on spec.md
- in the source section
Signed-off-by: Justin Yoo <justin.yoojh@gmail.com>
* Add an open source project
- CloudEvents.NET as a .NET implementation of the spec
Signed-off-by: Justin Yoo <justin.yoojh@gmail.com>
* Fix document links
- point to the correct relative location
Signed-off-by: Justin Yoo <justin.yoojh@gmail.com>
* Remove example blurb from open-source.md
Signed-off-by: Justin Yoo <justin.yoojh@gmail.com>
* propoes a process for highlighting code experiments
This was an Action Item from Serverless WG meeting
Signed-off-by: Sarah Allen <sarahallen@google.com>
* link to community section from main readme
small improvements addressing feedback on the PR
Signed-off-by: Sarah Allen <sarahallen@google.com>
* fix punctuation
Signed-off-by: Sarah Allen <sarahallen@google.com>
[](https://bestpractices.coreinfrastructure.org/projects/6770)
Events are everywhere. However, event producers tend to describe events
differently.
The lack of a common way of describing events means developers must constantly
re-learn how to receive events. This also limits the potential for libraries,
re-learn how to consume events. This also limits the potential for libraries,
tooling and infrastructure to aide the delivery of event data across
environments, like SDKs, event routers or tracing systems. The portability and
environments, like SDKs, event routers or tracing systems. The portability and
productivity we can achieve from event data is hindered overall.
Enter CloudEvents, a specification for describing event data in a common way.
CloudEvents seeks to ease event declaration and delivery across services,
platforms and beyond.
CloudEvents is a specification for describing event data in common formats to
provide interoperability across services, platforms and systems.
CloudEvents is a new effort and it's still under active development. However,
its working group has received a surprising amount of industry interest,
ranging from major cloud providers to popular SaaS companies. Our end goal is
| `x = y: Boolean x Boolean -> Boolean` | Returns `true` if the values of `x` and `y` are equal |
| `x != y: Boolean x Boolean -> Boolean` | Same as `NOT (x = y)` |
| `x <> y: Boolean x Boolean -> Boolean` | Same as `NOT (x = y)` |
| `x AND y: Boolean x Boolean -> Boolean` | Returns the logical and of `x` and `y` |
| `x OR y: Boolean x Boolean -> Boolean` | Returns the logical or of `x` and `y` |
| `x XOR y: Boolean x Boolean -> Boolean` | Returns the logical xor of `x` and `y` |
| `x = y: Integer x Integer -> Boolean` | Returns `true` if the values of `x` and `y` are equal |
| `x != y: Integer x Integer -> Boolean` | Same as `NOT (x = y)` |
| `x <> y: Integer x Integer -> Boolean` | Same as `NOT (x = y)` |
| `x < y: Integer x Integer -> Boolean` | Returns `true` if `x` is less than `y` |
| `x <= y: Integer x Integer -> Boolean` | Returns `true` if `x` is less than or equal to `y` |
| `x > y: Integer x Integer -> Boolean` | Returns `true` if `x` is greater than `y` |
| `x >= y: Integer x Integer -> Boolean` | Returns `true` if `x` is greater than or equal to `y` |
| `x * y: Integer x Integer -> Integer` | Returns the product of `x` and `y` |
| `x / y: Integer x Integer -> Integer` | Returns the result of dividing `x` by `y`, rounded towards `0` to obtain an integer. Returns `0` and a _MathError_ if `y = 0` |
| `x % y: Integer x Integer -> Integer` | Returns the remainder of `x` divided by `y`, where the result has the same sign as `x`. Returns `0` and a _MathError_ if `y = 0` |
| `x + y: Integer x Integer -> Integer` | Returns the sum of `x` and `y` |
| `x - y: Integer x Integer -> Integer` | Returns the value of `y` subtracted from `x` |
| `x = y: String x String -> Boolean` | Returns `true` if the values of `x` and `y` are equal (case sensitive) |
| `x != y: String x String -> Boolean` | Same as `NOT (x = y)` (case sensitive) |
| `x <> y: String x String -> Boolean` | Same as `NOT (x = y)` (case sensitive) |
The AND and OR operators MUST be short-circuit evaluated. This means that
whenever the left operand of the AND operation evaluates to `false`, the right
operand MUST NOT be evaluated. Similarly, whenever the left operand of the OR
operation evaluates to `true`, the right operand MUST NOT be evaluated.
| `LENGTH(x): String -> Integer` | Returns the character length of the String `x`. |
| `CONCAT(x1, x2, ...): String^n -> String`, n >= 0 | Returns the concatenation of `x1` up to `xN`. |
| `CONCAT_WS(delimiter, x1, x2, ...): String x String^n -> String`, n >= 0 | Returns the concatenation of `x1` up to `xN`, using the `delimiter` between each string, but not before `x1` or after `xN`. |
| `TRIM(x): String -> String` | Returns `x` with leading and trailing whitespaces (as defined by unicode) trimmed. This does not remove any characters which are not unicode whitespace characters, such as control characters. |
| `LEFT(x, y): String x Integer -> String` | Returns a new string with the first `y` characters of `x`, or returns `x` if `LENGTH(x) <= y`. Returns `x` if `y < 0` and a _FunctionEvaluationError_. |
| `RIGHT(x, y): String x Integer -> String` | Returns a new string with the last `y` characters of `x` or returns `x` if `LENGTH(x) <= y`. Returns `x` if `y < 0` and a _FunctionEvaluationError_. |
| `SUBSTRING(x, pos): String x Integer x Integer -> String` | Returns the substring of `x` starting from index `pos` (included) up to the end of `x`. Characters' index starts from `1`. If `pos` is negative, the beginning of the substring is `pos` characters from the end of the string. If `pos` is 0, then returns the empty string. Returns the empty string and a _FunctionEvaluationError_ if `pos > LENGTH(x) OR pos < -LENGTH(x)`. |
| `SUBSTRING(x, pos, len): String x Integer x Integer -> String` | Returns the substring of `x` starting from index `pos` (included) of length `len`. Characters' index starts from `1`. If `pos` is negative, the beginning of the substring is `pos` characters from the end of the string. If `pos` is 0, then returns the empty string. If `len` is greater than the maximum substring starting at `pos`, then return the maximum substring. Returns the empty string and a _FunctionEvaluationError_ if `pos > LENGTH(x) OR pos < -LENGTH(x)` or if `len` is negative. |
| `ABS(x): Integer -> Integer` | Returns the absolute value of `x`. If the value of `x` is `-2147483648` (the most negative 32 bit integer value possible), then this returns `2147483647` as well as a _MathError_. |
#### 3.5.3 Function Errors
As specified in 3.3, in the event of an error a function MUST still return a
valid return value for its defined return type. A CESQL engine MUST guarantee
that all built-in functions comply with this. For user defined functions, if
they return one or more errors and fail to provide a valid return value for
their return type the CESQL engine MUST return the zero value for the return
type of the function, along with a _FunctionEvaluationError_.
### 3.6. Evaluation of the expression
Operators and functions MUST be evaluated in order of precedence, and MUST be
evaluated left to right when the precedence is equal. The order of precedence
| `Integer -> String` | Returns the string representation of the integer value in base 10, without leading `0`s. If the value is less than 0, the '-' character is prepended to the result. |
| `Integer -> Boolean` | Returns `false` if the integer is `0`, and `true` otherwise. |
| `String -> Integer` | Returns the result of interpreting the string as a 32 bit base 10 integer. The string MAY begin with a leading sign '+' or '-'. If the result will overflow or the string is not a valid integer an error is returned along with a value of `0`. |
| `String -> Boolean` | Returns `true` or `false` if the lower case representation of the string is exactly "true" or "false, respectively. Otherwise returns an error along with a value of `false` |
| `Boolean -> Integer` | Returns `1` if the boolean is `true`, and `0` if the boolean is `false`. |
| `Boolean -> String` | Returns `"true"` if the boolean is `true`, and `"false"` if the boolean is `false`. |
An example of how _Boolean_ values cast to _String_ combines with the case
insensitivity of CESQL keywords is that:
```
TRUE = "true" AND FALSE = "false"
```
will evaluate to `true`, while
```
TRUE = "TRUE" OR FALSE = "FALSE"
```
will evaluate to `false`.
When the argument types of an operator/function invocation don't match the
signature of the operator/function being invoked, the CESQL engine MUST try to
perform an implicit cast.
This section defines an **ambiguous** operator as an operator that is
overloaded with another operator definition with same symbol/name and arity but
different parameter types. Note: a function can not be ambiguous as it is not
allowed for two functions to have the same arity and name.
A CESQL engine MUST apply the following implicit casting rules in order:
1. If the operator/function is unary (argument `x`):
1. If it's not ambiguous, cast `x` to the parameter type.
1. If it's ambiguous, raise a _CastError_ and the cast result is `false`.
1. If the operator is binary (left operand `x` and right operand `y`):
1. If it's not ambiguous, cast `x` and `y` to the corresponding parameter
types.
1. If it's ambiguous, use the `y` type to search, in the set of ambiguous
operators, every definition of the operator using the `y` type as the
right parameter type:
1. If such operator definition exists and is unique, cast `x` to the type
of the left parameter
1. Otherwise, raise a _CastError_ and the result is `false`
1. If the function is n-ary with `n > 1`:
1. Cast all the arguments to the corresponding parameter types.
1. If the operator is n-ary with `n > 2`:
1. If it's not ambiguous, cast all the operands to the target type.
1. If it's ambiguous, raise a _CastError_ and the cast result is `false`.
For the `IN` operator, a special rule is defined: the left argument MUST be
used as the target type to eventually cast the set elements.
For example, assuming `MY_STRING_PREDICATE` is a unary predicate accepting a
_String_ parameter and returning a _Boolean_, this expression:
```
MY_STRING_PREDICATE(sequence + 10)
```
MUST be evaluated as follows:
1. `sequence` is cast to _Integer_ using the same semantics of `INT`
1. `sequence + 10` is executed
1. `sequence + 10` result is cast to _String_ using the same semantics of
`STRING`
1. `MY_STRING_PREDICATE` is invoked with the result of the previous point as
input.
Another example, in this expression `sequence` is cast to _Integer_:
```
sequence = 10
```
`=` is an arity-2 ambiguous operator, because it's defined for
`String x String`, `Boolean x Boolean` and `Integer x Integer`. Because the
right operand of the operator is an _Integer_ and there is only one `=`
definition which uses the type _Integer_ as the right parameter, `sequence`
is cast to _Integer_.
## 4. Implementation suggestions
This section is meant to provide some suggestions while implementing and
adopting the CloudEvents Expression Language. It's non-normative, hence none of
the below text is mandatory.
### 4.1. Error handling
Because CESQL expressions are total, they always define a return value,
included in the [type system](#31-type-system), even after an error occurs.
When evaluating an expression, the evaluator can operate in two _modes_, in
relation to error handling:
- Fail fast mode: When an error is triggered, the evaluation is interrupted and
returns the error, with the zero value for the return type of the expression.
- Complete evaluation mode: When an error is triggered, the evaluation is
continued, and the evaluation of the expression returns both the result and
the error(s).
Choosing which evaluation mode to adopt and implement depends on the use case.
## 5. Examples
_CloudEvent including a subject_
```
EXISTS subject
```
_CloudEvent including the extension 'firstname' with value 'Francesco'_
```
firstname = 'Francesco'
```
_CloudEvent including the extension 'firstname' with value 'Francesco' or the
subject with value 'Francesco'_
```
firstname = 'Francesco' OR subject = 'Francesco'
```
_CloudEvent including the extension 'firstname' with value 'Francesco' and
extension 'lastname' with value 'Guardiani', or the subject with value
'Francesco Guardiani'_
```
(firstname = 'Francesco' AND lastname = 'Guardiani') OR subject = 'Francesco Guardiani'
```
_CloudEvent including the extension 'sequence' with numeric value 10_
```
sequence = 10
```
_CloudEvent including the extension 'hop' and 'ttl', where 'hop' is smaller
than 'ttl'_
```
hop <ttl
```
## 6. References
- [RFC2119][rfc2119] Key words for use in RFCs to Indicate Requirement Levels
- Use "producer" and "consumer" instead of "sender" and "receiver"
- Clarification that intermediaries should forward optional attributes
- Remove constraint that attribute names must start with a letter
- Remove suggestion that attributes names should be descriptive and terse
- Clarify that a single occurrence may result in more than one event
- Add an Event Data section (replacing `data`), making event data a top level
concept rather than an attribute
- Introduce an Event Format section
- Define structured-mode and binary-mode messages
- Define protocol binding
- Add extension attributes into "context attributes" description
- Move mention of attribute serialization mechanism from "context attributes"
description into "type system"
- Change "transport" to "protocol" universally
- Introduce the Boolean, URI and URI-reference types for attributes
- Remove the Any and Map types for attributes
- Clarify which Unicode characters are permitted in String attributes
- Require all context attribute values to be one of the listed types,
and state that they may be presented as native types or strings.
- Require `source` to be non-empty; recommend an absolute URI
- Update version number from 0.3 to 1.0
- Clarify that `type` is related to "the originating occurrence"
- Remove `datacontentencoding` section
- Clarify handling of missing `datacontenttype` attribute
- Rename `schemaurl` to `dataschema`, and change type from URI-reference to URI
- Constrain `dataschema` to be non-empty (when present)
- Add details of how `time` can be generated when it can't be determined,
specifically around consistency within a source
- Add details of extension context attribute handling
- Add recommendation that CloudEvent receivers pass on non-CloudEvent metadata
- Sample CloudEvent no longer has a JSON object as a sample extension value
## v0.3 - 2019/06/13
- Update to title format. (#447)
- Remove blank section
- Misc. typo fixes
- Add some guidance on how to construct CloudEvents (#404)
- Size Constraints (#405)
- Type system changes // canonical string representation (#432)
- Add some additional design points for ID (#403)
- Add "Subject" context attribute definition
- Terminology additions for Source, Consumer, Producer and Intermediary (#420)
- Added partitioning extension (#218)
- Issue #331: Clarify scope of source and id uniqueness
- Added link to dataref.md
- Order the attributes section
- Fix bad hrefs for our images (#424)
- Master represents the future version of the spec, use the future version in the text. (#415)
- Adjust examples to include AWS CloudWatch events, our de facto central Event format, and remove valid-but-not-terribly-relevant SNS & Kinesis examples.
- Add dataref attribute and describe Claim Check Pattern (#377)
- Do some clean-up items for PR 406 that were missed
- Introducing "subject" (#406)
- Added datacontentencoding (#387)
- Add Apache RocketMQ proprietary binding with cloudevents
- Ran https://prettier.io/ command on all markdown. (#411)
- Privacy & Security (#399)
- clarify what OPTIONAL means
- Extensions follow attribute naming scheme introduced in #321
- add to README
- fix typo
- The linter can't abide placeholder links 🙄
- Collect proprietary specs in dedicated file
- Move "extension attributes" section down to end of context attributes
The following well-known extensions attributes MUST be used for data messages and
event messages (type one of `ua-keyframe`, `ua-deltaframe`, `ua-event`).
### sequence
Attribute as defined by [sequence extensions](./sequence.md) MUST map to [Data
Set Message Header](https://reference.opcfoundation.org/Core/Part14/v105/docs/7.2.5.4#Table164)
field `SequenceNumber`.
### traceparent
Attribute as defined by [distributed-tracing extension](./distributed-tracing.md)
to allow tracing from event publisher towards consumer.
### tracestate
Attribute as defined by [distributed-tracing extension](./distributed-tracing.md)
MAY be used to allow tracing from event publisher towards consumer.
### recordedtime
Attribute as defined by [recordedtime extension](./recordedtime.md) to
determine the latency between event publisher towards consumer.
## Attributes
### opcuametadatamajorversion
- Type: `Integer`
- Description: Links dataset message to the current version of the metadata.
Contains value from `MajorVersion` of [Data Set Message Header](https://reference.opcfoundation.org/Core/Part14/v105/docs/7.2.5.4#Table164) field `MetaDataVersion`.
- Constraints
- OPTIONAL but MUST NOT be present if `dataschema` is used
### opcuametadataminorversion
- Type: `Integer`
- Description: Links dataset message to the current version of the metadata.
Contains value from `MinorVersion` of [Data Set Message
"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as
described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
However, the scope of these key words is limited to when this extension is
used. For example, an attribute being marked as "REQUIRED" does not mean
it needs to be in all CloudEvents, rather it needs to be included only when
this extension is being used.
## Attributes
When both attributes are used, all `severitytext` values which MAY be produced
in a context of a `source` SHOULD be in a
[one-to-one and onto](https://en.wikipedia.org/wiki/Bijection) relationship
with all `severitynumber` values which MAY be produced by the same `source`.
### severitytext
- Type: `String`
- Description: Human readable text representation of the event severity (also
known as log level name).
This is the original string representation of the severity as it is known
at the source. If this field is missing and `severitynumber` is present then
the [short name](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#displaying-severity)
that corresponds to the `severitynumber` MAY be used as a substitution.
- Constraints
- OPTIONAL
- if present, MUST be a non-empty string
- SHOULD be uppercase
- RECOMMENDED values are `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, and
`FATAL`, but others MAY be used.
### severitynumber
- Type: `Integer`
- Description: Numerical representation of the event severity (also known as
log level number), normalized to values described in this document.
Severity of all values MUST be numerically ascending from least-severe
to most-severe. An event with a lower numerical value (such as a debug event)
MUST be less severe than an event with a higher numerical value (such as
an error event).
See OpenTelemetry for [exact severity number meanings](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber)
- Constraints
- REQUIRED
- if present, MUST NOT be negative
# References
- [Mapping of SeverityNumber](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#mapping-of-severitynumber)
- [Mapping of existing log formats to severity levels](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#appendix-a-example-mappings)