Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
e4df05a
Increase memory allocation for Cloud Run deployment from 1Gi to 2Gi
xaviaracil Feb 11, 2026
dfc9d49
Update ServiceDescriptionDocument description for clarity and consist…
xaviaracil Feb 23, 2026
7da600e
Fix formatting of OpenBadgeCredential example in docformat.md
xaviaracil Feb 23, 2026
68a55a7
Update errata document to correct typography errors and increment ver…
xaviaracil Feb 25, 2026
a994adb
Changed multiplicity of accreditations to 0..*
xaviaracil Apr 2, 2026
5363de3
Delete docs directory
robcoyle913 Apr 9, 2026
58273d8
Delete ob_next/README.md
robcoyle913 Apr 9, 2026
b9d48a3
Delete ob_next/use-cases.md
robcoyle913 Apr 9, 2026
b4ff484
Delete ob_next/roadmap.md
robcoyle913 Apr 9, 2026
182e401
Delete ob_next/dids-in-badges.md
robcoyle913 Apr 9, 2026
e183d9c
Update revocation mechanism in Displayer certification profile
xaviaracil Apr 17, 2026
e429c0d
Update examples to use BitstringStatusListEntry for credential status…
xaviaracil Apr 17, 2026
106d15e
Fix links to OpenAPI files in the Open Badges API section and update …
xaviaracil Apr 22, 2026
5e29477
Update release dates and comments in Open Badges specification; fix O…
xaviaracil Apr 23, 2026
3857f74
Rearranged microsite content
xaviaracil May 1, 2026
8ca219f
Fixed image path
xaviaracil May 1, 2026
3d77af2
Update ASTRO_BASE_PATH in Dockerfile to point to /openbadges/
xaviaracil May 1, 2026
b5fe2fe
Add LATEST_SPEC_VERSION to environment variables in Cloud Run deploym…
xaviaracil May 1, 2026
9ebd025
fix: updated for microsites
tcouper May 25, 2026
44865ff
fix: added docType segment to allow the inclusion within other files
tcouper May 25, 2026
b53d78e
fix: trigger autowarm to speed up first render
tcouper May 26, 2026
2c5413e
Delete docs directory
robcoyle913 Apr 9, 2026
0335c7e
Fixed image path
xaviaracil May 1, 2026
1007527
Update Cloud Run deployment configuration to set CPU and concurrency …
xaviaracil May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 36 additions & 5 deletions .github/workflows/deploy-cloud-run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,22 @@ env:
AUTH0_AUDIENCE: ${{ vars.AUTH0_AUDIENCE }}
AUTH_REDIRECT_URI: ${{ vars.AUTH_REDIRECT_URI }}
AUTH_POST_LOGIN_REDIRECT: ${{ vars.AUTH_POST_LOGIN_REDIRECT }}

LATEST_SPEC_VERSION: ${{ vars.LATEST_SPEC_VERSION }}
# Image service (diagram rendering at startup build)
IMAGE_SERVICE_URL: ${{ vars.IMAGE_SERVICE_URL }}
IMAGE_SERVICE_AUTH0_DOMAIN: ${{ vars.IMAGE_SERVICE_AUTH0_DOMAIN }}
IMAGE_SERVICE_AUTH0_AUDIENCE: ${{ vars.IMAGE_SERVICE_AUTH0_AUDIENCE }}
IMAGE_SERVICE_M2M_CLIENT_ID: ${{ vars.IMAGE_SERVICE_M2M_CLIENT_ID }}
# FastComments (discussion)
FASTCOMMENTS_TENANT_ID: ${{ vars.FASTCOMMENTS_TENANT_ID }}
FASTCOMMENTS_ENABLED: ${{ vars.FASTCOMMENTS_ENABLED }}
COMMENTS_SITE_KEY: ${{ vars.COMMENTS_SITE_KEY }}
# Secrets
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_CLIENT_SECRET }}
AUTH_COOKIE_SECRET: ${{ secrets.AUTH_COOKIE_SECRET }}
MPS_API_KEY: ${{ secrets.MPS_API_KEY }}
IMAGE_SERVICE_M2M_CLIENT_SECRET: ${{ secrets.IMAGE_SERVICE_M2M_CLIENT_SECRET }}
FASTCOMMENTS_API_SECRET: ${{ secrets.FASTCOMMENTS_API_SECRET }}

jobs:
deploy:
Expand Down Expand Up @@ -76,6 +87,16 @@ jobs:
-t ${{ steps.vars.outputs.IMAGE_URI }} \
--push .

- name: Set health probe path
run: |
BASE="${ASTRO_BASE_PATH:-/}"
BASE="${BASE%/}"
if [ -z "$BASE" ] || [ "$BASE" = "/" ]; then
echo "HEALTHZ_PATH=/healthz" >> "$GITHUB_ENV"
else
echo "HEALTHZ_PATH=${BASE}/healthz" >> "$GITHUB_ENV"
fi

