Skip to content

HTTP section migration#446

Merged
Ethan-Arrowood merged 2 commits intomajor-version-reorgfrom
migration/http
Feb 26, 2026
Merged

HTTP section migration#446
Ethan-Arrowood merged 2 commits intomajor-version-reorgfrom
migration/http

Conversation

@Ethan-Arrowood
Copy link
Member

Summary

  • Adds reference_versioned_docs/version-v4/http/ with four new pages: Overview, Configuration, TLS, and API
  • Updates reference_versioned_sidebars/version-v4-sidebars.json with the HTTP category
  • Updates v4-docs-migration-map.md status to In Progress for all three HTTP entries
  • Adds migration-context/link-placeholders/http-link-placeholders.md tracking 9 cross-section TODO links

Files Created

  • reference_versioned_docs/version-v4/http/overview.md — Architecture, threading model (SO_REUSEPORT), protocols served, HTTP/2, compression, logging
  • reference_versioned_docs/version-v4/http/configuration.md — Full http YAML section reference with all options
  • reference_versioned_docs/version-v4/http/tls.md — Top-level tls section (shared by HTTP, MQTT, sockets), SNI multi-cert, Operations API override
  • reference_versioned_docs/version-v4/http/api.mdserver global: server.http(), Request/Response, server.ws(), server.upgrade(), server.socket(), server.authenticateUser(), server.resources, contentTypes, etc.

Source Files Used

  • versioned_docs/version-4.7/deployments/configuration.md (primary for configuration and TLS)
  • versioned_docs/version-4.7/reference/globals.md (primary for API)
  • release-notes/v4-tucker/4.1.0.md, 4.2.0.md, 4.3.0.md, 4.5.0.md, 4.6.0.md, 4.7.0.md

Version Annotations Added

High Confidence (confirmed via release notes)

  • Worker threads for HTTP: v4.1.0
  • SO_REUSEPORT socket sharing / session-affinity deprecation: v4.2.0
  • http.compressionThreshold: v4.2.0
  • http.mtls: v4.3.0
  • http.http2: v4.5.0
  • server.authenticateUser: v4.5.0
  • http.logging: v4.6.0
  • http.mtls.certificateVerification (OCSP): v4.7.0

Link Placeholders Created

See migration-context/link-placeholders/http-link-placeholders.md for the full list.

Summary:

  • 3 placeholders to security/overview
  • 2 placeholders to configuration/overview and configuration/operations
  • 1 placeholder each to rest/overview, analytics/overview, operations-api/overview, resources/global-apis

Checklist for Human Reviewer

  • Verify version annotations are accurate
  • Review content accuracy and completeness
  • Update migration-map.md status to "Complete" after merge

🤖 Generated with Claude Code

Adds reference_versioned_docs/version-v4/http/ with four pages:
- overview.md: architecture, threading model, protocols served
- configuration.md: full http section config reference
- tls.md: top-level tls section reference (shared by HTTP and MQTT)
- api.md: server global API (server.http, Request/Response, server.ws, etc.)

Also adds migration-context/link-placeholders/http-link-placeholders.md
and updates the v4 sidebar and migration map status.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Ethan-Arrowood Ethan-Arrowood requested a review from a team as a code owner February 25, 2026 18:50
@github-actions github-actions bot temporarily deployed to pr-446 February 25, 2026 20:33 Inactive
@github-actions
Copy link

🚀 Preview Deployment

Your preview deployment is ready!

🔗 Preview URL: https://preview.harper-docs.stage.harperfabric.com/pr-446

This preview will update automatically when you push new commits.

Copy link
Contributor

@cb1kenobi cb1kenobi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!


## `server.http(listener, options)`

Alias: `server.request`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this legacy? Can't say I'm a fan of using request() to register an http handler so much so that maybe we don't advertise the alias?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was definitely not designed to be an alias. server.request is supposed to specifically handle only HTTP requests, whereas server.http is supposed to handle both HTTP request and (HTTP upgrades to) WebSocket connections. It appears that is not working though. So yeah, I agree let's not advertise this until it is fixed (or something).

Copy link
Member

@kriszyp kriszyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great


## `server.http(listener, options)`

Alias: `server.request`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was definitely not designed to be an alias. server.request is supposed to specifically handle only HTTP requests, whereas server.http is supposed to handle both HTTP request and (HTTP upgrades to) WebSocket connections. It appears that is not working though. So yeah, I agree let's not advertise this until it is fixed (or something).

```javascript
class Origin {
async get(request) {
this.getContext().requestContext.sendEarlyHints('<link rel="preload" href="/my-resource" as="fetch">');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is interesting. This seems like a more complicated example than necessary. But also this is highlighting a good use case for early hints.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You wrote this example yourself! https://docs.harperdb.io/docs/reference/globals#request :)


## Multi-Domain Certificates (SNI)

To serve different certificates for different domains using Server Name Indication (SNI), define `tls` as an array of configuration objects. Each entry can optionally include a `host` property specifying which domain it applies to. If `host` is omitted, the certificate's common name is used.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the certificate's common name and subject alternate names (SANs).

@github-actions
Copy link

🚀 Preview Deployment

Your preview deployment is ready!

🔗 Preview URL: https://preview.harper-docs.stage.harperfabric.com/pr-446

This preview will update automatically when you push new commits.

@github-actions github-actions bot temporarily deployed to pr-446 February 26, 2026 18:28 Inactive
@Ethan-Arrowood Ethan-Arrowood merged commit fa4d2f3 into major-version-reorg Feb 26, 2026
7 checks passed
@Ethan-Arrowood Ethan-Arrowood deleted the migration/http branch February 26, 2026 18:31
@github-actions
Copy link

🧹 Preview Cleanup

The preview deployment for this PR has been removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants