From 5489006f702acd7db45ef12202c8459ddd168a8e Mon Sep 17 00:00:00 2001 From: Giedrius Grabauskas <43740166+Grabauskas@users.noreply.github.com> Date: Tue, 31 Mar 2026 12:23:16 +0300 Subject: [PATCH 1/2] Update structured data with additional social links, modify logo URL, and enhance blog post entries --- static/structured-data.json | 99 +++++++++++++++++++++++++++++++------ 1 file changed, 84 insertions(+), 15 deletions(-) diff --git a/static/structured-data.json b/static/structured-data.json index c8cc57a..d48a55d 100644 --- a/static/structured-data.json +++ b/static/structured-data.json @@ -7,10 +7,16 @@ "name": "OneGround", "alternateName": "Roxit OneGround", "url": "https://dev.oneground.nl", - "sameAs": ["https://github.com/OneGround", "https://oneground.nl", "https://portaal.oneground.nl"], + "sameAs": [ + "https://github.com/OneGround", + "https://oneground.nl", + "https://portaal.oneground.nl", + "https://www.linkedin.com/showcase/one-ground/", + "https://www.youtube.com/@vismaroxit" + ], "logo": { "@type": "ImageObject", - "url": "https://dev.oneground.nl/img/logo.png", + "url": "https://dev.oneground.nl/img/logo.svg", "width": 200, "height": 60 }, @@ -47,15 +53,7 @@ "publisher": { "@id": "https://dev.oneground.nl/#organization" }, - "inLanguage": "en", - "potentialAction": { - "@type": "SearchAction", - "target": { - "@type": "EntryPoint", - "urlTemplate": "https://dev.oneground.nl/search?q={search_term_string}" - }, - "query-input": "required name=search_term_string" - } + "inLanguage": "en" }, { "@type": "SoftwareApplication", @@ -128,7 +126,7 @@ "description": "OneGround is a comprehensive implementation of Dutch ZGW APIs for case management (Zaakgericht Werken). Learn about ZRC, DRC, ZTC, BRC, NRC, AC components, features, and how to get started.", "url": "https://dev.oneground.nl/docs/about-oneground", "datePublished": "2024-01-01", - "dateModified": "2025-06-09", + "dateModified": "2026-01-19", "author": { "@id": "https://dev.oneground.nl/#organization" }, @@ -152,6 +150,13 @@ "NRC", "AC", "RL", + "OAuth2", + "JWT", + "Docker", + ".NET", + "webhooks", + "digital signing", + "NEN-ISO 16175", "VNG standards", "government APIs" ] @@ -167,6 +172,60 @@ }, "inLanguage": "en" }, + { + "@type": "BlogPosting", + "@id": "https://dev.oneground.nl/blog/best-practices-for-jwt-usage-in-apis#blogposting", + "headline": "Best Practices for JWT Usage in APIs - OneGround Security Guide", + "description": "Comprehensive guide to implementing JWT authentication securely in ZGW APIs and OneGround. Learn about token security, validation, best practices, and common pitfalls to avoid.", + "url": "https://dev.oneground.nl/blog/best-practices-for-jwt-usage-in-apis", + "datePublished": "2024-12-03", + "author": { + "@type": "Person", + "name": "Giedrius Grabauskas" + }, + "isPartOf": { + "@id": "https://dev.oneground.nl/blog#blog" + }, + "publisher": { + "@id": "https://dev.oneground.nl/#organization" + } + }, + { + "@type": "BlogPosting", + "@id": "https://dev.oneground.nl/blog/integrating-signing-software-with-zgw#blogposting", + "headline": "Standardized Document Signing Integration for ZGW APIs - Complete Guide", + "description": "Learn how to integrate digital document signing software with ZGW APIs. Complete implementation guide with API patterns, authentication methods, and standardized trigger messages for OneGround and compliant ZGW systems.", + "url": "https://dev.oneground.nl/blog/integrating-signing-software-with-zgw", + "datePublished": "2025-03-27", + "author": { + "@type": "Person", + "name": "Michiel Nijdam" + }, + "isPartOf": { + "@id": "https://dev.oneground.nl/blog#blog" + }, + "publisher": { + "@id": "https://dev.oneground.nl/#organization" + } + }, + { + "@type": "BlogPosting", + "@id": "https://dev.oneground.nl/blog/oauth2-token-endpoint#blogposting", + "headline": "Why OneGround Uses an OAuth2 Token Endpoint", + "description": "Learn why customer-generated JWTs are risky and how OAuth2 Token Endpoints provide better security, control, and simplicity for API authentication.", + "url": "https://dev.oneground.nl/blog/oauth2-token-endpoint", + "datePublished": "2025-11-14", + "author": { + "@type": "Person", + "name": "Giedrius Grabauskas" + }, + "isPartOf": { + "@id": "https://dev.oneground.nl/blog#blog" + }, + "publisher": { + "@id": "https://dev.oneground.nl/#organization" + } + }, { "@type": "FAQPage", "@id": "https://dev.oneground.nl/#faq", @@ -176,7 +235,7 @@ "name": "What is OneGround?", "acceptedAnswer": { "@type": "Answer", - "text": "OneGround is the implementation by Roxit of case oriented APIs and registrations according to the VNG specifications. It contains ZTC, ZRC, DRC, BRC, NC, AC and reference lists for Dutch government case management." + "text": "OneGround is the implementation by Roxit of case oriented APIs and registrations according to the VNG specifications. It contains ZTC, ZRC, DRC, BRC, NRC, AC and reference lists for Dutch government case management." } }, { @@ -192,7 +251,7 @@ "name": "What ZGW components does OneGround include?", "acceptedAnswer": { "@type": "Answer", - "text": "OneGround includes all ZGW API components: ZRC (Case Registration), DRC (Document Registration), ZTC (Case Type Catalog), BRC (Decision Registration), NRC (Notification Center), and AC (Authorization Component)." + "text": "OneGround includes all ZGW API components: ZRC (Case Registration), DRC (Document Registration), ZTC (Case Type Catalog), BRC (Decision Registration), NRC (Notification Center), AC (Authorization Component), and RL (Reference Lists)." } }, { @@ -244,7 +303,17 @@ "creator": { "@id": "https://dev.oneground.nl/#organization" }, - "keywords": ["ZGW API", "Documentation", "Dutch Government", "Case Management", "API Reference"], + "keywords": [ + "ZGW API", + "Documentation", + "Dutch Government", + "Case Management", + "API Reference", + "OAuth2", + "JWT", + "webhooks", + "integration guides" + ], "license": "https://github.com/OneGround/oneground.github.io/blob/main/LICENSE", "distribution": { "@type": "DataDownload", From 75395fc8215d13949ac4c67ca1c3b3eccf6d1afd Mon Sep 17 00:00:00 2001 From: Giedrius Grabauskas <43740166+Grabauskas@users.noreply.github.com> Date: Tue, 31 Mar 2026 14:29:36 +0300 Subject: [PATCH 2/2] Add Changelog feed links and integrate with blog post items; update blog feed options --- docusaurus.config.ts | 3 +- src/components/ChangelogFeedLinks/index.tsx | 54 +++++++++++++++++++ .../ChangelogFeedLinks/styles.module.css | 35 ++++++++++++ src/theme/BlogListPage/index.tsx | 7 +++ src/theme/BlogPostItems/index.tsx | 17 ++++++ 5 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 src/components/ChangelogFeedLinks/index.tsx create mode 100644 src/components/ChangelogFeedLinks/styles.module.css create mode 100644 src/theme/BlogListPage/index.tsx create mode 100644 src/theme/BlogPostItems/index.tsx diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 4cb0aa6..cf185ad 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -230,7 +230,8 @@ const config: Config = { feedOptions: { type: "all", title: "OneGround ZGW API Changelog", - description: "Latest releases and updates for OneGround ZGW API platform" + description: "Latest releases and updates for OneGround ZGW API platform", + xslt: true } } satisfies PluginContentBlog.Options ], diff --git a/src/components/ChangelogFeedLinks/index.tsx b/src/components/ChangelogFeedLinks/index.tsx new file mode 100644 index 0000000..7bf95c0 --- /dev/null +++ b/src/components/ChangelogFeedLinks/index.tsx @@ -0,0 +1,54 @@ +import React, { type ReactNode } from "react"; +import Link from "@docusaurus/Link"; +import styles from "./styles.module.css"; + +const RSS_ATOM_PATH = + "M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795.001 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-3.368c10.58.046 19.152 8.594 19.183 19.188h4.817c-.03-13.231-10.755-23.954-24-24v4.812z"; + +const JSON_PATH = "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"; + +function FeedIcon({ color, path }: { color: string; path: string }): ReactNode { + return ( + + ); +} + +export default function ChangelogFeedLinks(): ReactNode { + return ( +