- name: Deploy to Cloud Run
id: deploy
uses: google-github-actions/deploy-cloudrun@v2
Expand All @@ -87,10 +108,12 @@ jobs:
--allow-unauthenticated
--ingress=internal-and-cloud-load-balancing
--port=4321
--startup-probe=httpGet.port=4321,initialDelaySeconds=10,timeoutSeconds=10,periodSeconds=120,failureThreshold=10
--memory=1Gi
--startup-probe=httpGet.path=${{ env.HEALTHZ_PATH }},httpGet.port=4321,initialDelaySeconds=10,timeoutSeconds=10,periodSeconds=120,failureThreshold=10
--memory=2Gi
--timeout=60
--min-instances=1
--concurrency=10
--cpu=2
--set-env-vars ASTRO_BASE_PATH=${{ env.ASTRO_BASE_PATH }}
--set-env-vars AUTH0_DOMAIN=${{ env.AUTH0_DOMAIN }}
--set-env-vars AUTH0_CLIENT_ID=${{ env.AUTH0_CLIENT_ID }}
Expand All @@ -100,8 +123,16 @@ jobs:
--set-env-vars AUTH_REDIRECT_URI=${{ env.AUTH_REDIRECT_URI }}
--set-env-vars AUTH_POST_LOGIN_REDIRECT=${{ env.AUTH_POST_LOGIN_REDIRECT }}
--set-env-vars MPS_API_KEY=${{ env.MPS_API_KEY }}

--set-env-vars LATEST_SPEC_VERSION=${{ env.LATEST_SPEC_VERSION }}
--set-env-vars IMAGE_SERVICE_URL=${{ env.IMAGE_SERVICE_URL }}
--set-env-vars IMAGE_SERVICE_AUTH0_DOMAIN=${{ env.IMAGE_SERVICE_AUTH0_DOMAIN }}
--set-env-vars IMAGE_SERVICE_AUTH0_AUDIENCE=${{ env.IMAGE_SERVICE_AUTH0_AUDIENCE }}
--set-env-vars IMAGE_SERVICE_M2M_CLIENT_ID=${{ env.IMAGE_SERVICE_M2M_CLIENT_ID }}
--set-env-vars IMAGE_SERVICE_M2M_CLIENT_SECRET=${{ env.IMAGE_SERVICE_M2M_CLIENT_SECRET }}
--set-env-vars FASTCOMMENTS_TENANT_ID=${{ env.FASTCOMMENTS_TENANT_ID }}
--set-env-vars FASTCOMMENTS_ENABLED=${{ env.FASTCOMMENTS_ENABLED }}
--set-env-vars FASTCOMMENTS_API_SECRET=${{ env.FASTCOMMENTS_API_SECRET }}
--set-env-vars COMMENTS_SITE_KEY=${{ env.COMMENTS_SITE_KEY }}

- name: Output URL
run: echo "Deployed to ${{ steps.deploy.outputs.url }}"

