squareone#
0.28.4#
Patch Changes#
#259
ba1633cThanks @dependabot! - Bump @radix-ui/react-label from 2.1.7 to 2.1.8#259
ba1633cThanks @dependabot! - Bump @radix-ui/react-visually-hidden from 1.2.3 to 1.2.4#263
f0f29efThanks @dependabot! - Bump @sentry/nextjs from 10.8.0 to 10.25.0 in the sentry group#279
fc4e806Thanks @dependabot! - Bump @storybook/addon-a11y from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/addon-docs from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/addon-links from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/addon-onboarding from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/addon-themes from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/addon-vitest from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/nextjs-vite from 10.0.6 to 10.0.7#279
fc4e806Thanks @dependabot! - Bump @storybook/react-vite from 10.0.6 to 10.0.7#255
5a7c20eThanks @dependabot! - Bump @testing-library/jest-dom from 6.8.0 to 6.9.1 in the testing-library group#273
28644d0Thanks @dependabot! - Bump @turbo/gen from 2.6.0 to 2.6.1#287
b145d65Thanks @dependabot! - Bump @types/node from 24.10.0 to 24.10.1#252
4fa4584Thanks @dependabot! - Bump @types/react-dom from 19.1.9 to 19.2.3#252
4fa4584Thanks @dependabot! - Bump @types/react from 19.1.12 to 19.2.3#261
fe635efThanks @dependabot! - Bump @types/styled-components from 5.1.34 to 5.1.35 in the styling group#262
1cff726Thanks @dependabot! - Bump @vitejs/plugin-react from 5.0.2 to 5.1.0 in the build-tools group#246
dc8cc3fThanks @jonathansick! - Update Node.js from 22.13.0 to 22.21.1This infrastructure update brings the latest LTS improvements, bug fixes, and security patches from Node.js 22. Updated in:
.nvmrcfor local development environmentapps/squareone/Dockerfilefor production Docker buildsGitHub Actions workflows automatically use the
.nvmrcversion
Developers should run
nvm useto switch to the new Node.js version locally.#246
2af16ddThanks @jonathansick! - Pre-install pnpm in Docker base image to eliminate startup downloadThe Dockerfile now uses
corepack prepare pnpm@10.20.0 --activatein the base stage to download and cache pnpm during the image build. This eliminates the “Corepack is about to download…” message and network request that previously occurred on every container startup.This improves container startup time and reliability, especially in environments with restricted network access.
#246
8158829Thanks @jonathansick! - Use local turbo via pnpm in DockerfileThe Dockerfile now uses
pnpm dlx turbo@2.6.0instead of a globally installed turbo package. This:Removes the
npm install -g turbostep from the base imageUses the exact turbo version (2.6.0) consistently via pnpm dlx
Copies the
scripts/directory to ensureturbo-wrapper.jsis available for remote cachingAligns Docker builds with the local development workflow that uses pnpm scripts
This change makes the Docker build process more consistent with local development and reduces the base image size.
#270
26789eaThanks @dependabot! - Bump eslint-config-next from 15.5.2 to 15.5.6#273
28644d0Thanks @dependabot! - Bump eslint-config-turbo from 2.5.6 to 2.6.1#279
fc4e806Thanks @dependabot! - Bump eslint-plugin-storybook from 10.0.6 to 10.0.7#281
a79fd1fThanks @dependabot! - Bump formik from 2.4.6 to 2.4.9#260
3c86dc3Thanks @dependabot! - Bump lightningcss-cli from 1.30.1 to 1.30.2#260
3c86dc3Thanks @dependabot! - Bump lightningcss from 1.30.1 to 1.30.2#265
02a9457Thanks @dependabot! - Bump msw from 2.12.0 to 2.12.1#294
a88c2b0Thanks @jonathansick! - Enable “next” image tag for changeset release previewsThe CI workflow now builds and pushes Docker images with a special “next” tag when the
changeset-release/mainbranch is updated. This allows developers and managers to preview the next version before merging the “Version Packages” PR.Previously, the workflow would only build images for the changeset-release branch without pushing them to the registry. Now:
Images are pushed to ghcr.io with both the branch-derived tag and the “next” tag
The “next” tag can be used to deploy and test the upcoming version in staging environments
Other changeset-release branches (non-main) remain build-only
This improves the release preview workflow by making pre-release images easily accessible via a stable tag name.
#270
26789eaThanks @dependabot! - Bump next-plausible from 3.12.4 to 3.12.5#270
26789eaThanks @dependabot! - Bump next-themes from 0.2.1 to 0.4.6#270
26789eaThanks @dependabot! - Bump next from 15.5.2 to 15.5.6#291
5027c65Thanks @jonathansick! - Bump playwright from 1.55.0 to 1.56.1#252
4fa4584Thanks @dependabot! - Bump react-dom from 19.1.1 to 19.2.0#264
a266241Thanks @dependabot! - Bump react-hook-form from 7.62.0 to 7.66.0#252
4fa4584Thanks @dependabot! - Bump react from 19.1.1 to 19.2.0#250
eff9f7aThanks @jonathansick! - Align dependency versions across packages to prepare for Dependabot groupsUpdate eslint-config-next from 12.2.4 to 15.5.0 in eslint-config package
Standardize eslint to 8.46.0 across squared and squareone packages
Update swr from 2.2.1 to 2.3.6 in squared package
Update @fortawesome/react-fontawesome from 0.2.0 to 0.2.2 in squareone package
These version alignments eliminate inconsistencies that could cause conflicts when Dependabot groups are enabled for coordinated dependency updates.
#269
c2de825Thanks @jonathansick! - Upgrade to Storybook 10.0.6Migrated both squared and squareone Storybook configurations to Storybook 10.0.6
Updated all Storybook addons and dependencies to v10
Applied ESM migration with standardized
import.meta.resolve()for addon resolutionAdded a11y testing configuration with ‘todo’ mode (shows violations without failing CI)
Improved vitest integration with a11y addon annotations in squared package
#279
fc4e806Thanks @dependabot! - Bump storybook from 10.0.6 to 10.0.7#273
28644d0Thanks @dependabot! - Bump turbo from 2.6.0 to 2.6.1#287
b145d65Thanks @dependabot! - Bump typescript from 5.9.2 to 5.9.3#246
33f3a82Thanks @jonathansick! - Update Turborepo from 2.5.6 to 2.6.0This infrastructure update brings the latest improvements and bug fixes from Turborepo 2.6.0. Updated packages:
turbofrom 2.5.6 to 2.6.0@turbo/genfrom 1.13.4 to 2.6.0
The global turbo installation has been removed as it’s not needed for this monorepo workflow - all commands use the local installation via
turbo-wrapper.js.#246
8ddc6f3Thanks @jonathansick! - Update pnpm from 10.12.1 to 10.20.0This infrastructure update improves package management performance and includes the latest bug fixes and security patches. The pnpm version is managed via corepack and specified in the root package.json.
Updated dependencies [
5027c65,eff9f7a,c2de825]:@lsst-sqre/squared@0.11.0
0.28.3#
Patch Changes#
#247
868aaeca5ce61b31cf099c132ae36cd3a70f0f82Thanks @jonathansick! - Filter available scopes in token creation form based on user’s authentication tokenThe token creation form now filters the available scopes to only show scopes that the user’s current authentication token possesses. This prevents users from attempting to create tokens with scopes they don’t have access to, providing a better user experience and clearer security boundaries. Changes:
Modified
/settings/tokens/newpage to filterloginInfo.config.scopesbyloginInfo.scopesUpdated NewTokenPage Storybook story to match implementation and added a new
LimitedScopesstory demonstrating the filtering behavior
0.28.2#
Patch Changes#
Updated dependencies [
3e4a8fb612ac14d0f1ec214ed09be4a567b6b16a]:@lsst-sqre/squared@0.10.2
0.28.1#
Patch Changes#
#242
5641bc3b4b3e704d0cc489b3db909ee0b43fe317Thanks @jonathansick! - Improve dark mode accessibility and color systemEnhanced dark mode support across components with improved text contrast for better accessibility:
Fixed button text visibility in dark theme (secondary buttons)
Fixed ClipboardButton success text contrast
Fixed DateTimePicker calendar hover states and year input backgrounds
Fixed TokenHistory hover text contrast
Improved token key text contrast in TokenDetailsView
Enhanced footer and general link contrast with blue-300 color
Adapted dropdown shadows for better dark mode visibility
Consolidated navigation menu viewport styling
Added complete color ramps to design tokens:
Added missing primary color shades (primary-300, primary-400, primary-600, primary-700)
Added complete gray color scale (gray-100 through gray-900)
Added text-light token for improved light text on dark backgrounds
These changes ensure WCAG AA compliance for text contrast in both light and dark themes.
#242
5641bc3b4b3e704d0cc489b3db909ee0b43fe317Thanks @jonathansick! - Fix sidebar layout footer positioningCorrected footer positioning issues in SidebarLayout component to ensure the footer properly anchors to the bottom of the layout in all viewport sizes.
#242
5641bc3b4b3e704d0cc489b3db909ee0b43fe317Thanks @jonathansick! - Add dark theme support to StorybookAdded dark theme background support to both squareone and squared Storybook configurations, enabling proper testing and development of components in dark mode. This includes setting up the appropriate CSS custom properties for dark theme backgrounds in Storybook preview environments.
#242
5641bc3b4b3e704d0cc489b3db909ee0b43fe317Thanks @jonathansick! - Fix TokenForm scope selector layout and focus behaviorReplaced CSS columns with CSS Grid layout in TokenForm’s ScopeSelector to fix focus ring fragmentation issues. The Grid layout provides better control over item positioning and prevents focus rings from being split across column breaks, improving keyboard navigation accessibility.
Updated dependencies [
5641bc3b4b3e704d0cc489b3db909ee0b43fe317,5641bc3b4b3e704d0cc489b3db909ee0b43fe317,5641bc3b4b3e704d0cc489b3db909ee0b43fe317]:@lsst-sqre/squared@0.10.1
@lsst-sqre/rubin-style-dictionary@0.7.0
@lsst-sqre/global-css@0.2.4
0.28.0#
Minor Changes#
#237
af2ef1a46ed362af3aed65e4f212ec0f4d556cd8Thanks @jonathansick! - Add MDX content support to Account settings pageThe Account settings page (
/settings) now uses MDX for its content instead of hardcoded placeholder text. This enables deployments to customize account management instructions and external links via ConfigMaps.Key changes:
Account page loads content from
settings__index.mdxusing the existing MDX content systemIncludes error handling with fallback content when MDX file is unavailable
Default content includes sections for account management, identity providers, and personal information
Uses
LedeandCtaLinkcomponents for consistent stylingDeployments can provide custom MDX files via
mdxDirconfiguration to include deployment-specific URLs and instructions for their account management systems (COManage, etc.)
#240
a387930a65aecb397b22c8d275c8d9f31bbfd156Thanks @jonathansick! - Add Quotas page for viewing user resource limitsA new Quotas page is now available at
/settings/quotasthat displays user quota allocations from Gafaelfawr for notebook servers, API rate limits, and TAP concurrent query limits.New features:
QuotasView component: Displays quota information organized into three conditional sections:
Notebooks section: Shows CPU cores, memory (GB), and spawning status (only displayed when disabled)
Rate limits section: Shows API request quotas per service in a 15-minute window
Concurrent queries section: Shows TAP database query limits per service
Settings navigation: Added “Quotas” link to the settings sidebar between “Access tokens” and “Sessions”
Deep linking: Each section has an anchor tag for direct linking (
#notebook,#rate-limit,#tap)Empty states: Sections are omitted when no data is available; “Not configured” message shown if entire quota object is missing
#228
f5ec250ce28a0f2185aadd916608161f830318bbThanks @jonathansick! - Add session tokens management pagesImplements a new
/settings/sessionssection for viewing and managing web sessions, notebook sessions, and internal tokens. This feature provides users with a unified interface to monitor and control their active sessions across the platform.New pages:
/settings/sessionsmain page: Tab-based UI using the new Tabs component for type-based filtering with URL state management.?type=query parameter persists selected tab./settings/sessions/historypage: Displays change history for sessions with tab-based navigation and filter persistence./settings/sessions/[id]details page: Shows detailed information for individual session tokens with edit/delete capabilities.
New components:
SessionTokensView component: Displays tokens by type (web sessions, notebook sessions, internal tokens) with filtering, loading states, and error handling
SessionTokenItem component: Individual token card showing metadata (creation date, expiration, host), with delete functionality
Patch Changes#
#237
d1a05ef7e32c9a20f38eeb7e36a384aeea21c69eThanks @jonathansick! - Simplify user menu to show only Settings and Log outThe user menu has been streamlined to display only two essential items:
Settings - Links to
/settingspage for all account and token managementLog out - Logs user out with proper redirect handling
This change removes the conditional external “Account settings” link and consolidates the “Access tokens” link into a general “Settings” link. All settings pages remain accessible through the sidebar navigation at
/settings, including:Account settings (
/settings)Access tokens (
/settings/tokens)Sessions (
/settings/sessions)
This simplification improves the user experience by reducing menu clutter while maintaining full access to all functionality through the settings section.
#241
7b013336c51bc891a4470a90a01bbcb58528fdafThanks @jonathansick! - Fix token creation error display for validation errorsResolved Sentry SQUAREONE-26: Fixed a crash that occurred when the Gafaelfawr API returned Pydantic validation errors during token creation. Previously, validation error objects were rendered directly in React, causing “Objects are not valid as a React child” errors.
Updated dependencies [
1d8161aa169c159762e28b0e3c1afaea5514ef15,0e49cf80e8be37ffca6e7897ba07aa91881e7be3,bf0a8e50a321874abe551ad148255b7546680f31]:@lsst-sqre/squared@0.10.0
0.27.0#
Minor Changes#
#225
1cc6934203efa93b02d6d48a2ac10d72d40bd87aThanks @jonathansick! - Publish arm64 in addition to amd64 platform Docker imagesWe now use lsst-sqre/multiplatform-build-and-push to generate amd64 and arm64 images for Squareone in parallel. This is packaged in our own reusable workflow at
.github/workflows/build-squareone.yamlfor use in CI and release workflow contexts.
0.26.1#
Patch Changes#
#223
7df569fdb5075cb6882444c53f09fcf1bc094d04Thanks @jonathansick! - Fix docker-release workflow for missing pnpm setuppnpm is now required to be present for the docker-release workflow because the root package.json specifies
pnpmas the packageManager.
0.26.0#
Minor Changes#
#205
362b05ea70a859f982c01fd129328d126816dfbaThanks @jonathansick! - Adopted @storybook/addon-vitest for improved testing performance and browser-based testingRun
pnpm test-storybookto execute Storybook tests using Vitest
#208
f6c8b474823fa07ed0940205858cd209bf67f2a6Thanks @jonathansick! - Fixed hydration mis-match warnings with the UserMenu#208
f6c8b474823fa07ed0940205858cd209bf67f2a6Thanks @jonathansick! - Add comprehensive sidebar layout system and settings pagesNew sidebar navigation page layout::
SidebarLayout: Responsive layout component with mobile-first design, CSS Grid on desktop, and flexbox on mobileMobileMenuToggle: Hamburger menu component with accessibility features and smooth animationsSidebar: Navigation sidebar with sticky positioning and structured navigation sectionsSidebarNavItem: Individual navigation items with hover, active, and focus statesSidebarNavSection: Grouped navigation with optional section labels
Settings pages implementation:
SettingsLayout: Settings-specific layout using the sidebar system with dynamic navigationPages: Account (
/settings/), and Access Tokens (/settings/tokens)Complete server-side rendering with proper
getServerSidePropsimplementation
#210
98a4d6560c08a72ba52be6d9e8017e89f7df2cbbThanks @jonathansick! - Configure Next.js to transpile squared packageAdded the @lsst-sqre/squared package to Next.js transpilePackages configuration to support the new build system that exports TypeScript source directly.
#220
43a98d2009568d1b1b4f7d2fa2c641fcb6c18374Thanks @jonathansick! - Add comprehensive token change history viewingImplements a complete token change history system that allows users to view the full audit trail of changes to their Gafaelfawr access tokens:
New Components:
TokenHistoryView- Main view with filters, summary stats, and paginated history listTokenHistoryFilters- Date range and event type filtering with URL state persistenceTokenHistoryList- Infinite scroll pagination for history entriesTokenHistoryItem- Individual change entry display with action-specific formattingTokenHistoryDetails- Detailed change information with before/after comparisonsTokenHistorySummary- Statistics panel showing total changes, first/last activityTokenScopeBadge- Visual badges for token scopesTokenScopeChangeBadge- Diff display for scope modifications (added/removed)
New Hooks:
useTokenChangeHistory- SWR-based infinite pagination for change history APIuseTokenHistoryFilters- URL-based state management for filtersuseTokenDetails- Fetch individual token details from Gafaelfawr API
New Pages:
/settings/tokens/history- Global token change history for all user tokens/settings/tokens/[id]- Individual token details with dedicated history view
Features:
Infinite scroll pagination with “Load more” button
Date range filtering with DateTimePicker integration
Event type filtering (creation, revocation, expiration, scope changes, etc.)
URL-based filter state (shareable/bookmarkable filtered views)
Local timezone support with ISO 8601 format for all timestamps
Graceful handling of deleted tokens (shows history even when token no longer exists)
Responsive design with proper loading and error states
Comprehensive test coverage for all components and hooks
This feature provides complete visibility into token lifecycle events, helping users understand token usage patterns and security-relevant changes.
#216
7238f2ede9e3c1838311bea84d2c3c065be2ad13Thanks @jonathansick! - Add comprehensive token creation workflowImplements a full-featured token creation system including:
New
/settings/tokens/newpage with form interfaceToken name validation to prevent duplicates
Scope selection with configurable available scopes
Flexible expiration options (preset durations and custom dates)
Query parameter support for pre-filling form values from URL templates
Integration with Gafaelfawr token API for token creation
Success modal displaying newly created tokens with copy functionality
Enhanced navigation with “Access Tokens” link in settings
This feature enables users to create personal access tokens with appropriate scopes and expiration settings through a guided interface.
#220
43a98d2009568d1b1b4f7d2fa2c641fcb6c18374Thanks @jonathansick! - Add token details page and enhance token management UINew Features:
Individual token details page at
/settings/tokens/[id]showing comprehensive token informationTokenDetailsViewcomponent with metadata display (scopes, creation date, expiration, parent info)Clickable token IDs throughout the UI that link to token details pages
“View history” button on main tokens page for quick access to change history
Standalone
TokenDatecomponent for consistent date/time formatting across views
Improvements:
Removed confusing “Last used” date displays (data reliability issues)
Fixed token created date incorrectly showing as “Expired”
Better visual hierarchy in token listings with clickable elements
Consistent ISO 8601 timestamp display with relative time formatting
Proper handling of undefined/null token fields from API
Integration with token history viewing workflow
Components:
TokenDetailsView- Full token information display with action buttonsTokenDate- Reusable date formatting component with semantic HTML time elementsEnhanced
AccessTokenItemwith clickable token ID linksDate formatter utilities for consistent timestamp handling
This update improves the token management experience by providing dedicated detail views and clearer navigation between token information and change history.
#217
8c5de054db869e7d02942e6c23ceaccab4f260bcThanks @jonathansick! - Add token viewing and deletion functionalityImplements comprehensive token management capabilities including:
New AccessTokensView component displaying user’s existing tokens
AccessTokenItem component with semantic HTML time elements for dates
Token deletion workflow with confirmation modal
useDeleteToken hook for API integration with Gafaelfawr
Date formatting utilities with relative time display
Integration into
/settings/tokenspage alongside token creationProper handling of undefined/null token fields from API
Users can now view their existing access tokens, see expiration and last-used dates, and delete tokens through a confirmation workflow. The interface provides clear visual feedback and follows the application’s design system.
Patch Changes#
Updated dependencies [
98a4d6560c08a72ba52be6d9e8017e89f7df2cbb,9b6312854eee408a687b8c77978833032773934e,024b11f8653bb1ade38240f890d8fbbb02aa0841,7238f2ede9e3c1838311bea84d2c3c065be2ad13,0baaffd667f8d53aeb2963f36371415516b2c0ff,98a4d6560c08a72ba52be6d9e8017e89f7df2cbb,c85b08254b7bc14688b9f889541962a0a0d511b4,4bdb71382f3c5a935a9309bd5e5cc32c8e2210e5,362b05ea70a859f982c01fd129328d126816dfba,7238f2ede9e3c1838311bea84d2c3c065be2ad13,514c4e752c0e6f3c35b58781d6584edd22de366a,5de611d8d5a4ebf5677241982d6932e5e2aa77d1,3396e84b11d375679f9e93e12367e9b32c865cfd,a9e269c52e9259afd8657ca0c784b1aa966f0b27,98a4d6560c08a72ba52be6d9e8017e89f7df2cbb,e28bd8c294249c99d12af40d36fc8bd93cc9b9e4,c85b08254b7bc14688b9f889541962a0a0d511b4]:@lsst-sqre/squared@0.9.0
@lsst-sqre/rubin-style-dictionary@0.6.0
@lsst-sqre/global-css@0.2.3
0.25.0#
Minor Changes#
#200
279dbcb6352839f434a729cccdd9d12f74cf7eacThanks @jonathansick! - Upgrade Next.js to version 15.5.0This is a major version upgrade from Next.js 14.x to 15.5.0, which includes:
New App Router improvements and features (although Squareone remains on the pages router)
Breaking changes in build system and runtime behavior (turbopack)
Updated instrumentation configuration
Performance improvements
This upgrade may require configuration updates in consuming applications.
#200
279dbcb6352839f434a729cccdd9d12f74cf7eacThanks @jonathansick! - Upgrade Node.js to version 22.13.0 LTSUpdated the Node.js runtime requirement from 18.x to 22.x LTS, which includes:
Latest LTS stability and security improvements
Updated build toolchain and CI environment
Improved performance and new language features
This change updates the development environment and deployment requirements.
#200
279dbcb6352839f434a729cccdd9d12f74cf7eacThanks @jonathansick! - Upgrade React to version 19.1.1This is a major version upgrade from React 18.x to React 19.1.1, which includes:
New React 19 features and improvements
Updated TypeScript types for React 19
Breaking changes that may affect consumers
This upgrade requires peer dependency updates in consuming applications.
#200
279dbcb6352839f434a729cccdd9d12f74cf7eacThanks @jonathansick! - Upgrade Storybook to version 9.1.3This is a major version upgrade from Storybook 7.x to 9.1.3, which includes:
New Storybook 9 features and testing capabilities
Updated addon ecosystem and configuration
Breaking changes in story format and testing utilities
Improved performance and build system
Migration from deprecated addons to new alternatives
This upgrade includes configuration changes and may require story updates in consuming projects.
Patch Changes#
#200
279dbcb6352839f434a729cccdd9d12f74cf7eacThanks @jonathansick! - Fix build system and Storybook compatibility issuesFix Turbo build outputs configuration for better caching
Add explicit React imports to Storybook files for CI compatibility
Fix ESLint compatibility with Turbo 2.5.6
Resolve Docker build corepack signature errors
Update build timeouts and pass required environment variables
These changes improve build reliability and resolve compatibility issues in CI environments.
Updated dependencies [
279dbcb6352839f434a729cccdd9d12f74cf7eac,279dbcb6352839f434a729cccdd9d12f74cf7eac,279dbcb6352839f434a729cccdd9d12f74cf7eac,279dbcb6352839f434a729cccdd9d12f74cf7eac,279dbcb6352839f434a729cccdd9d12f74cf7eac,279dbcb6352839f434a729cccdd9d12f74cf7eac]:@lsst-sqre/squared@0.8.0
0.24.0#
Minor Changes#
#197
410c0329d2915b61763937977dd9e3a5c7a5e60cThanks @jonathansick! - MDX content is now sourced from individual files, rather than as keys in the app configuration. The files are named after the page they correspond to. The MDX content directory is flat, with__standing in for a path separator. The directory that MDX is sourced from is configured via the mdxDir field in the configuration YAML.#197
410c0329d2915b61763937977dd9e3a5c7a5e60cThanks @jonathansick! - Replaced next/config and getInitialProps with AppConfigContext that is loaded from getServerSideProps. Individual components can now access configuration from the useAppConfig hook.Moved the client-side Sentry configuration to
_app.tsxso that it can use the AppConfigContext. Previously it was loaded directly in theinstrumentation-client.jshook that didn’t have access to the app configuration.
#197
c92f852908b16a8b429d9b616dfdcbb759de99ceThanks @jonathansick! - Migrated Squareone to Typescript and Next.js 14!Adopted the SWC compiler, replacing Babel, for improved performance and compatibility. This change preserves ES modules.
Updated TypeScript target to ES2017 and enabled strict type checking.
Updated SWR to v2.3.6.
Updated next-mdx-remote to v5.
#197
410c0329d2915b61763937977dd9e3a5c7a5e60cThanks @jonathansick! - Resolved server-side rendering (SSR) issues that were exposed by the TypeScript migration and new tree shaking:Improved next-mdx-remote usage by ensuring that the
serializefunction is called fromgetServerSideProps.Improved swr usage by segreagating it into client-side components that are dynamically imported.
Patch Changes#
Updated dependencies [
2b7c98f0bd660714e7f0c50635277664723f4fd5,2b7c98f0bd660714e7f0c50635277664723f4fd5]:@lsst-sqre/squared@0.7.0
0.23.0#
Minor Changes#
b41e337e5517caa3332ad78d5ee62fc96d1f13fcThanks @jonathansick! - Update to Next 13.54129cd39404ff5d14cd3716fbd526839f851b50eThanks @jonathansick! - Migrate components to use transitive props for styled-components.1d320df1a52dabda5b29f36715a4ab9d5eb92d1fThanks @jonathansick! - Update Sentry SDK to v10 and adopt instrumentation.ts configuration.a833b03b174e7d3e3c07b9bd86fe14fc80d25bcfThanks @jonathansick! - Downgrade to Node 18.18.0 for better compatiblity with Next 12 and 13.
Patch Changes#
fbcd10ea21883f1652dd0839a0573bc235e4edf4Thanks @jonathansick! - Fixed the storybook build.Updated dependencies [
b41e337e5517caa3332ad78d5ee62fc96d1f13fc,4129cd39404ff5d14cd3716fbd526839f851b50e]:@lsst-sqre/squared@0.6.0
0.22.0#
Minor Changes#
#192
50d8d1f6cfef0318cb6c2767ba4feda8e120e348Thanks @jonathansick! - Migrate to React 18.3.1Updated React from 17.0.2 to 18.3.1 across all packages
Updated React DOM to 18.3.1 for improved hydration and performance
Updated TypeScript types for React 18 compatibility
Updated styled-components to v5.3.11 for React 18 support
Updated Storybook React dependencies for compatibility
Patch Changes#
#192
4d6a727f17ce694b75cdfae1318cb77d78e40dc7Thanks @jonathansick! - Modernize Dockerfile syntaxUpdated dependencies [
50d8d1f6cfef0318cb6c2767ba4feda8e120e348]:@lsst-sqre/squared@0.5.0
0.21.1#
Patch Changes#
#190
72971e97efef450f755238803ae125876f2021b9Thanks @jonathansick! - Update Next to 12.3.5#190
19087e3c5c18d243c0bf7a10da02c3f60127c99eThanks @jonathansick! - Downgraded Sentry SDK from v8 to v7 for compatibility with Next.js 12.3.5.#190
19087e3c5c18d243c0bf7a10da02c3f60127c99eThanks @jonathansick! - Added filtering in next.config.js to remove deprecated configuration properties that Sentry SDK adds but Next.js 12.3.5 doesn’t recognize.
0.21.0#
Minor Changes#
#188
d24e59837c7c8057b03ea8d42d625e64e6fc5d0eThanks @jonathansick! - Add new “notice” and “outage” broadcast banners. This notice category replaces the earlier default (“maintenance”) and is orange. Another new category, “outage”, takes the red colour. This change is driven by Semaphore at lsst-sqre/semaphore#109
Patch Changes#
Updated dependencies [
7a41984e02439cd16a2786196330492197f5c465]:@lsst-sqre/rubin-style-dictionary@0.5.1
@lsst-sqre/global-css@0.2.2
@lsst-sqre/squared@0.4.2
0.20.0#
Minor Changes#
#186
1dc078011cb6a1e87fbde6480ebbdf534c5ea9eeThanks @jonathansick! - Adopt horizontal triad logo in header.#186
55df20028a802a7dcd33b14d599266517c05021aThanks @jonathansick! - Update pnpm to 10.12.#186
c1bc9f3e517c5273588b21dd0368411575c6684dThanks @jonathansick! - Update funding notice text.#186
755428a010d4355994436b02dfb9a55801438ab7Thanks @jonathansick! - Use configured site name for homepage title.#186
10153b02ea62674a75b8c33acdff88351e8d2511Thanks @jonathansick! - Add a configurable preview badge that links to the roadmap doc.The preview badge appears on the homepage below the title. It’s presence is configurable with the “showPreview” configuration. The link it follows is also configurable with “previewLink”.
#186
13e1fdce47cafe848413d5aa78e51cc767fda365Thanks @jonathansick! - Update to Node 22.16 (current LTS).
Patch Changes#
#186
9b717643a038f3936f520c2f85dfaa2d7ad2b0d3Thanks @jonathansick! - Update partner logo lineup.Updated dependencies [
9b717643a038f3936f520c2f85dfaa2d7ad2b0d3,1323de7a7e4deb3ada11ebbf650883c70221958f]:@lsst-sqre/rubin-style-dictionary@0.5.0
@lsst-sqre/global-css@0.2.1
@lsst-sqre/squared@0.4.1
0.19.0#
Minor Changes#
#183
a1a6cbeThanks @jonathansick! - Times Square now supports date and date-time parameter types.
0.18.0#
Minor Changes#
#179
92ecf5fThanks @jonathansick! - Add a configurable Apps menu to the header navigation. This menu is for linking for non-aspect applications within the RSP, such as Times Square.#179
b4b2fdbThanks @jonathansick! - Moved auth URLs into Squared as a library. ThegetLoginUrlandgetLogoutURL functions compute the full URLs to the RSP’s login and logout endpoints and include the?rdquery strings to return the user to current and home URL respectively.#179
6be6b1cThanks @jonathansick! - ReimplementHeaderNavusing thePrimaryNavigationcomponent from Squared. Although the menu looks the same visually, it is now entirely powered by the RadixNavigationMenuprimitive so that any menu item can be a trigger for a menu rather than a link to another page. The Login / user menu is reimplemented as a menu item rather than with the special GafaelfawrUserMenu component.
Patch Changes#
0.17.0#
Minor Changes#
#175
9cadf35Thanks @jonathansick! - The Times Square UI now closes its connection to the/times-square/pages/:page/html/events?<qs>SSE endpoint once the page instance’s execution status is “complete” and the HTML hash is computed. With this change, the Times Square UI reduces its ongoing load on the API and also reduces network usage. The HTML page will still update to the latest version because the iframe component pings the Times Squarepages/:page/htmlstatus?<qs>endpoint. We may back this off or convert the page update to an opt-in future in the future to further reduce network and API load from the front-end.
0.16.0#
Minor Changes#
#176
8e5b789Thanks @fajpunk! - Added Sentry instrumentation to thesquareoneapp.Both the NextJS client (frontend) and server (backend) code are instrumented with the official Sentry NextJS integration. The Sentry DSN should be provided in a
SENTRY_DSNenvironment variable. If a Sentry DSN is not provided, there will be no changes to app behaviour. If a Sentry DSN is provided, then these things will be sent to Sentry:Any uncaught exceptions and error-level logs
Traces for user interaction (according to the sample settings)
Session replays for user interaction (according to the sample settings)
There are new config file options for Sentry configuration:
sentryTracesSampleRatesentryReplaysSessionSampleRatesentryReplaysOnErrorSampleRatesentryDebug
There is a new route,
/sentry-example-pagewhich provides a way to quickly check that the Sentry integration is working.
0.15.0#
Minor Changes#
#173
c5dac7fThanks @jonathansick! - The Times Square interface now includes a link to its user documentation. The root of the environment-specific rsp.lsst.io site is configured through the newdocsBaseUrlconfiguration parameter.#173
c5dac7fThanks @jonathansick! - Migrated Squareone CSS custom properties / design tokens to global-css from the globals.css file in the Squareone appWith this change, any app as well as the Squared component library can use CSS custom properties such as the elevations (box-shadows, e.g.
--sqo-elevation-md) and transitions (--sqo-transition-basic) that are included as global CSS custom properties.
Patch Changes#
0.14.0#
Minor Changes#
#171
55ff9abThanks @jonathansick! - Add support for Plausible.io analyticsIn Squareone, set the
plausibleDomainconfiguration to the Plausible tracking domain. E.g. data.lsst.cloud for the RSP. To disable Plausible tracking where it isn’t supported, set this configuration tonull.
0.13.1#
Patch Changes#
#169
c4eeb75Thanks @jonathansick! - Change “Account settings” menu item to title case.
0.13.0#
Minor Changes#
#166
157d03dThanks @jonathansick! - Usage of Reach UI is now removed and replaced with Radix UI. The user menu now usesGafaelfawrUserMenufrom@lsst-sqre/squaredand is based on Radix UI’s Navigation Menu component. It is customized here to work with the Gafaelawr API to show a log in button for the logged out state, and to show the user’s menu with a default log out button for the logged in state. Previously we also used Reach UI for showing an accessible validation alert in the Times Square page parameters UI. For now we’ve dropped this functionality.
Patch Changes#
0.12.0#
Minor Changes#
#164
0574c00Thanks @jonathansick! - Users can now download the Jupyter Notebook (ipynb) file that they are viewing, with the current parameters filled in. This enables further interactive exploration.#164
2adb0afThanks @jonathansick! - Times Square notebook pages show a link to the source notebook on GitHub.
0.11.0#
Minor Changes#
#153
3561d09Thanks @jonathansick! - Squareone uses a base stylesheet from the @lsst-sqre/global-css package. This reduces the amount of global CSS managed in Squareone itself, and offloads configuring the Rubin Style Dictionary tokens into base CSS elements.#163
72dd989Thanks @jonathansick! - Implement background recomputation for cached Times Square pages. The “Recompute” button submits a request to Times Square’sDELETE /v1/pages/:page/html?{params}endpoint, which causes a background recomputation of the notebook and re-rendering of the cached HTML.The new
TimesSquareHtmlEventsProvideris a React context provider that provides real-time updates from Times Square about the status of an HTML rendering for a given set of parameters using Times Square’s/v1/pages/:page/html/events/{params}endpoint. Squareone uses@microsoft/fetch-event-sourceto subscribe to this server-sent events (SSE) endpoint. Using this provider, the UI is able to show new data to the user, including the status of the computation, and once the computation is complete, the date/age of computation and the execution time.#163
72dd989Thanks @jonathansick! - The Times Square “Update” and “Reset” buttons are now disabled when appropriate. The Update button is disabled when the parameter inputs have not been changed relative to their current state. Likewise, the Reset button is disabled when the parameters are unchanged from the current state.#153
1240924Thanks @jonathansick! - Drop the use of normalize.css and instead rely on the base CSS from the global-css package.#163
72dd989Thanks @jonathansick! - NewTimesSquareUrlParametersProvidercomponent. This React context provides the URL-based state to Times Square components, such as the page being viewed, its notebook parameters values, and the display settings. This change simplifies the structure of the React pages by refactoring all of the URL parsing into a common component. As well, this context eliminates “prop drilling” to provide this URL-based state to all components in the Times Square application.
Patch Changes#
0.10.3#
Patch Changes#
#150
1bcd1a4Thanks @jonathansick! - The squareone Docker image release is now triggered by a GitHub Release being published.
0.10.2#
Patch Changes#
#148
0e4d392Thanks @jonathansick! - Tweaks to the release process:Use a custom GITHUB_TOKEN for the changesets/action in order to trigger the Docker release workflow for Squareone.
Updated dependencies [
0e4d392]:@lsst-sqre/rubin-style-dictionary@0.4.2
0.10.1#
Patch Changes#
#143
13e6f4cThanks @jonathansick! - Migrated lsst-sqre/squareone into a turbo-based monorepo. Rubin Style Dictionary is now a package inside the monorepo.Migrated to
pnpmfromnpmfor package management.Upgrade to Storybook 7.
Add development set up documentation to the squareone.lsst.io site.
Updated dependencies [
13e6f4c]:@lsst-sqre/rubin-style-dictionary@0.4.1
0.10.0 (2023-03-27)#
New features#
Add new pages for the COmanage sign-up flow. The content for these pages is configurable via MDX fields in
squareone.config.yaml:verifyEmailPageMdxfor/enrollment/thanks-for-signing-upemailVerifiedPageMdxfor/enrollment/thanks-for-verifyingpendingApprovalPageMdxfor/enrollment/pending-approvalpendingVerificationPageMdxfor/enrollment/pending-confirmation
Other pages’ content are now configurable with MDX:
apiAspectPageMdxfor/api-aspectdocsPageMdxfor/docssupportPageMdxfor/support
0.9.0 (2023-03-01)#
New features#
Display an “Account settings” link in the user menu that goes to the COmanage Registry. This registry URL, which is optional, can be configured in
squareone.config.yamlwith thecoManageRegistryUrlfield.
0.8.1 (2022-08-25)#
Bug fixes#
Improved UI for Times pull request preview pages.
Development changes#
Added additional stories and integration with Chromatic, the hosted Storybook service.
0.8.0 (2022-08-18)#
New features#
New pages for Times Square to preview pages in GitHub pull requests at
/times-square/github-pr/:owner/:repo:/:commitpaths.
Development changes#
Initial integration with Storybook for designing and documenting components within Squareone.
0.7.1 (2022-06-26)#
Bug fixes#
Link to DP0.2 documentation.
0.7.0 (2022-06-23)#
New features#
Add initial support for Times Square.
Update background image for the homepage hero component to a new image by Bruno Quint, taken September 2021.
Development changes#
Refresh dependencies.
0.6.0 (2022-04-14)#
New features#
Informational broadcast messages are now displayed with Rubin’s primary teal as the background color (see lsst-sqre/semaphore#29 for more information).
Replaced custom fetch hook for the Semaphore broadcast message data with swr, enabling us to automatically refresh broadcast data.
Updated the component layout in the source code.
0.5.0 (2022-04-06)#
New features#
Squareone is cross-published on the GitHub Container Registry at
ghcr.io/lsst-sqre/squareone.
Bug fixes#
Fix minor UI issues, including unnecessary scrollbars in the broadcast message disclosures and
Linkusage.Remove the note on the documentation page about Generation 3 middleware.
Development changes#
Upgrade to Next 12 and various upgrades of dependencies and linting tools.
Upgrade to Node 16.
0.4.0 (2021-08-11)#
New features#
Broadcast messages are now sourced through
Semaphore <https://github/lsst-sqre/semaphore>, a service that is installed in the science platform and sources messages from GitHub. With this update, messages can also have additional information that is visible if a user clicks on a “Read more” button. This disclosure is powered byreact-a11y-disclosure <https://github.com/KittyGiraudel/react-a11y-disclosure>.There is a new configuration field,
semaphoreUrl, to configure the root URL for the Semaphore API service. ThebroadcastMarkdownfield is removed.
0.3.1 (2021-08-04)#
Bug fixes#
Update funding text.
Development changes#
Refresh README with status badges and revise text on git hooks.
0.3.0 (2021-07-12)#
New features#
Add a broadcastMarkdown configuration field to the public configuration schema. If set, this content is shown in a new BroadcastBanner component on any page. This is a configuration-driven way of displaying notifications to users without requiring code changes. The semaphore application will add further flexibility for pushing notifications in the future.
Bug fixes#
Fix the name of the GitHub repository for support on the
/supportpage.
0.2.2 (2021-06-25)#
Bug fixes#
Revised capitalization in the Acceptable Use Policy.
0.2.1 (2021-06-24)#
Bug fixes#
Add description on how to use the auth token with TAP clients that rely on basic authentication (username and password).
0.2.0 (2021-06-24)#
New features#
This release includes many features in preparation for DP0.1:
New
/docspage that links to data, service, and software documentation relevant to RSP users.New
/api-aspect page that provides information about how to access the TAP API.New
/termspage that includes the RSP Acceptable Use PolicyNew
/supportpage that describes how to get support.
Bug fixes#
Fix open graph metadata
0.1.5 (2021-05-06)#
Bug fixes#
Update funding agency text and logos to the operations era.
0.1.4 (2021-05-03)#
Bug fixes#
Fix CSS loading for the UserMenu component by adding the babel styled-components plugin.
Change the UserMenu component to display the username rather than the user’s name, as Gafaelfawr does not guarantee the “name” property is available.
Switch to Font Source for the Source Sans font (from Google Fonts).
Remove temporary content from the index page.
0.1.3 (2021-04-05)#
Bug fixes#
Fix hero links for Portal and Notebooks
Enable links in nav bar
Enable documentation links
0.1.2 (2021-04-05)#
Bug fixes#
Fix how the configuration path is computed.
0.1.1 (2021-04-05)#
Bug fixes#
This release adds next.config.js to the Docker image.
0.1.0 (2021-03-30)#
New features#
This is the first development release of Squareone! 🎉