You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #114 is a STRUCTURAL REFERENCE ONLY - NOT a specification reference.
The maintainer (@jahow) provided PR #114 as an example of contribution structure and integration patterns for adding a new OGC API to the ogc-client library. This audit focuses exclusively on:
✅ What to learn from EDR PR #114:
File organization and directory structure
Navigator class patterns and URL builder conventions
Model definition patterns (interfaces, query options)
Test organization and fixture structure
Integration with main library exports
Code style and TypeScript conventions
Build and packaging integration
❌ What NOT to absorb from EDR:
EDR-specific API endpoints or resources
EDR query parameter names or semantics
EDR data models or response formats
EDR-specific validation logic
Any OGC API - Environmental Data Retrieval standard details
CSAPI implementation MUST follow OGC API - Connected Systems (OGC 23-001r2, OGC 23-002r1) specifications, NOT EDR specifications.
Contamination Risk Assessment
High-Risk Areas for EDR Contamination
Query Parameter Names: EDR uses parameters like parameter-name, coords, z, datetime - CSAPI has different filters
Resource Names: EDR has collections, instances, positions - CSAPI has systems, deployments, procedures, etc.
Data Formats: EDR responses vs CSAPI GeoJSON/SensorML formats
Validation Rules: EDR-specific validation should not appear in CSAPI validators
Verification Checklist for EDR Contamination
Before completion of this audit, verify:
No EDR-specific query parameters in CSAPI query options interfaces
No EDR resource names (collections, instances, positions, areas, locations, corridors, cubes, trajectories) in CSAPI code
No EDR response format expectations in CSAPI parsers
No EDR-specific validation in CSAPI validators
All CSAPI resources align with OGC 23-001r2/23-002r1, not EDR standard
URL patterns follow CSAPI spec, not EDR patterns (except where general OGC API patterns apply)
Audit Objective
Verify CSAPI implementation follows the structural patterns and integration conventions established by PR #114, while ensuring zero contamination from EDR-specific specifications. This audit focuses on code organization, not API specifics.
A. File Structure and Organization
A.1 Directory Structure Pattern (STRUCTURAL ONLY)
What to verify:
EDR Pattern:src/ogc-api/edr/ directory structure
CSAPI Implementation:src/ogc-api/csapi/ with similar organization
Verify file naming conventions match library standards
Verify directory structure is consistent with other OGC APIs in library
Audit: PR #114 Pattern Alignment (Structural Reference Only)
Parent Issue: #16 - Phase 6: Pre-Submission Audit⚠️
Tier: 2 - Maintainer Requirements & Patterns (CRITICAL)
Reference: camptocamp/ogc-client#114
Priority: CRITICAL
PR #114 is a STRUCTURAL REFERENCE ONLY - NOT a specification reference.
The maintainer (@jahow) provided PR #114 as an example of contribution structure and integration patterns for adding a new OGC API to the ogc-client library. This audit focuses exclusively on:
✅ What to learn from EDR PR #114:
❌ What NOT to absorb from EDR:
CSAPI implementation MUST follow OGC API - Connected Systems (OGC 23-001r2, OGC 23-002r1) specifications, NOT EDR specifications.
Contamination Risk Assessment
High-Risk Areas for EDR Contamination
parameter-name,coords,z,datetime- CSAPI has different filterscollections,instances,positions- CSAPI hassystems,deployments,procedures, etc.Verification Checklist for EDR Contamination
Before completion of this audit, verify:
Audit Objective
Verify CSAPI implementation follows the structural patterns and integration conventions established by PR #114, while ensuring zero contamination from EDR-specific specifications. This audit focuses on code organization, not API specifics.
A. File Structure and Organization
A.1 Directory Structure Pattern (STRUCTURAL ONLY)
What to verify:
src/ogc-api/edr/directory structuresrc/ogc-api/csapi/with similar organizationContamination Check:
A.2 Index File (src/ogc-api/csapi/index.ts)
What to verify:
src/ogc-api/csapi/index.tsContamination Check:
A.3 Main Module Export (src/index.ts)
What to verify:
ogc-api/edrogc-api/csapi(separate from EDR)src/index.tsContamination Check:
B. Model Definitions (model.ts)
B.1 Query Options Interfaces (PATTERN ONLY, NOT CONTENT)
What to verify:
?syntaxsrc/ogc-api/csapi/model.tsContamination Check:
parameter-name,coords,z,within,within-units)EDR Parameters to AVOID:
CSAPI Parameters (Examples):
B.2 Type Definitions (PATTERN ONLY)
What to verify:
src/ogc-api/csapi/geojson/,sensorml/,swe-common/Contamination Check:
B.3 Resource Interfaces (CSAPI-SPECIFIC)
What to verify:
Contamination Check:
C. Navigator Class (navigator.ts)
C.1 Class Structure (PATTERN ONLY)
What to verify:
src/ogc-api/csapi/navigator.tsContamination Check:
C.2 URL Builder Method Naming (PATTERN ONLY)
What to verify:
getResourcesUrl()(e.g.,getSystemsUrl())getResourceUrl(id)(e.g.,getSystemUrl(id))createResourceUrl()(e.g.,createSystemUrl())updateResourceUrl(id)(e.g.,updateSystemUrl(id))deleteResourceUrl(id)(e.g.,deleteSystemUrl(id))Contamination Check:
getCollectionsUrl()- generic, but should be CSAPI-specificgetInstancesUrl()- EDR-specificgetPositionsUrl()- EDR-specificgetAreasUrl()- EDR-specificgetLocationsUrl()- EDR-specificgetCorridorsUrl()- EDR-specificgetCubesUrl()- EDR-specificgetTrajectoriesUrl()- EDR-specificgetSystemsUrl(),getSystemUrl(id)getDeploymentsUrl(),getDeploymentUrl(id)getProceduresUrl(),getProcedureUrl(id)getSamplingFeaturesUrl(),getSamplingFeatureUrl(id)getPropertiesUrl(),getPropertyUrl(id)getDatastreamsUrl(),getDatastreamUrl(id)getObservationsUrl(),getObservationUrl(id)getControlStreamsUrl(),getControlStreamUrl(id)getCommandsUrl(),getCommandUrl(id)C.3 URL Construction Logic (PATTERN ONLY)
What to verify:
Contamination Check:
/systemsnot/collections/{collectionId}/instancesD. Parsers and Validators
D.1 Parser Pattern (STRUCTURE ONLY)
What to verify:
src/ogc-api/csapi/parsers/Contamination Check:
D.2 Validator Pattern (STRUCTURE ONLY)
What to verify:
src/ogc-api/csapi/validation/Contamination Check:
E. Testing Strategy
E.1 Test File Organization (PATTERN ONLY)
What to verify:
Contamination Check:
E.2 Mock Data and Fixtures
What to verify:
fixtures/ogc-api/csapi/or similarContamination Check:
F. Documentation Style
F.1 JSDoc Comments (STYLE ONLY)
What to verify:
Contamination Check:
G. Code Review Checklist for EDR Contamination
Before marking this audit complete, perform final contamination check:
G.1 String Literal Search
Search codebase for EDR-specific terms that should NOT appear:
G.2 Import Statement Review
ogc-api/edr/in CSAPI codeG.3 Type Definition Review
G.4 Test Fixture Review
H. Positive Pattern Alignment (What to Match)
These are the patterns to positively match from EDR (structural only):
✅ Directory Structure:
src/ogc-api/csapi/(likesrc/ogc-api/edr/)geojson/,sensorml/, etc.)✅ File Organization:
index.ts- exportsmodel.ts- query options and typesnavigator.ts- URL buildersformats.ts- format detection (if needed)✅ Navigator Method Patterns:
getResourcesUrl(),getResourceUrl(id)✅ TypeScript Conventions:
any✅ Test Organization:
*.spec.tsfiles mirror source structurefixtures/directory✅ Build Integration:
Verification Methodology
For Each Audit Section:
Contamination Response:
If ANY EDR-specific content found in CSAPI code:
Execution Status
Audit Date: TBD
Auditor: TBD
Overall Status: 🔴 NOT STARTED
Final Checklist
Before closing this audit:
PASS CRITERIA: Structural patterns match + ZERO contamination