- Help Topics: 1. A Short Introduction to IGSDB V2 2. What's Changed
1. A Short Introduction to IGSDB V2
Summary
The IGSDBv2 is an extension and enhancement of the IGSDB database. It includes more information about a wider range of products, and more ways to query and access that information. The database structure was redesigned to better represent the relationships between products, their properties and components, and their suppliers, while the web interface was also redesigned to make it easier to find and access the information users need.What's changed
The first version of the IGSDB moved away from the the largely flat, file-centric IGDB/CGDB (.mdb) world to a web-based database and a prototype API. In IGSDB v2, we've refined and extended both the database and the API, moving toward a normalized, relationship-first data model. In the process, we've greatly improved data quality, API clarity, and the overall codebase.
Data model
Products now explicitly reference their components, manufacturers, and related resources,
and complex assemblies (like venetian blinds) are represented as "compositions" with well-defined child products and structured
geometry/extra-data. Identifiers are modernized: the V1-only integer product_id
is deprecated in favor of a stable, opaque
token
identifier that travel consistently across APIs and versions and has semantic value for human readers.
Versioning, checksums, and provenance are tracked so data lineage is auditable.
API structure and documentation
The API surface is rebuilt for clarity and consistency. V2 introduces token-based retrieval and a clean separation between list and detail representations, with list endpoints focused on discovery and detail endpoints returning full spectral data and summaries. Data is shaped for consumers, for example:
- Spectral data and integrated summary values are more structured and contain more detail.
- Product relationships (components, manufacturers, equivalents) are explicit.
- Identifiers are stable and opaque, avoiding leakage of internal database details.
- More consistent and logical enumerated values (e.g. product type, subtype).
The API was also structured to support publication of new IGDB and CGDB versions from LBNL's companion tool, the "Checkertool", complete with fully documented and structured release notes.
Performance
Performance and reliability are addressed end-to-end. Heavy endpoints are fronted by prebuilt caches keyed by clear cache types; Celery workers build and refresh those caches asynchronously with atomic cache locks to avoid duplicate work; and timeouts/logging provide operational visibility. CSV generation and other one-off artifacts are handled transactionally with get_or_create/select_for_update patterns to prevent race conditions.
Developer ergonomics and operability
Finally, developer ergonomics and operability improved. The test framework was overhauled to use pytest, with factories and fixtures to simplify test setup and teardown, and more comprehensive test coverage. The codebase was restructured to separate apps by domain (products, versions, users) and the API classes were reorganized for clarity and consistency. Documentation was added and improved, including auto-generated API docs with Swagger/OpenAPI, and a new help section on the website.
Summary
Together, these changes shift IGSDB from a file-era, consumer-specific feed to a robust, API-first platform with a richer domain model, clearer contracts, and operational durability.