Skip to content

Commit

Permalink
Merge pull request #973 from brentzundel/fsvp
Browse files Browse the repository at this point in the history
Add FSVP Credential for Agriculture Tech Demo 2024
  • Loading branch information
mkhraisha committed Sep 19, 2024
2 parents 2b3fb0c + f45c140 commit 4cea272
Show file tree
Hide file tree
Showing 2 changed files with 329 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/credentials-with-issuer-dependent-terms.json
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,10 @@
"type": "FoodDefenseInspectionCredential",
"count": 0
},
{
"type": "FVSPImporterCredential",
"count": 2
},
{
"type": "FSMATransformingCTECredential",
"count": 0
Expand Down
325 changes: 325 additions & 0 deletions docs/openapi/components/schemas/credentials/FVSPImporterCredential.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,325 @@
$linkedData:
term: FSVPImporterCredential
'@id': https://w3id.org/traceability#FSVPImporterCredential
title: FSVP Importer Credential
tags:
- Agriculture
description: >-
This credential represents a secure digital record of the KDEs (Key Data Elements)
required by an importer when asserting compliance to the Foreign Supplier
Verification Program (FSVP) to meet the requirements of the Food Safety
Modernization Act (FSMA).
Additional information about the Foreign Supplier Verification Program:
https://www.fda.gov/food/food-safety-modernization-act-fsma/fsma-final-rule-foreign-supplier-verification-programs-fsvp-importers-food-humans-and-animals
type: object
properties:
'@context':
type: array
readOnly: true
const:
- https://www.w3.org/2018/credentials/v1
- https://w3id.org/traceability/v1
default:
- https://www.w3.org/2018/credentials/v1
- https://w3id.org/traceability/v1
items:
type: string
enum:
- https://www.w3.org/2018/credentials/v1
- https://w3id.org/traceability/v1
type:
type: array
readOnly: true
const:
- VerifiableCredential
- FSVPImporterCredential
default:
- VerifiableCredential
- FSVPImporterCredential
items:
type: string
enum:
- VerifiableCredential
- FSVPImporterCredential
id:
type: string
name:
type: string
description:
type: string
issuanceDate:
type: string
expirationDate:
type: string
issuer:
$ref: ../common/Organization.yml
credentialSchema:
type: object
properties:
id:
title: Id
description: The URL of the schema file to be used to validate the shape of the JSON object
type: string
format: uri
example: https://w3id.org/traceability/openapi/components/schemas/credentials/FSVPImporterCredential.yml
default: https://w3id.org/traceability/openapi/components/schemas/credentials/FSVPImporterCredential.yml
readOnly: true
type:
title: Type
description: The type of validation to be run against the defined schema
const: OpenApiSpecificationValidator2022
credentialSubject:
type: object
properties:
importer:
$ref: ../common/Organization.yml
importerDUNS:
type: string
title: DUNS number of importer
shipment:
$ref: ../common/AgricultureParcelDelivery.yml
fsvpAssertion:
title: Importer's assertion of FSVP compliance or exemption
type: string
enum:
- FSVP Compliant
- FSVP Exempt
- FSVP Exempt, product is for research and evaluation (R&E)
additionalProperties: false
required:
- importer
- importerDUNS
- shipment
- fsvpAssertion
additionalProperties: false
required:
- '@context'
- type
- id
- issuanceDate
- issuer
- credentialSubject
example: |-
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/traceability/v1"
],
"id": "https://example.com/credential/123",
"type": [
"VerifiableCredential",
"FSVPImporterCredential"
],
"name": "FSVP Importer Credential",
"issuanceDate": "2021-12-11T03:50:55Z",
"issuer": {
"id": "did:web:organization.example.com",
"type": [
"Organization"
]
},
"credentialSubject": {
"importer": {
"type": [
"Organization"
],
"name": "Onwards A/S",
"location": {
"type": [
"Place"
],
"address": {
"type": [
"PostalAddress"
],
"streetAddress": "Sludevej 63",
"addressLocality": "Kgs. Lyngby",
"postalCode": "2800",
"addressCountry": "DK"
}
}
},
"importerDUNS": "00-123-4567",
"shipment": {
"type": [
"AgricultureParcelDelivery"
],
"deliveryAddress": {
"type": [
"PostalAddress"
],
"name": "Bartell - Doyle",
"streetAddress": "84189 Roberts Route",
"addressLocality": "Kautzerstad",
"addressRegion": "Louisiana",
"postalCode": "37950-5855",
"addressCountry": "Mongolia"
},
"originAddress": {
"type": [
"PostalAddress"
],
"name": "Marks, Runte and Bartell",
"streetAddress": "97696 Weissnat Pines",
"addressLocality": "Reynabury",
"addressRegion": "North Dakota",
"postalCode": "51361-9603",
"addressCountry": "Virgin Islands, U.S."
},
"foreignPortExport": {
"type": [
"Place"
],
"globalLocationNumber": "4947538126450",
"geo": {
"type": [
"GeoCoordinates"
],
"latitude": "40.5464",
"longitude": "-37.6146"
},
"address": {
"type": [
"PostalAddress"
],
"name": "Moen - Swift",
"streetAddress": "9746 Laron Gardens",
"addressLocality": "Port Flossie",
"addressRegion": "Hawaii",
"postalCode": "64687",
"addressCountry": "Djibouti"
},
"unLocode": "DKCPH"
},
"portOfEntry": {
"type": [
"Place"
],
"globalLocationNumber": "2184109798407",
"geo": {
"type": [
"GeoCoordinates"
],
"latitude": "38.8485",
"longitude": "-34.0883"
},
"address": {
"type": [
"PostalAddress"
],
"name": "Mills, Daugherty and Nader",
"streetAddress": "39514 Kulas Terrace",
"addressLocality": "East Avis",
"addressRegion": "Utah",
"postalCode": "45553",
"addressCountry": "Northern Mariana Islands"
},
"unLocode": "DKCPH"
},
"deliveryMethod": "Truck transport",
"trackingNumber": "866440000109",
"expectedArrival": "2021-03-14",
"specialInstructions": "The package is top-heavy so handle with appropriate caution.",
"consignee": {
"type": [
"Organization"
],
"name": "Ace Foodstuffs",
"description": "Agricultural goods shipping & distribution",
"email": "Hipolito58@acefoodstuffs.org",
"phoneNumber": "+1-595-555-0996",
"faxNumber": "+1-643-555-2094"
},
"agriculturePackage": [
{
"type": [
"AgriculturePackage"
],
"packageName": "Avocados, Bulk",
"grade": "AA",
"responsibleParty": {
"type": [
"Organization"
],
"name": "Example Responsible Party Organization",
"email": "Chadrick_Gibson@example.com",
"phoneNumber": "+1-470-555-7721"
},
"voicePickCode": "4642",
"harvestDate": "2021-03-14",
"labelImageUrl": "https://img.example.org/640/480/",
"labelImageHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"agricultureProduct": [
{
"type": [
"AgricultureProduct"
],
"plu": "94225",
"product": {
"type": [
"Product"
],
"manufacturer": {
"type": [
"Organization"
],
"email": "Ashlee.Grady@example.net",
"phoneNumber": "+1-300-555-2516"
},
"name": "Avocados",
"description": "Avocados, 4 pack boxes",
"weight": {
"type": [
"QuantitativeValue"
],
"unitCode": "hg/ha",
"value": "6960"
},
"sku": "81055399441"
},
"scientificName": "Persea americana",
"labelImageUrl": "https://img.example.org/033383401508/640/480/",
"labelImageHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
}
],
"shipper": {
"type": [
"Organization"
],
"name": "Green Fields",
"description": "Growing & packaging for high quality produce",
"email": "sales@greenfields.org",
"phoneNumber": "+1-474-555-8033"
},
"purchaser": {
"type": [
"Organization"
],
"name": "Ace Foodstuffs",
"description": "Agricultural goods shipping & distribution",
"email": "Hipolito58@acefoodstuffs.org",
"phoneNumber": "+1-351-555-3356",
"faxNumber": "+1-744-555-3782"
},
"carrier": {
"type": [
"Organization"
],
"email": "Adaline29@example.com",
"phoneNumber": "+1-853-555-5644"
},
"broker": {
"type": [
"Organization"
],
"name": "Koch LLC",
"leiCode": "54321351219389121979"
}
},
"fsvpAssertion": "FSVP Compliant"
}
}

0 comments on commit 4cea272

Please sign in to comment.