CROP
ProjectsParts Services

Naming Conventions

This document describes the naming conventions used across the CROP-parts-services codebase.

Naming Conventions

This document describes the naming conventions used across the CROP-parts-services codebase.

File Naming

TypePatternExamples
Routeskebab-case.tsadmin-index.ts, cart-sync.ts, ctr-analytics.ts
Serviceskebab-case-service.tscache-invalidation-service.ts, dis-service.ts
Configkebab-case.tselasticsearch.ts, mongodb.ts
Transformer configskebab-case.config.tsbriggs-stratton.config.ts, hotsy.config.ts
Typeskebab-case.tssearch.ts, part.ts
Tests*.test.tssearch.test.ts, transformers.test.ts

Environment Variables

Naming Pattern: UPPER_SNAKE_CASE

Connection Variables (Full Name Prefix)

Used for connection credentials and URLs:

  • MONGODB_URI - MongoDB connection string
  • MONGODB_DB_NAME - Database name
  • ELASTICSEARCH_URL - Elasticsearch cluster URL
  • ELASTICSEARCH_USERNAME - Basic auth username
  • ELASTICSEARCH_PASSWORD - Basic auth password
  • ELASTICSEARCH_API_KEY - API key authentication

Feature/Config Variables (Short Prefix)

Used for feature flags and configuration:

  • ES_REQUEST_TIMEOUT_MS - Request timeout
  • ES_QUERY_TIMEOUT - Query timeout
  • ES_PIT_ENABLED - Point-in-time pagination
  • ES_LOG_QUERIES - Query logging
  • CTR_TRACKING_ENABLED - Click-through tracking
  • CTR_BATCH_SIZE - Batch size for CTR events

Convention Rationale: Connection credentials use full prefix (ELASTICSEARCH_*) for clarity in secrets management. Runtime config uses short prefix (ES_*) for brevity.

Type/Interface Naming

TypePatternExamples
TypesPascalCaseIndexedPart, SearchDocument, Manufacturer
SchemasPascalCaseSchemaSearchQuerySchema, PartSchema
EnumsPascalCaseEnumPriceBucketEnum, CatalogLevelEnum
Inferred typesPascalCasetype Part = z.infer<typeof PartSchema>

Function Naming

All functions use camelCase:

  • transformDoc() - Transform document
  • buildSearchQuery() - Build ES query
  • normalizePartNumber() - Normalize part number
  • asManufacturer() - Get manufacturer info

Manufacturer Codes

Three-Letter Codes (Uppercase)

Used internally and in SKUs:

  • NHL - New Holland
  • HOT - Hotsy
  • BNS - Briggs & Stratton
  • VNT - Ventrac
  • MCH - McHale
  • KUH - Kuhn

MongoDB Collection Names

Pattern: parts_{code} (lowercase)

  • parts_nhl - New Holland parts
  • parts_hot - Hotsy parts
  • parts_bns - Briggs & Stratton parts

Registry Keys (TRANSFORMER_CONFIGS)

Historical naming - matches source data collection names:

  • HOTSY - Archive collection
  • McHale - Archive collection
  • 'Briggs and Stratton' - Archive collection

Query Aliases

Configured in manufacturers.ts for flexible search:

  • hot, hsy, hotsyHOT
  • nh, nhl, newhollandNHL

Elasticsearch Index/Alias Naming

Index Pattern

parts_v{YYYYMMDDHHMMSS} - Versioned with timestamp

  • parts_v20260120093000 - Created Jan 20, 2026 at 09:30

Alias Pattern

parts_current suffix required:

  • parts_current - Main alias
  • parts_current_read - Read-only alias
  • parts_current_write - Write alias

Database Collections

Pattern: snake_case

  • autocomplete_ctr_events
  • payment_intents
  • user_carts
  • webhook_events

Constants

Pattern: UPPER_SNAKE_CASE

  • DEFAULT_PAGE_SIZE
  • MAX_RESULTS_WINDOW
  • SEARCH_SOURCE_FIELDS

On this page