Skip to content

feat(docs): Change license; enhance OpenAPI docs and update homepage#184

Open
jp-ayyappan wants to merge 17 commits intomainfrom
new-homepage
Open

feat(docs): Change license; enhance OpenAPI docs and update homepage#184
jp-ayyappan wants to merge 17 commits intomainfrom
new-homepage

Conversation

@jp-ayyappan
Copy link
Contributor

@jp-ayyappan jp-ayyappan commented Feb 14, 2026

Summary

This PR changes the license for OpenTDF docs; enhances the OpenAPI documentation system and updates the marketing homepage with improved content and fixed links.

🔗 Preview: https://opentdf-docs-preview-new-home.surge.sh

OpenAPI Documentation Improvements

  • Dynamic index generation: Automatically reads document IDs from generated .info.mdx files
  • Cleaner sidebar navigation: Renamed .info.mdxindex.mdx to prevent duplicate items in sidebar
  • Post-processing automation: Added update-openapi-index script that runs after API doc generation
  • Fixed navigation issues: sidebar.ts files no longer appear as clickable items

Marketing Homepage Updates

  • Improved copy: Updated hero subtitle for better clarity and developer focus
  • Fixed broken links:
    • /quickstart/getting-started/quickstart
    • /category/concepts/spec/concepts
    • /documentation/introduction
  • Updated button links: Architecture, Specifications, Enterprise Solutions
  • Cleanup: Removed non-functional icons and deployment guides button

Footer & Legal

  • Added license information distinguishing documentation (CC BY 4.0) from code (BSD 3-Clause)

Technical Changes

  • Added scripts/update-openapi-index.ts for post-generation processing
  • Integrated gray-matter for frontmatter parsing
  • Updated vendored OpenAPI policy specs

Testing

  • Verified all homepage links work correctly
  • Confirmed OpenAPI docs generate without errors
  • Tested sidebar navigation shows proper structure
  • Verified license information displays in footer

🤖 Generated with Claude Code

jp-ayyappan and others added 11 commits February 13, 2026 22:01
Updates the homepage with new marketing content and styling.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…services

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add decrypt and encrypt collection example code samples.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
OpenAPI Documentation Improvements:
- Add dynamic index generation that reads document IDs from generated files
- Rename .info.mdx files to index.mdx for cleaner sidebar navigation
- Create post-processing script for automated OpenAPI doc updates
- Fix sidebar.ts files no longer appearing as navigation items

Marketing Homepage Updates:
- Update hero subtitle copy for clarity and developer focus
- Fix broken links: /quickstart → /getting-started/quickstart
- Fix broken links: /category/concepts → /spec/concepts
- Fix broken links: /documentation → /introduction
- Update Architecture button link
- Update Specifications link to /spec
- Update Enterprise Solutions link to Virtru data security platform
- Remove Deployment Guides button
- Remove non-functional icons

Footer & Legal:
- Add license information to footer (Docs: CC BY 4.0, Code: BSD 3-Clause)
- Remove unused iconify-icon from copyright

Technical Changes:
- Add update-openapi-index npm script with post-generation hook
- Import gray-matter for frontmatter parsing
- Update vendored OpenAPI policy specs

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jp-ayyappan jp-ayyappan requested review from a team as code owners February 14, 2026 05:18
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @jp-ayyappan, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the documentation website by improving the OpenAPI documentation system and completely overhauling the marketing homepage. It introduces automated post-processing for API documentation to ensure accurate and clean navigation, alongside a modern, engaging design for the main landing page. Additionally, the project's documentation license has been updated for broader accessibility, and several OpenAPI specifications have been cleaned up by removing outdated certificate management components. New Java code samples were also added to assist developers with TDF collection operations.

