Skip to content

Commit d4a1757

Browse files
committed
feat: remove toast notifications for error and warning messages in Elasticsearch and MongoDB views
1 parent 4bbb182 commit d4a1757

9 files changed

Lines changed: 239 additions & 4 deletions

File tree

.github/workflows/release-docker.yml

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ permissions:
1010
contents: read
1111
packages: write
1212

13+
env:
14+
DOCKERHUB_NAMESPACE: interaapps
15+
1316
concurrency:
1417
group: release-docker-${{ github.ref }}
1518
cancel-in-progress: false
@@ -44,19 +47,41 @@ jobs:
4447
username: ${{ github.actor }}
4548
password: ${{ secrets.GITHUB_TOKEN }}
4649

47-
- name: Compute image name
50+
- name: Log in to Docker Hub
51+
if: secrets.DOCKER_USERNAME != '' && secrets.DOCKER_PASSWORD != ''
52+
uses: docker/login-action@v3
53+
with:
54+
username: ${{ secrets.DOCKER_USERNAME }}
55+
password: ${{ secrets.DOCKER_PASSWORD }}
56+
57+
- name: Compute image names
4858
id: image
4959
shell: bash
5060
run: |
5161
repository="$(echo "${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]')"
62+
ghcr_image="ghcr.io/${repository}-${{ matrix.image_name }}"
5263
echo "repository=${repository}" >> "${GITHUB_OUTPUT}"
53-
echo "image=ghcr.io/${repository}-${{ matrix.image_name }}" >> "${GITHUB_OUTPUT}"
64+
if [ "${{ matrix.image_name }}" = "backend" ]; then
65+
dockerhub_image="docker.io/${DOCKERHUB_NAMESPACE}/starquery"
66+
else
67+
dockerhub_image="docker.io/${DOCKERHUB_NAMESPACE}/starquery-${{ matrix.image_name }}"
68+
fi
69+
echo "ghcr_image=${ghcr_image}" >> "${GITHUB_OUTPUT}"
70+
echo "dockerhub_image=${dockerhub_image}" >> "${GITHUB_OUTPUT}"
71+
{
72+
echo "images<<EOF"
73+
echo "${ghcr_image}"
74+
if [ -n "${{ secrets.DOCKER_USERNAME }}" ] && [ -n "${{ secrets.DOCKER_PASSWORD }}" ]; then
75+
echo "${dockerhub_image}"
76+
fi
77+
echo "EOF"
78+
} >> "${GITHUB_OUTPUT}"
5479
5580
- name: Extract Docker metadata
5681
id: meta
5782
uses: docker/metadata-action@v5
5883
with:
59-
images: ${{ steps.image.outputs.image }}
84+
images: ${{ steps.image.outputs.images }}
6085
tags: |
6186
type=semver,pattern={{version}}
6287
type=semver,pattern={{major}}.{{minor}}

.github/workflows/release-electron.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,31 @@ jobs:
5858
- name: Install workspace dependencies
5959
run: pnpm install --frozen-lockfile
6060

61+
- name: Prepare optional Windows code-signing certificate
62+
if: runner.os == 'Windows' && secrets.STARQUERY_WINDOWS_CERTIFICATE_BASE64 != ''
63+
shell: pwsh
64+
run: |
65+
$certificatePath = Join-Path $env:RUNNER_TEMP 'starquery-windows-signing.pfx'
66+
[System.IO.File]::WriteAllBytes(
67+
$certificatePath,
68+
[System.Convert]::FromBase64String('${{ secrets.STARQUERY_WINDOWS_CERTIFICATE_BASE64 }}')
69+
)
70+
"WINDOWS_CERTIFICATE_FILE=$certificatePath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
71+
6172
- name: Build Electron distributables
73+
env:
74+
STARQUERY_MSIX_PUBLISHER: ${{ vars.STARQUERY_MSIX_PUBLISHER }}
75+
STARQUERY_MSIX_PUBLISHER_DISPLAY_NAME: ${{ vars.STARQUERY_MSIX_PUBLISHER_DISPLAY_NAME }}
76+
STARQUERY_MSIX_IDENTITY_NAME: ${{ vars.STARQUERY_MSIX_IDENTITY_NAME }}
77+
STARQUERY_MSIX_PACKAGE_DISPLAY_NAME: ${{ vars.STARQUERY_MSIX_PACKAGE_DISPLAY_NAME }}
78+
STARQUERY_MSIX_APP_DISPLAY_NAME: ${{ vars.STARQUERY_MSIX_APP_DISPLAY_NAME }}
79+
STARQUERY_MSIX_BACKGROUND_COLOR: ${{ vars.STARQUERY_MSIX_BACKGROUND_COLOR }}
80+
STARQUERY_MSIX_MIN_OS_VERSION: ${{ vars.STARQUERY_MSIX_MIN_OS_VERSION }}
81+
STARQUERY_MSIX_MAX_OS_VERSION_TESTED: ${{ vars.STARQUERY_MSIX_MAX_OS_VERSION_TESTED }}
82+
STARQUERY_MSIX_WINDOWS_KIT_VERSION: ${{ vars.STARQUERY_MSIX_WINDOWS_KIT_VERSION }}
83+
STARQUERY_MSIX_WINDOWS_KIT_PATH: ${{ vars.STARQUERY_MSIX_WINDOWS_KIT_PATH }}
84+
STARQUERY_MSIX_SIGN: ${{ vars.STARQUERY_MSIX_SIGN }}
85+
WINDOWS_CERTIFICATE_PASSWORD: ${{ secrets.STARQUERY_WINDOWS_CERTIFICATE_PASSWORD }}
6286
run: pnpm --dir packages/electron make
6387

