diff --git a/packages/assertions/assertions-td/manual.csv b/packages/assertions/assertions-td/manual.csv index cbe082dbb..72859d25e 100644 --- a/packages/assertions/assertions-td/manual.csv +++ b/packages/assertions/assertions-td/manual.csv @@ -1,49 +1,73 @@ "ID","Status","Comment","Assertion" -"bindings-requirements-scheme","null","not testable with Assertion Tester","Every form in a WoT Thing Description MUST follow the requirements of the Protocol Binding indicated by the URI scheme of its href member." -"bindings-server-accept","null","not testable with Assertion Tester","Every form in a WoT Thing Description MUST accurately describe requests (including request headers, if present) accepted by the Thing in an interaction." -"client-data-schema","null","not testable with Assertion Tester","A Thing acting as a Consumer when interacting with another target Thing described in a WoT Thing Description MUST generate data organized according to the data schemas given in the corresponding interactions." -"client-data-schema-accept-extras","null","not testable with Assertion Tester","A Thing acting as a Consumer when interacting with another Thing MUST accept without error any additional data not described in the data schemas given in the Thing Description of the target Thing." -"client-data-schema-no-extras","null","not testable with Assertion Tester","A Thing acting as a Consumer when interacting with another Thing MUST NOT generate data not described in the data schemas given in the Thing Description of that Thing. " -"client-uri-template","null","not testable with Assertion Tester","A Thing acting as a Consumer when interacting with another Thing MUST generate URIs according to the URI Templates, base URIs, and form href parameters given in the Thing Description of the target Thing." -sec-body-name-json-pointer-creatable,"null","not testable with Assertion Tester","When an element of a data schema indicated by a JSON pointer indicated in a body locator does not already exist in the indicated schema, it MUST be possible to insert the indicated element at the location indicated by the pointer. ", -"server-data-schema","null","not testable with Assertion Tester","A WoT Thing Description MUST accurately describe the data returned and accepted by each interaction." -"server-data-schema-extras","null","not testable with Assertion Tester","A Thing MAY return additional data from an interaction even when such data is not described in the data schemas given in its WoT Thing Description." -"server-uri-template","null","not testable with Assertion Tester","URI Templates, base URIs, and href members in a WoT Thing Description MUST accurately describe the WoT Interface of the Thing." -"td-context-default-language-direction-independence","null","not testable with Assertion Tester","However, when interpreting human-readable text, each human-readable string value MUST be processed independently." -"td-default-alg","null","not testable with Assertion Tester","The value associated with member alg if not given MUST be assumed to have the default value ES256." -"td-default-contentType","null","not testable with Assertion Tester","The value associated with member contentType if not given MUST be assumed to have the default value application/json." -"td-default-format","null","not testable with Assertion Tester","The value associated with member format if not given MUST be assumed to have the default value jwt." -"td-default-http-method","null","not testable with Assertion Tester","When no method is indicated in a form representing an Protocol Binding based on HTTP, a Default Value MUST be assumed as shown in the following table." -"td-default-http-method_get","null","not testable with Assertion Tester","The value associated with member GET if not given MUST be assumed to have the default value Form with operation type readproperty" -"td-default-http-method_post","null","not testable with Assertion Tester","The value associated with member POST if not given MUST be assumed to have the default value Form with operation type invokeaction." -"td-default-http-method_put","null","not testable with Assertion Tester","The value associated with member PUT if not given MUST be assumed to have the default value Form with operation type writeproperty." -"td-default-idempotent","null","not testable with Assertion Tester","The value associated with member idempotent if not given MUST be assumed to have the default value false." -"td-default-in-apikey","null","not testable with Assertion Tester","The value associated with member in if not given MUST be assumed to have the default value query." -"td-default-in-basic","null","not testable with Assertion Tester","The value associated with member in if not given MUST be assumed to have the default value header." -"td-default-in-bearer","null","not testable with Assertion Tester","The value associated with member in if not given MUST be assumed to have the default value header." -"td-default-in-digest","null","not testable with Assertion Tester","The value associated with member in if not given MUST be assumed to have the default value header." -"td-default-op-actions","null","not testable with Assertion Tester","The value associated with member op if not given MUST be assumed to have the default value invokeaction." -"td-default-op-events","null","not testable with Assertion Tester","The value associated with member op if not given MUST be assumed to have the default value subscribeevent." -"td-default-op-properties","null","not testable with Assertion Tester","The value associated with member op if not given MUST be assumed to have the default value Array of string with the elements readproperty and writeproperty." -"td-default-qop","null","not testable with Assertion Tester","The value associated with member qop if not given MUST be assumed to have the default value auth." -"td-default-readOnly","null","not testable with Assertion Tester","The value associated with member readOnly if not given MUST be assumed to have the default value false." -"td-default-safe","null","not testable with Assertion Tester","The value associated with member safe if not given MUST be assumed to have the default value false." -"td-default-success","null","not testable with Assertion Tester","The value associated with member ""success"" if not given MUST be assumed to have the default value ""false""." -"td-default-writeOnly","null","not testable with Assertion Tester","The value associated with member writeOnly if not given MUST be assumed to have the default value false." -"td-expectedResponse-contentType","null","not testable with Assertion Tester","If the content type of the expected response differs from the content type of the form, the Form instance MUST include a name-value pair with the name response." -"td-expectedResponse-default-contentType","null","not testable with Assertion Tester","If no response name-value pair is provided, it MUST be assumed that the content type of the response is equal to the content type assigned to the Form instance." -"td-form-protocolbindings","null","not testable with Assertion Tester","If required, form objects MAY be supplemented with protocol-specific Vocabulary Terms identified with a prefix." -"td-format-validation-other-values","null","not testable with Assertion Tester","When a value that is not found in the known set of values is assigned to format, such a validation SHOULD succeed." -"td-json-open","null","not testable with Assertion Tester","TDs MUST be serialized according to the requirements defined in Section 8.1 of RFC8259 for open ecosystems." -"td-json-open_accept-byte-order","null","not testable with Assertion Tester","TD Processors MAY ignore the presence of a byte order mark rather than treating it as an error." -"td-json-open_no-byte-order","null","not testable with Assertion Tester","Implementations MUST NOT add a byte order mark (U+FEFF) to the beginning of a TD document." -"td-ns-multilanguage-content-negotiation","null","not testable with Assertion Tester","In cases where the default language has been negotiated, an @language member MUST be present to indicate the result of the negotiation and the corresponding default language of the returned content." -"td-ns-multilanguage-content-negotiation-no-multi","null","not testable with Assertion Tester","When the default language has been negotiated successfully, TD documents SHOULD include the appropriate matching values for the members title and description in preference to MultiLanguage objects in titles and descriptions members. " -"td-ns-multilanguage-content-negotiation-optional","null","not testable with Assertion Tester","Note however that Things MAY choose to not support such dynamically-generated TDs nor to support language negotiation (e.g., because of resource constraints)." -"td-processor-serialization","null","not testable with Assertion Tester","A TD Processor MUST be able to serialize Thing Descriptions into the JSON format and/or deserialize Thing Descriptions from that format, according to the rules noted in and." -"td-security-binding","null","not testable with Assertion Tester","If a Thing requires a specific access mechanism for an interaction, that mechanism MUST be specified in the security configuration of the Thing Description." -"td-security-in-query-over-uri","null","not testable with Assertion Tester", "The value uri SHOULD be specified for the name in in a security scheme only if query is not applicable." -"td-security-no-extras","null","not testable with Assertion Tester","If a Thing does not require a specific access mechanism for an interaction, that mechanism MUST NOT be specified in the security configuration of the Thing Description." -"td-security-no-secrets","null","not testable with Assertion Tester","For all security schemes, any private keys, passwords, or other sensitive information directly providing access should be shared and stored out-of-band and MUST NOT be stored in the TD." -"td-vocabulary-defaults","null","not testable with Assertion Tester","When assignments in a TD are missing, a TD Processor MUST follow the Default Value assignments expressed in the table of." -"well-known-operation-types-only","null","not testable with Assertion Tester","operations types SHOULD NOT be arbitrarily set by servients." \ No newline at end of file +"bindings-requirements-scheme","null","not testable with Assertion Tester", +"bindings-server-accept","null","not testable with Assertion Tester", +"client-data-schema","null","not testable with Assertion Tester", +"client-data-schema-accept-extras","null","not testable with Assertion Tester", +"client-data-schema-no-extras","null","not testable with Assertion Tester", +"client-uri-template","null","not testable with Assertion Tester", +"sec-body-name-json-pointer-creatable","null","not testable with Assertion Tester", +"server-data-schema","null","not testable with Assertion Tester", +"server-data-schema-extras","null","not testable with Assertion Tester", +"server-uri-template","null","not testable with Assertion Tester", +"td-context-default-language-direction-independence","null","not testable with Assertion Tester", +"td-default-alg","null","not testable with Assertion Tester", +"td-default-contentType","null","not testable with Assertion Tester", +"td-default-format","null","not testable with Assertion Tester", +"td-default-http-method","null","not testable with Assertion Tester", +"td-default-http-method_get","null","not testable with Assertion Tester", +"td-default-http-method_post","null","not testable with Assertion Tester", +"td-default-http-method_put","null","not testable with Assertion Tester", +"td-default-idempotent","null","not testable with Assertion Tester", +"td-default-in-apikey","null","not testable with Assertion Tester", +"td-default-in-basic","null","not testable with Assertion Tester", +"td-default-in-bearer","null","not testable with Assertion Tester", +"td-default-in-digest","null","not testable with Assertion Tester", +"td-default-op-actions","null","not testable with Assertion Tester", +"td-default-op-events","null","not testable with Assertion Tester", +"td-default-op-properties","null","not testable with Assertion Tester", +"td-default-qop","null","not testable with Assertion Tester", +"td-default-readOnly","null","not testable with Assertion Tester", +"td-default-safe","null","not testable with Assertion Tester", +"td-default-success","null","not testable with Assertion Tester", +"td-default-writeOnly","null","not testable with Assertion Tester", +"td-expectedResponse-contentType","null","not testable with Assertion Tester", +"td-expectedResponse-default-contentType","null","not testable with Assertion Tester", +"td-form-protocolbindings","null","not testable with Assertion Tester", +"td-format-validation-other-values","null","not testable with Assertion Tester", +"td-json-open","null","not testable with Assertion Tester", +"td-json-open_accept-byte-order","null","not testable with Assertion Tester", +"td-json-open_no-byte-order","null","not testable with Assertion Tester", +"td-ns-multilanguage-content-negotiation","null","not testable with Assertion Tester", +"td-ns-multilanguage-content-negotiation-no-multi","null","not testable with Assertion Tester", +"td-ns-multilanguage-content-negotiation-optional","null","not testable with Assertion Tester", +"td-processor-serialization","null","not testable with Assertion Tester", +"td-security-binding","null","not testable with Assertion Tester", +"td-security-in-query-over-uri","null","not testable with Assertion Tester", +"td-security-no-extras","null","not testable with Assertion Tester", +"td-security-no-secrets","null","not testable with Assertion Tester", +"td-vocabulary-defaults","null","not testable with Assertion Tester", +"well-known-operation-types-only","null","not testable with Assertion Tester", +"privacy-auth-users-only","null","not testable with Assertion Tester","Only authorized users SHOULD be provided access to the Thing Description for a Thing." +"privacy-centralized-ids","null","not testable with Assertion Tester","TD identifiers SHOULD NOT be generated using a centralized authority." +"privacy-essential-metadata-only","null","not testable with Assertion Tester","Only the amount of information needed for the level of authorization and the use case SHOULD be provided in a TD." +"privacy-immutable-id-as-property","null","not testable with Assertion Tester","Ideally, any required immutable identifiers SHOULD only be made available via affordances, such as a property, whose value can only be obtained after appropriate authentication and authorization, and managed separately from the TD identifier." +"privacy-mutable-identifiers","null","not testable with Assertion Tester","All identifiers used in a TD SHOULD be mutable, and in particular there SHOULD be a mechanism to update the id of a Thing when necessary." +"privacy-temp-id-metadata","null","not testable with Assertion Tester","Any temporary ID generated to manage TDs, for example an ID for a database or directory service, SHOULD NOT contain metadata describing the Thing or from the TD itself." +"sec-body-name-json-pointer-type","null","not testable with Assertion Tester","." +"sec-inj-no-intl-markup","null","not testable with Assertion Tester","HTML markup SHOULD NOT be used for internationalization purposes in TD strings." +"security-context-secure-fetch","null","not testable with Assertion Tester","If it is necessary to fetch a context definition file, an implementation SHOULD first attempt to use HTTP over TLS even when only an HTTP URL is given." +"security-jsonld-expansion","null","not testable with Assertion Tester","Consumers SHOULD set and enforce limits on memory usage to prevent buffer overflow and resource exhaustion during JSON-LD processing." +"security-mutual-auth-td","null","not testable with Assertion Tester","Thing Descriptions SHOULD be obtained only through mutually authenticated secure channels." +"security-no-execution","null","not testable with Assertion Tester","A WoT Thing Description JSON-LD serialization MUST NOT be passed through a code execution mechanism such as JavaScript's eval() function to be parsed." +"security-oauth-limits","null","not testable with Assertion Tester","To limit the scope and duration of access to Things, tokens SHOULD be used to manage access." +"security-remote-context","null","not testable with Assertion Tester","Constrained implementations SHOULD NOT follow links to remote contexts." +"security-server-auth-td","null","not testable with Assertion Tester","In cases where the Consumer is associated with a person, e.g. browsers, TDs MAY be obtained through a channel where only the TD provider is authenticated." +"security-static-context","null","not testable with Assertion Tester","Constrained implementations SHOULD use vetted versions of their supported context extensions managed statically or as part of a secure update process." +"td-context-ns-td10-namespacev10","null","not testable with Assertion Tester","TD 1.1 consumers MUST accept TDs satisfying the W3C WoT Thing Description 1.0 [[wot-thing-description]] specification." +"td-default-AdditionalResponseContentType","null","not testable with Assertion Tester","AdditionalExpectedResponse contentType value of the contentType of the Form element it belongs to." +"td-default-observable","null","not testable with Assertion Tester","PropertyAffordance observable false" +"td-processor-bidi-isolation","null","not testable with Assertion Tester","TD Processors SHOULD take care to use bidi isolation when presenting strings to users, particularly when embedding in surrounding text (e.g., for Web user interface)" +"td-producer-mixed-direction","null","not testable with Assertion Tester","TD producers SHOULD attempt to provide mixed direction strings in a way that can be displayed successfully by a naive user agent." +"td-security-extension","null","not testable with Assertion Tester","Additional security schemes MUST be Subclasses of the Class SecurityScheme." +"td-text-direction-first-strong","null","not testable with Assertion Tester","When metadata such as @direction is not present, TD Consumers SHOULD use [=first-strong detection=] as a fallback." +"td-text-direction-language-tag","null","not testable with Assertion Tester","For the MultiLanguage Map, TD Consumers MAY infer the [=base direction=] from the language tag of the individual strings." \ No newline at end of file diff --git a/packages/assertions/assertions-td/td-context-default-language.json b/packages/assertions/assertions-td/td-context-default-language.json index 397019918..214f91417 100644 --- a/packages/assertions/assertions-td/td-context-default-language.json +++ b/packages/assertions/assertions-td/td-context-default-language.json @@ -1,65 +1,24 @@ { "title": "td-context-default-language", "description": "One Map contained in an @context Array SHOULD contain a name-value pair that defines the default language for the Thing Description, where the name is the Term @language and the value is a well-formed language tag as defined by [[!BCP47]] (e.g., en, de-AT, gsw-CH, zh-Hans, zh-Hant-HK, sl-nedis). ", - "is-complex": true, + "is-complex": false, "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", - "if": { - "required": [ - "@context" - ] - }, - "then": { - "properties": { - "@context": { - "if": { - "type": "string" - }, - "then": { - "const": "td-context-default-language=not-impl" - }, - "else": { - "if": { - "$ref": "#/definitions/thing-context" - }, - "then": { - "const": "td-context-default-language=pass" - } - } - } - } - }, - "additionalProperties": true, - "definitions": { - "thing-context-w3c-uri": { - "type": "string", - "enum": [ - "https://www.w3.org/2019/wot/td/v1" - ] - }, - "thing-context": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/thing-context-w3c-uri" - } - ], - "additionalItems": { - "anyOf": [ - { - "type": "object", - "properties":{ - "@language":{ - "type":"string" - } - }, - "required":["@language"] + "required": [ + "@context" + ], + "properties": { + "@context": { + "type":"array", + "contains": { + "type":"object", + "properties": { + "@language":{ + "type":"string" } - ] + }, + "required": ["@language"] } - }, - "anyUri": { - "type": "string" } } } \ No newline at end of file diff --git a/packages/assertions/assertions-td/td-text-at-direction.json b/packages/assertions/assertions-td/td-text-at-direction.json index a6409803d..640c79d22 100644 --- a/packages/assertions/assertions-td/td-text-at-direction.json +++ b/packages/assertions/assertions-td/td-text-at-direction.json @@ -1,6 +1,6 @@ { "title": "td-text-at-direction", - "description": "The root element of a TD Serialization MUST be a JSON object that includes a member with the name @context and a value of type string or array that equals or respectively contains https://www.w3.org/2022/wot/td/v1.1. ", + "description": "Given that the Thing Description format is based on JSON-LD 1.1 [[?json-ld11]], @direction with the string values ltr, rtl and null value null MAY be used inside the @context to indicate the default text direction for the human readable strings in the entire TD document.", "is-complex": false, "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", @@ -14,7 +14,13 @@ "type":"object", "properties": { "@direction":{ - "type":"string" + "oneOf": [{ + "type":"string", + "enum":["ltr", "rtl"] + }, + { + "type":"null" + }] } }, "required": ["@direction"] diff --git a/packages/assertions/assertions-tm/manual.csv b/packages/assertions/assertions-tm/manual.csv index 4f2034bf9..7ab0a730f 100644 --- a/packages/assertions/assertions-tm/manual.csv +++ b/packages/assertions/assertions-tm/manual.csv @@ -1 +1,19 @@ -"ID","Status","Comment","Description" \ No newline at end of file +"ID","Status","Comment","Description" +"thing-model-td-generation-processor-extends","null","not testable with Assertion Tester","If used" +"thing-model-td-generation-processor-forms","null","not testable with Assertion Tester","Missing communication and/or security metadata details MUST be completed in the Thing Description instance based on Section and/or ." +"thing-model-td-generation-processor-imports","null","not testable with Assertion Tester","Copy all definitions from the input Thing Model to the resulting Partial TD instance. If used, the extension and imports feature MUST be resolved and represented in the Partial TD instance according to ." +"thing-model-td-generation-processor-optional","null","not testable with Assertion Tester","All optional interactions (listed in tm:optional) MAY be taken over to the Partial TD instance." +"thing-model-td-generation-processor-placeholder","null","not testable with Assertion Tester","If used, all placeholders (see Section ) in the Thing Model MUST be replaced with a valid corresponding value in the Partial TD." +"thing-model-td-generation-processor-required","null","not testable with Assertion Tester","All required interactions (not listed in tm:optional) MUST be taken over to the Partial TD instance." +"thing-model-td-generation-processor-type","null","not testable with Assertion Tester","The tm:ThingModel value of the top-level @type MUST be removed in the Partial TD instance." +"tm-derivation-validity","null","not testable with Assertion Tester","When a Thing Descriptions is instantiated by relying on a Thing Model, it SHOULD be valid according to that Thing Model." +"tm-overwrite-interaction","null","not testable with Assertion Tester","A Thing Model SHOULD NOT overwrite the JSON names defined within the properties, actions, and/or events Map of the extended Thing Model." +"tm-overwrite-types","null","not testable with Assertion Tester","Definitions SHOULD NOT be overwritten in such a way that possible instance values are no longer valid compared to the origin extended definitions." +"tm-placeholder-replacement","null","not testable with Assertion Tester","The placeholder labeling MUST be substituted with a concrete value (e.g., as JSON number, JSON string, JSON object, etc) when TD instance is created from the Thing Model." +"tm-ref-recursive-extensions","null","not testable with Assertion Tester","Recursive extensions leading to an infinite loop MUST NOT be defined." +"tm-tmOptional-resolver","null","not testable with Assertion Tester","The JSON Pointers of tm:optional MUST resolve to an entire interaction affordance Map definition." +"tm-tmRef-overwrite-possibility","null","not testable with Assertion Tester","If the intention is to override an existing JSON name-value pair definition from tm:ref, the same JSON name MUST be used at the same level of the tm:ref declaration that provides a new value." +"tm-tmRef-overwrite-process","null","not testable with Assertion Tester","The process to overwrite MUST follow the JSON Merge Patch algorithm as defined in [RFC7396] where the content of the referenced definition is patched with the new provided JSON name-value pairs." +"tm-tmRef-overwrite-semantic-meaning","null","not testable with Assertion Tester","Similar to tm:extends and to keep the semantic meaning, definitions SHOULD NOT be overwritten in such a way that possible instance values are no longer valid compared to the origin referenced definition." +"tm-tmRef2","null","not testable with Assertion Tester","Every time tm:ref is used, the referenced pre-definition and its dependencies (e.g., by context extension) MUST be assumed at the new defined definition." +"tm-versioning-1","null","not testable with Assertion Tester","When the Thing Model definitions change over time, this SHOULD be reflected in the version container." \ No newline at end of file