Highlights

  • OpenAPI Documentation System Enhancements: Implemented dynamic index generation for OpenAPI documentation, automatically reading document IDs from generated .info.mdx files. Renamed .info.mdx files to index.mdx to prevent duplicate sidebar entries and ensure cleaner navigation. Added a post-processing script (update-openapi-index) that runs after API doc generation to automate these updates.
  • Marketing Homepage Redesign and Content Updates: Completely revamped the marketing homepage with improved copy, new hero sections, and updated calls to action. Fixed several broken links, updated button destinations, and removed non-functional elements for a cleaner user experience. New CSS styles were introduced to support the modern design.
  • License Information Clarification: Updated the project's license from Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) to Creative Commons Attribution 4.0 International (CC BY 4.0) for documentation, effective February 13, 2026. The footer now explicitly distinguishes between the documentation license (CC BY 4.0) and the code license (BSD 3-Clause).
  • OpenAPI Specification Cleanup: Removed deprecated policy.Certificate schema, rootCerts fields, common.IdFqnIdentifier schema, and related AssignCertificateToNamespace/RemoveCertificateFromNamespace RPCs from various OpenAPI YAML specifications, streamlining the API definitions.
  • New Java Code Samples: Added new Java code examples demonstrating how to encrypt and decrypt collections of TDF (Trusted Data Format) files, providing practical guidance for SDK users.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • LICENSE
    • Updated copyright year to 2026.
    • Changed documentation license from Creative Commons Attribution-ShareAlike 4.0 International to Creative Commons Attribution 4.0 International.
    • Removed 'ShareAlike' related clauses and definitions from the license text.
  • README.md
    • Rewrote the entire README to provide a comprehensive overview of OpenTDF Documentation, its purpose, structure, and contribution guidelines.
    • Added detailed prerequisites and installation instructions for local development, including nvm recommendations.
    • Introduced a new section for testing with feature branches, explaining how to use environment variables to fetch content from different repository branches.
    • Added a 'License Change Notice' section to inform users about the updated documentation license.
  • code_samples/java/decrypt-collection-example.mdx
    • Added a new Java code example for decrypting a collection of NanoTDF files.
  • code_samples/java/encrypt-collection-example.mdx
    • Added a new Java code example for encrypting a collection of NanoTDF files.
  • docusaurus.config.ts
    • Added a script tag to include the Iconify icon library for better icon support.
    • Updated the footer copyright to explicitly state separate licenses for documentation (CC BY 4.0) and code (BSD 3-Clause).
  • package.json
    • Modified the gen-api-docs-all script to automatically run update-openapi-index after generating API documentation.
    • Added a new script update-openapi-index to execute the OpenAPI post-processing TypeScript file.
    • Added gray-matter as a dependency for frontmatter parsing in preprocessing scripts.
  • scripts/update-openapi-index.ts
    • Added a new TypeScript script to orchestrate post-generation processing for OpenAPI documentation, including renaming info files and updating the index.
  • specs/policy/actions/actions.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/attributes/attributes.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/namespaces/namespaces.openapi.yaml
    • Removed the /policy.namespaces.NamespaceService/AssignCertificateToNamespace and /policy.namespaces.NamespaceService/RemoveCertificateFromNamespace RPC definitions.
    • Removed the common.IdFqnIdentifier schema definition.
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
    • Removed the policy.namespaces.AssignCertificateToNamespaceRequest and policy.namespaces.AssignCertificateToNamespaceResponse schemas.
    • Removed the policy.namespaces.NamespaceCertificate schema definition.
    • Removed the policy.namespaces.RemoveCertificateFromNamespaceRequest and policy.namespaces.RemoveCertificateFromNamespaceResponse schemas.
  • specs/policy/objects.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/obligations/obligations.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/registeredresources/registered_resources.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/resourcemapping/resource_mapping.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/subjectmapping/subject_mapping.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • specs/policy/unsafe/unsafe.openapi.yaml
    • Removed the policy.Certificate schema definition.
    • Removed the rootCerts field from the policy.Namespace schema.
  • src/css/custom.css
    • Imported marketing.css to apply new marketing homepage styles.
  • src/css/marketing.css
    • Added a new CSS file containing extensive styles for the redesigned marketing homepage, including hero sections, buttons, and responsive adjustments.
  • src/openapi/preprocessing.ts
    • Imported gray-matter for parsing frontmatter from Markdown files.
    • Updated preprocessOpenApiSpecs to dynamically generate service links for the OpenAPI index page based on categories and descriptions.
    • Added getDocIdFromInfoFile helper function to extract document IDs from generated .info.mdx files.
    • Introduced renameInfoFilesToIndex function to rename .info.mdx files to index.mdx for improved sidebar navigation.
    • Added updateOpenApiIndex function to rebuild the OpenAPI index page with dynamic links after doc generation.
  • src/pages/index.module.css
    • Rewrote the CSS module to align with the new marketing homepage design, defining styles for hero sections, content layout, buttons, and responsive behavior.
  • src/pages/index.tsx
    • Completely refactored the homepage component to implement the new marketing-focused layout.
    • Replaced old Hero, Columns, Features, and Feedback components with a series of new marketing-hero sections.
    • Updated meta tags for improved SEO and social sharing.
Activity
  • The pull request author, jp-ayyappan, initiated the changes to enhance OpenAPI documentation and update the marketing homepage.
  • The author verified all homepage links work correctly.
  • The author confirmed OpenAPI docs generate without errors.
  • The author tested sidebar navigation shows proper structure.
  • The author verified license information displays in the footer.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

The pull request successfully enhances the OpenAPI documentation system by automating index generation and cleaning up the sidebar navigation. The marketing homepage redesign provides a more modern and developer-focused experience. However, there are several technical issues in the new Java code samples, including a typo in an API call and potential resource leaks due to unclosed streams. Additionally, there is substantial code duplication in the OpenAPI preprocessing script and redundant CSS definitions that should be refactored to improve maintainability.