13 changes: 13 additions & 0 deletions .microsite
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,20 @@
"title": "Open Badges",
"description": "Share verified skills and achievements with learning providers and employers across multiple platforms.",
"categories": {
"Specification": {
"order": 1
},
"Normative": {
"order": 2
},
"Guide": {
"order": 3
},
"Certification": {
"order": 4
},
"Extension": {
"order": 5,
"description": "Extensions are optional additions to the Open Badges standard that provide additional functionality or support for specific use cases. They are designed to be modular and can be implemented independently of the core standard.",
"image": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmxpbms9Imh0dHA6Ly93d3cub3JnLzIwMDAveGxpbmsiIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0zOS40NywzMC43NWMtOC44NiwzLjAyLTEyLjMwLDE0LjIxLTYuNjQsMjEuNjhjMy42LDQuNzgsMTAuMDMsNi43NjEsMTUuNzAsNC44MkM1NC4xMyw1NS4zNCw1OCw0OS45Miw1OCw0NCAgQzU4LDM0LjU2LDQ4LjQyLDI3LjY5LDM5LjQ3LDMwLjc1eiBNNDkuNSw0Ni41aC0zdjNjMCwzLjIyLTUsMy4yMi01LDB2LTNoLTMgYy0zLjIyLDAuMDItMy4yMi01LDAuMDItNWgzdi0zYzAtMy4yMiw1LTMuMjIsNSwwdjNoMyAgQzUyLjcyLDQxLjUsNTIuNzIsNDYuNSw0OS41LDQ2LjV6Ii8+PHBhdGggZD0iTTIyLDU0aDkuNTEgYy01LjI4LTYuNi00LjQwLTE2LjQ3LDEuOTUtMjIuMDQgYzUuNzYtNS4wNSwxNC41Ny01LjIyOSwyMC41NC0wLjQ1VjIyYzAtMy4zMS0yLjY5LTYtNi02aC02LjY4ICBjMC45Ni0yLjAxLDAuOS00LjM2LTAuMTYtNi4zMmMtMS43Ni0zLjI3LTUuOS00LjYtOS4yMy0yLjk3Yy0zLjQsMS42Ni00Ljg4LDUuODctMy4yNSw5LjI5SDIyYy0zLjMxLDAtNiwyLjY5LTYsNnY1LjY4ICBjLTMuMTYtMS41LTcuMDYtMC4zOC04LjkyLDIuNTljLTIuMDEsMy4xOS0xLjA3LDcuNTMsMi4xLDkuNjAxYzIuMDQsMS4zMiw0LjYyLDEuNSw2LjgyLDAuNDVWNDhDMTYsNTEuMzEsMTguNjksNTQsMjIsNTR6Ii8+PC9zdmc+"
}
Expand Down
33 changes: 10 additions & 23 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,32 +1,19 @@
FROM us-central1-docker.pkg.dev/specautomation-458709/microsites/microsites-base:dev
ARG ASTRO_BASE_PATH=/case/
ENV ASTRO_BASE_PATH=/case/
ARG ASTRO_BASE_PATH=/open-badges/
ENV ASTRO_BASE_PATH=/open-badges/
ENV MICROSITE_CONTENT_ROOT=/app/content

# This clears some test upstream content bundled in the base image, preserving content.config.ts
RUN if [ -f /app/src/content/content.config.ts ]; then \
cp /app/src/content/content.config.ts /tmp/content.config.ts; \
fi && \
rm -rf /app/src/content && \
mkdir -p /app/src/content/standards && \
if [ -f /tmp/content.config.ts ]; then \
cp /tmp/content.config.ts /app/src/content/content.config.ts; \
rm /tmp/content.config.ts; \
fi
# Remove bundled upstream example content (mdexamples, diagram-examples, etc.)
RUN rm -rf /app/content/docs


COPY --chown=astro:nodejs ob_v3p0/microsites /app/src/content/standards/
COPY --chown=astro:nodejs .microsite /app/src/content/
COPY --chown=astro:nodejs ob_v3p0/microsites /app/content/docs/standards/
COPY --chown=astro:nodejs .microsite /app/content/.microsite

# ACE Extension
COPY --chown=astro:nodejs extensions/aceExtension/v1p0/microsite /app/src/content/standards/ace-extension
COPY --chown=astro:nodejs extensions/aceExtension/v1p0/microsite /app/content/docs/standards/ob-ace

# Assessment Extension
COPY --chown=astro:nodejs extensions/assessmentExtension/v2p0/microsite /app/src/content/standards/assessment-extension
COPY --chown=astro:nodejs extensions/assessmentExtension/v2p0/microsite /app/content/docs/standards/ob-assessment

# Issuer Accreditation Extension
COPY --chown=astro:nodejs extensions/issuerAccreditationExtension/v2p0/microsite /app/src/content/standards/issuer-accreditation-extension

# The base image handles everything:
# 1. Runtime processes the assets (transforms paths, copies assets)
# 2. Starts the Astro server
# No additional commands needed!
COPY --chown=astro:nodejs extensions/issuerAccreditationExtension/v2p0/microsite /app/content/docs/standards/ob-accred
48 changes: 48 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
services:
image-service:
image: us-central1-docker.pkg.dev/specautomation-458709/microsites/microsites-image-service:dev
platform: linux/amd64
container_name: ob-image-service-dev
ports:
- "8080:8080"
environment:
NODE_ENV: development
IN_DOCKER: "true"
IMAGE_SERVICE_AUTH_DISABLED: "true"
CACHE_DIR: /cache
CACHE_PUBLIC_HOST: http://image-service:8080
volumes:
- diagram-cache:/cache

web:
build:
context: .
dockerfile: Dockerfile
args:
ASTRO_BASE_PATH: "/open-badges/"
platform: linux/amd64
image: ob-microsite:local
container_name: ob-microsite-dev
ports:
- "4321:4321"
depends_on:
- image-service
environment:
NODE_ENV: development
IN_DOCKER: "true"
ASTRO_BASE_PATH: "/open-badges/"
MICROSITE_CONTENT_ROOT: "/app/content"
DISABLE_AUTH: "true"
HOST: "0.0.0.0"
IMAGE_SERVICE_URL: http://image-service:8080
IMAGE_SERVICE_AUTH_DISABLED: "true"
LATEST_SPEC_VERSION: "v3p0"
# Optional: uncomment and set for MPS blocks or FastComments local testing
# MPS_API_KEY: ""
# MPS_HOST: "https://mps.1edtech.org"
# FASTCOMMENTS_TENANT_ID: ""
# FASTCOMMENTS_ENABLED: "true"
# COMMENTS_SITE_KEY: "open-badges"

volumes:
diagram-cache:
41 changes: 0 additions & 41 deletions docs/context.json

This file was deleted.

1 change: 0 additions & 1 deletion docs/images/OB3_ACG_DynamicClientRegistration.svg

This file was deleted.

1 change: 0 additions & 1 deletion docs/images/OB3_ACG_ObtainingTokens.svg

This file was deleted.

Loading
Loading