Skip to content

Add unified project Page and strengthen OpenAPI validation - #4

Merged
DataTideHH merged 6 commits into
mainfrom
polish/pages-and-contract
Jul 27, 2026
Merged

Add unified project Page and strengthen OpenAPI validation#4
DataTideHH merged 6 commits into
mainfrom
polish/pages-and-contract

Conversation

@DataTideHH

Copy link
Copy Markdown
Owner

Summary

  • add a compact GitHub Pages landing page under docs/
  • apply the established DataTideHH Cayman design with Hanseblau, Tide-Teal, paper-white surfaces, responsive tables and automatic dark mode
  • connect the repository README to the project site and make the evidence section more precise
  • add semantic OpenAPI 3.1 validation through openapi-spec-validator
  • compare the documented OpenAPI paths with the actual Flask runtime routes
  • keep the page focused on Data/BI, controlled ingestion, data quality and process observability

Validation target

  • all existing Python 3.12 tests remain green on Ubuntu and Windows
  • the OpenAPI document is validated as an OpenAPI specification, not only parsed as YAML
  • the OpenAPI path set matches the registered Flask routes
  • the Pages source remains main + /docs, consistent with the other DataTideHH project sites

@DataTideHH
DataTideHH merged commit 7bbdf86 into main Jul 27, 2026
2 checks passed
@DataTideHH
DataTideHH deleted the polish/pages-and-contract branch July 27, 2026 19:05

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a06a61b7f4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/test_openapi.py
Comment on lines +31 to +34
runtime_paths = {
rule.rule.replace("<code>", "{code}")
for rule in app.url_map.iter_rules()
if rule.endpoint != "static"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Compare documented HTTP methods as well as paths

When a new HTTP method is registered on an existing URL, such as POST /api/v1/countries, runtime_paths remains unchanged and this test passes even if the OpenAPI document omits the operation. Since an operation is identified by both path and method, compare normalized (path, method) pairs while excluding Flask's implicit HEAD and OPTIONS methods so the claimed runtime-route coverage catches incomplete contracts.

Useful? React with 👍 / 👎.

Comment on lines +123 to +125
.main-content a {
color: var(--tide-teal);
font-weight: 600;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Darken light-mode links to preserve text contrast

In the default light color scheme, #0b92b6 has only about a 3.46:1 contrast ratio against the page's #fafaf7 background (and 3.62:1 against white table surfaces). The normal 17px link text therefore falls below the WCAG AA 4.5:1 threshold, making links difficult to read for low-vision users; use a darker link color in light mode while retaining the brighter dark-mode override.

Useful? React with 👍 / 👎.

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.

1 participant