@jp-ayyappan jp-ayyappan changed the title feat(docs): enhance OpenAPI docs and update marketing homepage feat(docs): Change license; enhance OpenAPI docs and update homepage Feb 14, 2026
jp-ayyappan and others added 5 commits February 14, 2026 00:29
These files were auto-generated and should not be included in this PR.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add SPDX license identifier to help GitHub recognize the Creative Commons
license for documentation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove unused styles import from index.tsx
- Extract SERVICE_DESCRIPTIONS and CATEGORY_MAPPING constants to reduce
  code duplication in preprocessing.ts
- Both preprocessOpenApiSpecs and updateOpenApiIndex now use shared constants

Addresses Gemini Code Assist review comments about maintainability.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Automatically detect APIs not in CATEGORY_MAPPING
- Add them to "Other APIs" category
- Log warning with list of uncategorized API names
- Prevents new APIs from being silently omitted from index

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The preprocessing script now only processes OpenAPI specs. Index generation
is deferred to the update-openapi-index script which runs AFTER docs are
generated, eliminating spurious warnings about missing .info.mdx files.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jp-ayyappan jp-ayyappan enabled auto-merge (squash) February 14, 2026 05:45
@jp-ayyappan
Copy link
Contributor Author

/gemini review

@jp-ayyappan jp-ayyappan disabled auto-merge February 14, 2026 05:45
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

The pull request successfully updates the documentation license to CC BY 4.0 and introduces a significantly improved marketing homepage with better copy and fixed navigation links. The automation for OpenAPI index generation is a great addition for maintainability. However, there are a few technical issues to address: invalid HTML nesting on the homepage, redundant CSS files that could lead to maintenance confusion, and the use of inline styles in the new homepage sections.

Comment on lines +60 to +68
<p className="hero-subtitle">
OpenTDF inverts this model. Policies travel with the data itself, so you can:
<ul>
<li>Revoke access after sharing — even after data has left your environment</li>
<li>Enforce controls in zero-trust environments — no VPN, no network dependency</li>
<li>Maintain a complete audit trail — know who accessed what, when, and where</li>
</ul>
This is data-centric security: protection that's embedded, not bolted on.
</p>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Nesting a <ul> element inside a <p> tag is invalid HTML. Browsers will automatically close the paragraph tag before the list, which can lead to unexpected styling issues and React hydration mismatches.

References
  1. Ensure HTML elements are correctly nested according to the specification; specifically, block-level elements like <ul> should not be placed inside inline-level or paragraph elements.

Comment on lines +210 to +218
<section style={{padding: '4rem 0', textAlign: 'center', background: '#f8f9fa'}}>
<div className="container">
<h2 style={{fontSize: '2.5rem', marginBottom: '1rem', color: 'var(--ifm-color-primary)'}}>
Ready to Protect Your Data?
</h2>
<p style={{fontSize: '1.2rem', marginBottom: '2rem', opacity: 0.8}}>
Choose your path and start building with OpenTDF today.
</p>
</Columns.Item>
</Columns>
<Features
title="OpenTDF Examples"
description="Ideas for leveraging OpenTDF in your own applications"
imageUrl=""
>
{/* <Features.Item title="SecureCycle" description="SecureCycle is a sample application that demonstrates how OpenTDF safeguards private health information &hyphen; in this case, sensitive data related to period tracking and symptoms." icon="carbon:location-heart"
callToAction={{ title: 'Learn more', url: 'https://google.com' }} /> */}
<Features.Item title="Secure IoT Sensor Data" description="From full-motion video to biometric devices, attach access controls and preserve data integrity to guard against data spoofing." icon="carbon:fingerprint-recognition" />
<Features.Item title="Secure Data Sharing" description="Securely share data with partners, customers, and suppliers, and maintain control over who can access it." icon="carbon:ai-governance-lifecycle" />
</Features>
<Feedback
title="Share Your Feedback"
>
<p>
Virtru, the sponsor of the OpenTDF developer community, would love to hear from you!
</p>
<p>
We're developers, too, and as we mature the project, we're curious what you're building, and what kind of problems you may be encountering or are trying to solve.
</p>
<p>
You can provide anonymous feedback (name, email, and company are not required fields on this form), or share your contact information for access to curated resources, updates, and if you request a response.
</p>
</Feedback>
<div style={{display: 'flex', gap: '1rem', justifyContent: 'center', flexWrap: 'wrap'}}>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The final CTA section uses inline styles for layout and typography. For better maintainability and consistency with the rest of the page, these styles should be moved to src/css/marketing.css using appropriate classes (e.g., reusing marketing-hero--secondary for the background).

References
  1. Prefer external or modular CSS over inline styles to ensure consistency, reusability, and easier maintenance.

@@ -0,0 +1,11 @@
/**
* Post-processing script to update the OpenAPI index page with correct links
Copy link
Contributor

Choose a reason for hiding this comment

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

What does this script do? What is the overall change from current behavior to new with this script added?

Copy link
Contributor

@marythought marythought left a comment

Choose a reason for hiding this comment

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

My take: this should probably be two separate PRs. One that just updates the license, and a second updating the homepage layout and content that we can get additional review and buy-in for.

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.

4 participants