{"id":31445115,"url":"https://github.com/cuboulder/ucb_trust_schema","last_synced_at":"2026-01-20T16:48:26.231Z","repository":{"id":293083586,"uuid":"982422001","full_name":"CuBoulder/ucb_trust_schema","owner":"CuBoulder","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-29T18:49:51.000Z","size":119,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-29T19:23:32.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CuBoulder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-12T21:27:40.000Z","updated_at":"2025-09-29T17:16:27.000Z","dependencies_parsed_at":"2025-05-13T16:25:43.928Z","dependency_job_id":"3155e257-f076-41b2-a51f-b28fa5f4a71c","html_url":"https://github.com/CuBoulder/ucb_trust_schema","commit_stats":null,"previous_names":["cuboulder/ucb_trust_schema"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CuBoulder/ucb_trust_schema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuBoulder%2Fucb_trust_schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuBoulder%2Fucb_trust_schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuBoulder%2Fucb_trust_schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuBoulder%2Fucb_trust_schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CuBoulder","download_url":"https://codeload.github.com/CuBoulder/ucb_trust_schema/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CuBoulder%2Fucb_trust_schema/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277767647,"owners_count":25873630,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-30T22:53:23.517Z","updated_at":"2025-09-30T22:53:26.500Z","avatar_url":"https://github.com/CuBoulder.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trust Schema Module\n\nThe Trust Schema Module enables individual Drupal sites to declare and expose trust metadata on selected content nodes. This metadata helps establish the credibility and context of content when it's syndicated across different sites.\n\n## Features\n\n- Trust metadata fields for content nodes:\n  - Trust Role (e.g., primary source, secondary source)\n  - Trust Scope (e.g., department level, university level)\n  - Trust Contact (email for verification)\n  - Trust Topics (taxonomy terms categorizing the content)\n  - Trust Syndication Enabled (toggle for syndication)\n\n- JSON:API integration for exposing trust metadata\n- Custom form for managing trust metadata on nodes\n- Trust Topics taxonomy vocabulary for categorizing content\n\n## Installation\n\n1. Place the module in your Drupal installation's `modules/custom` directory\n2. Enable the module using Drush or the Drupal admin interface:\n   ```bash\n   drush en ucb_trust_schema\n   ```\n3. The module will automatically create the necessary database table and taxonomy vocabulary\n\n## Usage\n\n### Managing Trust Metadata\n\n1. Navigate to any content node\n2. Click the \"Trust Syndication\" tab\n3. Fill in the trust metadata fields:\n   - Select a Trust Role\n   - Choose a Trust Scope\n   - Enter a Trust Contact email\n   - Select one or more Trust Topics\n   - Enable/disable syndication as needed\n4. Save the changes\n\n### Accessing Trust Metadata via JSON:API\n\nTrust metadata is exposed through the JSON:API endpoints. \n\n#### Basic Syndicated Nodes Endpoint\n\nHere is the easiest way to just view all syndicated nodes:\n\n`/api/trust-schema/syndicated-nodes`\n\nThe response will include trust metadata in this format:\n```json\n{\n  \"data\": [{\n    \"id\": \"3\",\n    \"type\": \"basic_page\",\n    \"attributes\": {\n      \"title\": \"Example Page\",\n      \"trust_role\": \"primary_source\",\n      \"trust_scope\": \"department_level\",\n      \"trust_contact\": \"example@berkeley.edu\",\n      \"trust_topics\": [\"Science\", \"Mathematics\"],\n      \"trust_syndication_enabled\": true\n    }\n  }]\n}\n```\n\n#### Advanced JSON:API Endpoint\n\nFor more detailed access to trust metadata with related node and taxonomy information, use the following JSON:API endpoint:\n\n```\n/jsonapi/trust_metadata/trust_metadata?fields[trust_metadata--trust_metadata]=trust_role,trust_scope,type,trust_contact,timeliness,audience,trust_topics,node_id,syndication_consumer_sites,syndication_total_views,syndication_consumer_sites_list\u0026fields[taxonomy_term--trust_topic]=name\u0026fields[node--article]=title,body,path,created,changed\u0026include=trust_topics,node_id\n```\n\nThis endpoint returns:\n- Trust metadata fields (trust_role, trust_scope, type, trust_contact, timeliness, audience, trust_topics)\n- Related node information (title, body, path, created, changed)\n- Trust topic names\n- All relationships between these entities\n\nExample response:\n```json\n{\n  \"data\": [\n    {\n      \"type\": \"trust_metadata--trust_metadata\",\n      \"id\": \"23d1698c-6f66-4502-8f8e-469840942807\",\n      \"attributes\": {\n        \"trust_role\": \"primary_source\",\n        \"trust_scope\": \"department_level\",\n        \"trust_contact\": null,\n        \"trust_topics\": [\"Student Life\"],\n        \"node_id\": \"3\",\n        \"syndication_consumer_sites\": 3,\n        \"syndication_total_views\": 6,\n        \"syndication_consumer_sites_list\": \"consumer.ddev.site, discovery.ddev.site, secondcon.ddev.site\"\n      }\n    }\n  ]\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuboulder%2Fucb_trust_schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcuboulder%2Fucb_trust_schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuboulder%2Fucb_trust_schema/lists"}