6488
- name: Upload workflow artifacts

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ Networking note:
2222
- If StarQuery inside the container should connect to services running on your host machine, use `host.docker.internal` as the host in your datasource config instead of `localhost`.
2323
- The `--add-host=host.docker.internal:host-gateway` flag makes that work on Linux as well.
2424

25+
Release automation note:
26+
- The GitHub Docker release workflow publishes to `ghcr.io` and, when `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` are configured in GitHub Actions secrets, also to Docker Hub.
27+
2528
Status:
2629
- Work in progress
2730
- No stable releases yet
@@ -60,6 +63,13 @@ Runtime targets:
6063
- Hosted backend + Vite frontend for browser usage
6164
- Browser frontend against a configured remote StarQuery server
6265

66+
Electron release outputs:
67+
- macOS `.zip`
68+
- Windows Squirrel installer
69+
- Windows `.msix`
70+
- Linux `.deb`
71+
- Linux `.rpm`
72+
6373
## Runtime Modes
6474

6575
### Electron desktop
@@ -247,6 +257,26 @@ Optional hosted-mode OpenID Connect / OAuth2 login.
247257
| --- | --- | --- |
248258
| `STARQUERY_BOOTSTRAP_CONFIG_PATH` | unset | Path to a JSON bootstrap file used to create/update users, projects, and datasources on startup. |
249259

260+
## Electron MSIX Build Variables
261+
262+
These are only relevant for Windows Electron builds. The Electron Forge setup now emits an additional `.msix` artifact beside the existing Windows installer artifacts.
263+
264+
| Variable | Default | Description |
265+
| --- | --- | --- |
266+
| `STARQUERY_MSIX_PUBLISHER` | `CN=StarQuery` | Publisher value written into the generated MSIX manifest. For Microsoft Store submission, replace this with the exact publisher from Partner Center. |
267+
| `STARQUERY_MSIX_PUBLISHER_DISPLAY_NAME` | `StarQuery` | Human-readable publisher display name in the MSIX manifest. |
268+
| `STARQUERY_MSIX_IDENTITY_NAME` | `InteraApps.StarQuery` | MSIX package identity. For Store builds, use the reserved identity from Partner Center. |
269+
| `STARQUERY_MSIX_PACKAGE_DISPLAY_NAME` | `StarQuery` | Package display name inside the manifest. |
270+
| `STARQUERY_MSIX_APP_DISPLAY_NAME` | `StarQuery` | App display name for the Windows launcher tile metadata. |
271+
| `STARQUERY_MSIX_BACKGROUND_COLOR` | `#101828` | Background color used in MSIX visual elements. |
272+
| `STARQUERY_MSIX_MIN_OS_VERSION` | `10.0.19041.0` | Minimum Windows version declared in the MSIX manifest. |
273+
| `STARQUERY_MSIX_MAX_OS_VERSION_TESTED` | same as `STARQUERY_MSIX_MIN_OS_VERSION` | Max tested Windows version declared in the manifest. |
274+
| `STARQUERY_MSIX_WINDOWS_KIT_VERSION` | unset | Optional Windows SDK version override for the MSIX packager. |
275+
| `STARQUERY_MSIX_WINDOWS_KIT_PATH` | unset | Optional absolute Windows SDK path override for the MSIX packager. |
276+
| `STARQUERY_MSIX_SIGN` | `false` | When `true`, the MSIX build tries to sign the package. Leave it `false` for Microsoft Store submission packages that Microsoft signs later. |
277+
| `WINDOWS_CERTIFICATE_FILE` | unset | Optional `.pfx` path for signed Windows/MSIX builds outside the Store. |
278+
| `WINDOWS_CERTIFICATE_PASSWORD` | unset | Password for `WINDOWS_CERTIFICATE_FILE`. |
279+
250280
## Backend Configuration Examples
251281

