Every data file in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/nordicsemi/bluetooth-numbers-database/llms.txt
Use this file to discover all available pages before exploring further.
v1/ directory of the Bluetooth Numbers Database is validated against a corresponding JSON Schema on every push and pull request via GitHub Actions CI. This ensures that all contributions conform to the expected structure, that no duplicate entries slip through, and that UUID strings match the exact uppercase hexadecimal format required by the Bluetooth Core Specification.
Three schemas
Thev1/ directory contains three JSON Schemas, each corresponding to a specific data file type:
-
attribute_schema.json— Validates the arrays inservice_uuids.json,characteristic_uuids.json, anddescriptor_uuids.json. Every GATT attribute entry must have auuid,identifier,name, andsourcefield, with the UUID matching a strict uppercase hex pattern. -
company_schema.json— Validates the array incompany_ids.json. Every company entry must have an integercodeand a stringname, mirroring the official Bluetooth SIG Company Identifiers list. -
appearance_schema.json— Validates the array ingap_appearance.json. Every appearance entry must have an integercategoryand a stringname, with an optionalsubcategoryarray of sub-category objects.
CI validation
Two GitHub Actions workflows run automatically on every push and pull request to ensure data integrity.Verify JSON Schemas (verify_json.yml)
This workflow runs npm test, which executes node validate. The validate.js script uses AJV (Another JSON Validator) to load every data list from the package index and validate it against its registered schema. If any entry in any file fails schema validation, the workflow exits with a non-zero code and the CI check fails.
Check No Duplicates (verify_no_duplicates.yml)
This workflow runs npm run verify, which executes node verify. The verify.js script performs additional semantic checks that go beyond what JSON Schema can express:
- Company entries — checks that all
codevalues are unique. - Appearance entries — checks that all
categoryvalues are unique. - GATT attribute entries — checks that all
identifiervalues are unique and that everyuuidstring matches the strict uppercase regex pattern.
Schema reference pages
Attribute Schema
JSON Schema for GATT Service, Characteristic, and Descriptor UUID entries.
Company Schema
JSON Schema for Bluetooth SIG Company Identifier entries.
Appearance Schema
JSON Schema for GAP Appearance category and sub-category entries.
Running validation locally
Clone the repository and install dependencies, then run either validation command:0 on success and 1 on failure, making them suitable for use in any CI pipeline.
The This regex is evaluated at runtime by
validate.js script uses AJV (Another JSON Validator) v6 to perform structural schema validation. The verify.js script additionally checks UUID format with the following regex applied to every GATT attribute UUID:verify.js and is separate from the identical pattern already declared inside attribute_schema.json.