diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 0052ab1..ffc26e3 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -1,24 +1,25 @@ -To generate the docs: +#### To generate the docs: -``` -npm install -g @adobe/jsonschema2md - -jsonschema2md -d schema -o docs/schema -# generated output for whole folder is written to ./docs/schema -``` - -OR ``` pip install json-schema-for-humans -/Users/epugh/.asdf/installs/python/3.9.17/bin/generate-schema-doc --config-file jsfh-conf.yaml /Users/epugh/Documents/projects/ubi/schema/1.1.0/ /Users/epugh/Documents/projects/ubi/docs/html/1.1.0 +export UBI_VERSION=1.2.0 + +mkdir docs/html/${UBI_VERSION} +/Users/epugh/.asdf/installs/python/3.9.17/bin/generate-schema-doc --config-file jsfh-conf.yaml ./schema/$UBI_VERSION/ ./docs/html/$UBI_VERSION # generated html for whole folder is written to ./docs/html ``` We then check them into Github. +https://o19s.github.io/blob/main/docs/ -https://o19s.github.io/blob/main/docs/ +#### To release UBI + +1. Make sure to copy the last version (i.e. `schema/1.2.0)` to the next version (i.e. `schema/1.3.0`) +1. Make sure to update the version information in each .json file. +1. Build the docs into ./docs/html/1.3.0 +1. Update the home README.md file to point to the new version. diff --git a/docs/html/1.2.0/event.schema.html b/docs/html/1.2.0/event.schema.html new file mode 100644 index 0000000..70e10a8 --- /dev/null +++ b/docs/html/1.2.0/event.schema.html @@ -0,0 +1,22 @@ +
Version 1.2.0; last updated 2024-???. An event that occurred, typically in response to a user.
name of the application tracking UBI events.
Must be at most 100
characters long
"amazon-shop"
+
"ABC-microservice"
+
"doctor-search"
+
The name of the action that triggered the event. We have a set of common defaults, however you can pass in whatever you want.
Must be at most 100
characters long
The unique identifier of a query, typically a UUID, but can be any string.
"00112233-4455-6677-8899-aabbccddeeff"
+
Must be at most 100
characters long
"1234-user-5678"
+
The session of the user creating the interactions. This allows us to correlate the interactions with the other events created by a service that recognizes session IDs. Can be used to track unique visits for authenticated and anonymous users.
Must be at most 100
characters long
"84266fdbd31d4c2c6d0665f7e8380fa3"
+
The client issuing the query. This could be a unique browser, a microservice that performs searches, a crawling bot.
Must be at most 100
characters long
"5e3b2a1c-8b7d-4f2e-a3d4-c9b2e1f3a4b5"
+
"quepid-nightly-bot"
+
"BugsBunny::Firefox@0967084"
+
The user ID associated with the person performing the interactions being logged on the site. Can be null/empty in case of an unauthenticated user.
Must be at most 100
characters long
"5e3b2a1c-8b7d-4f2e-a3d4-c9b2e1f3a4b5"
+
When the event took place. This timestamp is formatted according to the ISO 8601 standard.
"2018-11-13T20:20:39+00:00"
+
Group various action_name
's into logical bins.
Must be at most 100
characters long
"QUERY"
+
"CONVERSION"
+
Optional text message for the log entry. For example, for a message_type of QUERY, we would expect the text to be about what the user is searching on.
Must be at most 1024
characters long
Extensible details about a specific event. A common example of an Additional Properties is the specific identifier of the user (user_id
). Note: a user identifier is different then the required client_id
attribute.
Structure which contains identifying information of the object returned from the query that the user interacts with (i.e.: a book, a product, a post, etc..).
The id that a user could look up and find the object instance within the document corpus. Examples include: ssn, isbn, ean, etc. Variants need to be incorporated in the object_id
, so for a t-shirt that is red, you would need SKU level as the object_id
.
Must be at most 256
characters long
"XYZ-12345"
+
"ISBN 0-061-96436-0"
+
"123"
+
The type of the object id that the user is searching for. For a social e-commerce site, these could include product, user, post, comment and so on.
Must be at most 100
characters long
The name of the field that has the id of the objects that will be stored in the backend queries data store. So it you have a query for products and want to save the SKUs, then this might be sku
and if you are querying for people, maybe this is ssn
. If you do not provide this value then the default primary identifier in your search index will be used. For example _id
on OpenSearch.
Must be at most 100
characters long
A unique id that the an individual search engine uses internally to index the object via. For example, in OpenSearch, think the _id
field in the indices.
Must be at most 256
characters long
"1"
+
"123456"
+
Additional Properties of any type are allowed.
Type: objectStructure that contains information on the location of the event origin, such as screen x,y coordinates, or the nth object out of 10 results.
The nth position of the document on the search results page.
The position of the document. For grid layout this would be left to right, ignoring wrapping.
1
+
3
+
24
+
The x,y coordinates on the screen for triggering an event.
The horizontal location on the page or screen of the event.
The vertical location on the page or screen of the event.
Additional Properties of any type are allowed.
Type: objectAdditional Properties of any type are allowed.
Type: objectVersion 1.2.0; last updated 2024-??. A query made by a user should include these attributes for UBI tracking.
The unique identifier of a query, typically a UUID, but can be any string.
"00112233-4455-6677-8899-aabbccddeeff"
+
Must be at most 100
characters long
"1234-user-5678"
+
The client issuing the query. This could be a unique browser, a microservice that performs searches, a crawling bot. If only authenticated users are tracked, then you could use a specific user id here, otherwise you should use something permanent and track user id as an Additional Property.
Must be at most 100
characters long
"5e3b2a1c-8b7d-4f2e-a3d4-c9b2e1f3a4b5"
+
"quepid-nightly-bot"
+
"BugsBunny::Firefox@0967084"
+
The query as the user entered it. No length limit specified.
Any query modifiers like filter choices or pagination. Other attributes such as experiment identifiers that need to be tracked with the query.
Additional Properties of any type are allowed.
Type: objectThe name of the field that has the id of the objects that will be stored in the backend queries data store. So it you have a query for products and want to save the SKUs, then this might be sku
and if you are querying for people, maybe this is ssn
. If you do not provide this value then the default primary identifier in your search index will be used. For example _id
on OpenSearch.
Must be at most 100
characters long
When the query was issued. This timestamp is formatted according to the ISO 8601 standard. In many implementations of the UBI Query plugin the timestamp will be set for you at the time of the query being run. If you are replaying data, or want to track the timezone of the caller specifically, instead of using the search engine's timezone, then you will need to provide the timestamp instead.
"2018-11-13T20:20:39+00:00"
+
Version 1.2.0; last updated 2024-??. The response to a query made by a user should support this schema.
The unique identifier of a query, typically a UUID, but can be any string.
"00112233-4455-6677-8899-aabbccddeeff"
+
Must be at most 100
characters long
"1234-user-5678"
+