diff --git a/docs/deploy/public-portal-access-control.md b/docs/deploy/public-portal-access-control.md index d10c325..aecbbbe 100644 --- a/docs/deploy/public-portal-access-control.md +++ b/docs/deploy/public-portal-access-control.md @@ -197,6 +197,11 @@ RESULT_SERVER_PUBLIC_PORTAL_MODE=true Development or internal-only portal services may leave the flag unset unless they intentionally need to preview the public browser surface. +Set `RESULT_SERVER_VERSION` to the deployed public tag when the production +checkout is not expected to sit exactly on a Git tag. If it is unset, the portal +shows the exact tag for `HEAD` when available, otherwise the current Git +description or `development`. + ## Testing Plan Add lightweight tests as the design is implemented: diff --git a/docs/release-notes.md b/docs/release-notes.md new file mode 100644 index 0000000..048d45c --- /dev/null +++ b/docs/release-notes.md @@ -0,0 +1,18 @@ +# Benchkit Release Notes + +## v2026.08.31 - Initial public CX Portal baseline + +Public portal baseline for scoped QWS measurements on Fugaku and RIKYU, with +public-safe result pages and Portal-managed main-branch triggers. + +- Public result browsing, comparison, and system catalog pages are available in + public portal mode. +- Public mode hides operator-only views, raw result JSON routes, trigger + internals, and environment snapshot detail. +- Portal-managed triggers submit scoped main-branch measurements with an + explicit result-server destination. +- Build cache restore checks source identity, host build environment, and + restored artifact integrity. +- Branch and tag source inputs record the resolved commit used for the build. +- Manual GitLab CI is reserved for development and release-candidate validation, + not production main results. diff --git a/result_server/app.py b/result_server/app.py index 4fc9a81..3d481c9 100644 --- a/result_server/app.py +++ b/result_server/app.py @@ -16,6 +16,7 @@ from utils.auth import parse_ingest_keys from utils.csrf import init_csrf from utils.portal_access import is_public_portal_mode, register_public_portal_guard +from utils.portal_version import portal_version_info from utils.preflight import validate_production_config @@ -194,6 +195,7 @@ def create_app(prefix="", base_dir=None): _configure_api_auth(app) _configure_public_portal_mode(app) _configure_execution_profiles(app, base_dir) + app.config["PORTAL_VERSION"] = portal_version_info() register_public_portal_guard(app) init_csrf(app, exempt_blueprints=(api_bp,)) diff --git a/result_server/app_dev.py b/result_server/app_dev.py index 0ce3f68..c7db175 100644 --- a/result_server/app_dev.py +++ b/result_server/app_dev.py @@ -169,6 +169,7 @@ def create_dev_app(base_dir): from utils.audit_logging import configure_audit_logging from utils.auth import parse_ingest_keys from utils.csrf import init_csrf + from utils.portal_version import portal_version_info from utils.system_info import get_all_systems_info, summarize_systems_info app = Flask(__name__, template_folder="templates") @@ -202,6 +203,7 @@ def create_dev_app(base_dir): ALLOWED_AFFILIATIONS=parse_allowed_affiliations( os.environ.get("RESULT_SERVER_ALLOWED_AFFILIATIONS") ), + PORTAL_VERSION=portal_version_info(), ) Session(app) configure_audit_logging(app) diff --git a/result_server/routes/home.py b/result_server/routes/home.py index d39bff7..51acddd 100644 --- a/result_server/routes/home.py +++ b/result_server/routes/home.py @@ -2,6 +2,8 @@ from flask import render_template +from utils.portal_version import portal_release_notes + HOME_GUIDE_LINKS = { "add_app": "https://github.com/RIKEN-RCCS/benchkit/blob/main/docs/guides/add-app.md", @@ -23,4 +25,16 @@ def homepage(): guide_links=build_home_guide_links(), ) + def changes(): + return render_template( + "changes.html", + release_notes=portal_release_notes(), + ) + app.add_url_rule(f"{prefix}/", endpoint="home", view_func=homepage, strict_slashes=False) + app.add_url_rule( + f"{prefix}/changes", + endpoint="changes", + view_func=changes, + strict_slashes=False, + ) diff --git a/result_server/templates/_navigation.html b/result_server/templates/_navigation.html index 97c8fb6..dfc8eab 100644 --- a/result_server/templates/_navigation.html +++ b/result_server/templates/_navigation.html @@ -104,6 +104,7 @@ CX Portal Home Systems + Changes {% if session.get('authenticated') and not public_portal_mode %} Public diff --git a/result_server/templates/_results_base.html b/result_server/templates/_results_base.html index 16852c4..cf3fc9f 100644 --- a/result_server/templates/_results_base.html +++ b/result_server/templates/_results_base.html @@ -24,6 +24,17 @@