Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RFC for Grid Catalog #14

Draft
wants to merge 122 commits into
base: master
from

Conversation

@adeebahmed
Copy link
Contributor

commented Jul 31, 2019

This RFC proposes a GS1-compatible implementation of Catalog for Grid. This component is intended to serve as a structure for creating an assortment of Grid products to enable the sharing of item master data between entities in a Grid network. The intention is to reuse to catalog to later build out higher-level applications that require a collection of products.

Signed-off-by: AdeebAhmed adeeb.ahmed@target.com

adeebahmed and others added 25 commits Mar 25, 2019
This RFC proposes a GS1-compatible implementation of Product for Grid. The component is intended to initially cover food items in accordance to the GS1 spec. The intention is to iterate on this product component to include more product types in the future.
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
This RFC describes Grid Primitives for Hyperledger Grid which provide a
reusable, standard approach to defining, storing, and consuming
properties within smart contracts, software libraries, and network-based
APIs.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Add the reference links for the original supply chain family and the
extended data types RFC

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Add the basic header information that would be appropriate for Sawtooth
transactions, including family name, family version, and namespaces.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Adds the location type, which is a pre-defined struct type for lat,long
pairs.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Add an unresolved question about how structs could be promoted to
first-class data types.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Add a SchemaList to provide for hash collisions

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Rename Location to LatLong (Latitude/Longitude values) which is a more
precise name for the primitive value.  Locations, in general are more
complex structures features address, names, etc, which can be built as
structs from the base primitive values.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Correct last use of Location (which was also misspelled).

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
This commit corrects the enum value example to use number values, as
described in the protobuf messages for the value type.  Additionally,
updates the description of the default value for enum instances.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Update the schema example to include the number_exponent field.

Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
The purpose of this type field is to be able to identify what type of product (GS1) this is.
It is inferable by the addressing namespace but would force clients to do extra parsing, if not included explicitly.

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
This is required to validate that the signing agent is an owner of the product being updated or deleted.
See rational/alternatives for further justification.

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
@agunde406

This comment has been minimized.

Copy link
Contributor

commented on 0000-product.md in 600916d May 29, 2019

Missing line wrap

@agunde406

This comment has been minimized.

Copy link
Contributor

commented on 0000-product.md in 600916d May 29, 2019

Why does this need to be added to the payload action when it should already be stored on the product itself?

This comment has been minimized.

Copy link
Contributor Author

replied May 29, 2019

You're right, refactoring into product.

adeebahmed added 3 commits May 29, 2019
This field should be a part of the product itself and only set on a ProductCreateAction.

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
ryjones and others added 30 commits Sep 29, 2019
Signed-off-by: Ry Jones <ry@linux.com>
Add default SECURITY policy
- AddProductsToCatalog operation is performed through catalog_product_create action
- RemoveProductsFromCatalog can be performed through catalog_product_delete action

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Removed extraneous slashes.
Signed-off-by: Sam Curren <telegramsam@gmail.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Minor formatting fix on 0005
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Redesign of catalog implementation
- Add addressing scheme for "catalog_product"
- Change wording for the new design
- Remove the concept of a product list in catalog
- Make the Name attribute mandatory

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Add schema for catalog product
- Reword parts of the RFC
- Add a definition for CatalogProduct

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Add property definition for catalog_id
- Reword some areas

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Using hash of the catalog_name for the catalog_id to avoid duplicate catalogs
- Takes up less space in the full catalog address
- Uses the generic hash rust provides

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Made catalog's addressing a composite address with gs1_company_prefix (org_id)
- Made catalog_products addressing a composite address with the catalog_id
- Started writing the transaction/payload requirements

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Catalog addresses should be build from the org_id, not gs1_company_prefix
it just so happens to be the gs1_company_prefix in the current state.

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Change hashing algo to SHA-3
- Add note about product inheritance
- Add explanation about the reference based implementation
- Add 0000-template.md

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Add transaction payload defintions of catalog & catalog_product
- Add catalog create, delete, and replicate action definitions
- Add validation requirements for those actions

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Duplication can be achived using catalog create
- Replication can be handeled client-side

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Add a clear description of what a "catalog_product" is

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Fix grammer/typos
- Move catalog_id to core attribute in catalog_product
- Update hashing algo example to SHA2-256
- Improve wording around catalog_product & its schema defined attributes

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Removed catalog sync function
- Started Catalog_Product actions implementation
- Started Catalog_Product operations implementation
- Considered tradeoffs on state store model

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- AddProductsToCatalog operation is performed through catalog_product_create action
- RemoveProductsFromCatalog can be performed through catalog_product_delete action

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
- Misc. typo fixes
- Remove seperate concepts of Activate, Deactivate, and Discontinue
- Merged them into one SetCatalogProductStatus function

Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Signed-off-by: AdeebAhmed <adeeb.ahmed@target.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.