252282
### Hosted with MySQL meta database

packages/electron/forge.config.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,54 @@ const path = require('node:path');
66
const iconBasePath = path.resolve(__dirname, 'images', 'icon');
77
const pngIconPath = path.resolve(__dirname, 'images', 'icon.png');
88
const icoIconPath = path.resolve(__dirname, 'images', 'icon.ico');
9+
const msixAssetsPath = path.resolve(__dirname, 'images', 'msix-assets');
10+
11+
function readBooleanEnv(name, fallback = false) {
12+
const value = process.env[name];
13+
if (!value) {
14+
return fallback;
15+
}
16+
17+
return ['1', 'true', 'yes', 'on'].includes(value.toLowerCase());
18+
}
19+
20+
function buildMsixMakerConfig() {
21+
const minOsVersion =
22+
process.env.STARQUERY_MSIX_MIN_OS_VERSION || '10.0.19041.0';
23+
const maxOsVersionTested =
24+
process.env.STARQUERY_MSIX_MAX_OS_VERSION_TESTED || minOsVersion;
25+
26+
const config = {
27+
sign: readBooleanEnv('STARQUERY_MSIX_SIGN', false),
28+
logLevel: process.env.STARQUERY_MSIX_LOG_LEVEL || 'warn',
29+
packageAssets: msixAssetsPath,
30+
manifestVariables: {
31+
publisher: process.env.STARQUERY_MSIX_PUBLISHER || 'CN=StarQuery',
32+
publisherDisplayName:
33+
process.env.STARQUERY_MSIX_PUBLISHER_DISPLAY_NAME || 'StarQuery',
34+
packageIdentity:
35+
process.env.STARQUERY_MSIX_IDENTITY_NAME || 'InteraApps.StarQuery',
36+
packageDisplayName:
37+
process.env.STARQUERY_MSIX_PACKAGE_DISPLAY_NAME || 'StarQuery',
38+
appDisplayName:
39+
process.env.STARQUERY_MSIX_APP_DISPLAY_NAME || 'StarQuery',
40+
packageBackgroundColor:
41+
process.env.STARQUERY_MSIX_BACKGROUND_COLOR || '#101828',
42+
packageMinOSVersion: minOsVersion,
43+
packageMaxOSVersionTested: maxOsVersionTested,
44+
},
45+
};
46+
47+
if (process.env.STARQUERY_MSIX_WINDOWS_KIT_VERSION) {
48+
config.windowsKitVersion = process.env.STARQUERY_MSIX_WINDOWS_KIT_VERSION;
49+
}
50+
51+
if (process.env.STARQUERY_MSIX_WINDOWS_KIT_PATH) {
52+
config.windowsKitPath = process.env.STARQUERY_MSIX_WINDOWS_KIT_PATH;
53+
}
54+
55+
return config;
56+
}
957

1058
module.exports = {
1159
packagerConfig: {
@@ -20,6 +68,10 @@ module.exports = {
2068
setupIcon: icoIconPath,
2169
},
2270
},
71+
{
72+
name: '@electron-forge/maker-msix',
73+
config: buildMsixMakerConfig(),
74+
},
2375
{
2476
name: '@electron-forge/maker-zip',
2577
platforms: ['darwin'],
19.8 KB
Loading
3.5 KB
Loading
44 KB
Loading

packages/electron/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121
"devDependencies": {
2222
"@electron-forge/cli": "^7.8.1",
2323
"@electron-forge/maker-deb": "^7.8.1",
24+
"@electron-forge/maker-msix": "^7.11.1",
2425
"@electron-forge/maker-rpm": "^7.8.1",
2526
"@electron-forge/maker-squirrel": "^7.8.1",
2627
"@electron-forge/maker-zip": "^7.8.1",
2728
"@electron-forge/plugin-auto-unpack-natives": "^7.8.1",
2829
"@electron-forge/plugin-fuses": "^7.8.1",
2930
"@electron-forge/plugin-vite": "^7.8.1",
30-
"@tailwindcss/vite": "^4.1.7",
3131
"@electron/fuses": "^1.8.0",
32+
"@tailwindcss/vite": "^4.1.7",
3233
"@vitejs/plugin-vue": "^5.2.3",
3334
"electron": "36.2.1",
3435
"vite": "^5.0.12"

0 commit comments

Comments
 (0)