Create MeshCentral workspace
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# Changelog
|
||||
|
||||
## 0.0.3 - Profile editor foundation
|
||||
- Added Theme Studio profile storage with a locked MeshCentral Default profile and editable cloned theme profiles.
|
||||
- Added profile dropdown selection, clone current profile, save profile, and export JSON actions.
|
||||
- Replaced the raw inventory-first screen with grouped Brand, Colors, Typography, Layout, Icons, and Advanced controls.
|
||||
- Added dropdown/select controls for fonts, density, icon set, icon size, spacing-style values, and standard color pickers for color fields.
|
||||
- Kept Apply and startup CSS hook controls disabled until generated CSS, rollback, and service-load behavior are implemented.
|
||||
|
||||
## 0.0.2 - MeshCentral-safe runtime identity
|
||||
- Changed the MeshCentral runtime `shortName` to `gpthemestudio` so MeshCentral's alphanumeric admin route guard can open the backend panel.
|
||||
- Renamed the runtime entrypoint to `gpthemestudio.js` and aligned the JavaScript export with the MeshCentral loader.
|
||||
- Preserved the GracePress catalog slug `gracepress-theme-studio` and the existing catalog facade URLs.
|
||||
|
||||
## 0.0.1 - Default theme inventory
|
||||
- Created the initial GracePress Theme Studio MeshCentral plugin.
|
||||
- Captured the current classic MeshCentral UI as a locked `MeshCentral Default` theme profile.
|
||||
- Added a backend admin panel for reviewing theme variables and future theming capabilities.
|
||||
- Kept this first release read-only; it does not inject CSS, alter templates, or modify MeshCentral core files.
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
* GracePress MeshCentral plugin download facade.
|
||||
* Generated by scripts/build; do not edit manually.
|
||||
*/
|
||||
$slug = 'gracepress-theme-studio';
|
||||
$manifest = __DIR__ . '/' . $slug . '.json';
|
||||
|
||||
if (!is_file($manifest)) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Manifest not found';
|
||||
exit;
|
||||
}
|
||||
|
||||
$data = json_decode((string) file_get_contents($manifest), true);
|
||||
$download = is_array($data) ? (string)($data['download_url'] ?? '') : '';
|
||||
$prefix = 'https://christit.com/gracepress/';
|
||||
|
||||
if ($download === '' || strncmp($download, $prefix, strlen($prefix)) !== 0) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Download not found';
|
||||
exit;
|
||||
}
|
||||
|
||||
$zip = basename(parse_url($download, PHP_URL_PATH));
|
||||
if (!preg_match('/^[a-zA-Z0-9._-]+\.zip$/', $zip)) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Invalid download';
|
||||
exit;
|
||||
}
|
||||
|
||||
$file = __DIR__ . '/' . $zip;
|
||||
if (!is_file($file)) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Package not found';
|
||||
exit;
|
||||
}
|
||||
|
||||
while (ob_get_level() > 0) {
|
||||
ob_end_clean();
|
||||
}
|
||||
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
|
||||
header('Pragma: no-cache');
|
||||
header('Content-Type: application/zip');
|
||||
header('Content-Disposition: attachment; filename="' . $zip . '"');
|
||||
header('Content-Length: ' . filesize($file));
|
||||
header('X-GracePress-Download-Url: ' . $download);
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'HEAD') {
|
||||
readfile($file);
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "GracePress Theme Studio",
|
||||
"slug": "gracepress-theme-studio",
|
||||
"type": "mcplugin",
|
||||
"category": "MeshCentral",
|
||||
"version": "0.0.3",
|
||||
"stage": "Alpha",
|
||||
"release_channel": "Internal",
|
||||
"public_release": "No",
|
||||
"public_candidate": "No",
|
||||
"wp_org_slug": "",
|
||||
"description": "MeshCentral UI theme inventory and profile editor for GracePress-managed MeshCentral servers.",
|
||||
"icon": "🧩",
|
||||
"requires_php": "8.0",
|
||||
"changelog_url": "https://christit.com/gracepress/api.php?endpoint=changelog&slug=gracepress-theme-studio",
|
||||
"changelog_updated": "2026-06-27 18:51:46 UTC",
|
||||
"download_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.3.zip",
|
||||
"file": "gracepress-theme-studio/gpthemestudio.js",
|
||||
"settings_slug": "gracepress-theme-studio",
|
||||
"last_updated": "2026-06-27 18:53:57 UTC",
|
||||
"meshcentral": {
|
||||
"short_name": "gpthemestudio",
|
||||
"has_admin_panel": true,
|
||||
"main": "gpthemestudio.js",
|
||||
"config_url": "https://christit.com/gracepress/gracepress-theme-studio.mcplugin.json"
|
||||
},
|
||||
"meshcentral_config_url": "https://christit.com/gracepress/gracepress-theme-studio.mcplugin.json",
|
||||
"install_type": "meshcentral-plugin"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "GracePress Theme Studio",
|
||||
"shortName": "gpthemestudio",
|
||||
"version": "0.0.3",
|
||||
"description": "MeshCentral UI theme profile editor for GracePress-managed MeshCentral servers.",
|
||||
"author": "Jason Eugene Garrison",
|
||||
"homepage": "https://christit.com",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://christit.com/gracepress/api.php?endpoint=manifest&slug=gracepress-theme-studio"
|
||||
},
|
||||
"hasAdminPanel": true,
|
||||
"main": "gpthemestudio.js",
|
||||
"configUrl": "https://christit.com/gracepress/gracepress-theme-studio.mcplugin.json",
|
||||
"downloadUrl": "https://christit.com/gracepress/gracepress-theme-studio.download.php",
|
||||
"changelogUrl": "https://christit.com/gracepress/api.php?endpoint=changelog&slug=gracepress-theme-studio",
|
||||
"versionHistoryUrl": "https://christit.com/gracepress/gracepress-theme-studio.tags.json",
|
||||
"meshCentralCompat": ">=1.1.0",
|
||||
"download_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.3.zip",
|
||||
"gracepress": {
|
||||
"slug": "gracepress-theme-studio",
|
||||
"type": "mcplugin",
|
||||
"built_at": "2026-06-27 18:53:57 UTC",
|
||||
"manifest_url": "https://christit.com/gracepress/api.php?endpoint=manifest&slug=gracepress-theme-studio"
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{
|
||||
"name": "0.0.3",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.3.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.3.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.3.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.2",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.2.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.2.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.2.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.1",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.1.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.1.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-theme-studio-v0.0.1.zip"
|
||||
}
|
||||
]
|
||||
Vendored
+91
@@ -0,0 +1,91 @@
|
||||
# Changelog
|
||||
|
||||
## 0.0.18 - Theme Studio 0.0.3 catalog seed
|
||||
- Updated the built-in GracePress Theme Studio catalog seed to version `0.0.3`.
|
||||
- Changed the Theme Studio description to match the new profile editor role.
|
||||
- Keeps the MeshCentral package manager authoritative over GracePress-managed plugin rows while preserving unrelated third-party plugin rows.
|
||||
|
||||
## 0.0.17 - GracePress row ownership cleanup
|
||||
- Resolves MeshCentral plugin registry row IDs from `_id`, `id`, or `pluginId` so cleanup works across MeshCentral database adapters.
|
||||
- Archives and removes GracePress-owned legacy rows when their short name no longer matches the GracePress catalog entry.
|
||||
- Archives and removes duplicate GracePress-owned rows for the same managed MeshCentral short name while preserving the active row when one exists.
|
||||
- Reports missing row IDs as explicit sync errors instead of silently leaving obsolete GracePress rows in the MeshCentral plugin catalog.
|
||||
- Keeps cleanup scoped to GracePress-managed plugin entries so unrelated third-party MeshCentral plugins are not touched.
|
||||
|
||||
## 0.0.16 - Legacy row quarantine
|
||||
- Archives and removes obsolete legacy MeshCentral plugin rows such as `gracepress-theme-studio` after preserving their registry document under the live plugin `.old` folder.
|
||||
- Preserves the installed/active status of the corrected `gpthemestudio` row during catalog sync instead of forcing managed rows back to disabled.
|
||||
- Keeps Theme Studio migration in the rolling catalog update path while avoiding duplicate disabled rows in MeshCentral's plugin list.
|
||||
|
||||
## 0.0.15 - MeshCentral-safe Theme Studio seed
|
||||
- Updated the built-in Theme Studio seed to use the MeshCentral-safe runtime short name `gpthemestudio`.
|
||||
- Preserved the public GracePress catalog slug `gracepress-theme-studio` while separating it from MeshCentral's admin-route identity.
|
||||
- Keeps the catalog-manager rolling update path as the migration mechanism for correcting installed MeshCentral plugin rows.
|
||||
- Migrates the legacy `gracepress-theme-studio` MeshCentral row forward to `gpthemestudio` instead of creating a duplicate row.
|
||||
|
||||
## 0.0.14 - Built-in MeshCentral plugin catalog seed
|
||||
- Added a deterministic built-in GracePress MeshCentral plugin catalog seed for `GracePress Theme Studio`.
|
||||
- Changed discovery to write disabled plugin rows through MeshCentral's database helper directly instead of the higher-level plugin wrapper.
|
||||
- Added explicit sync-stage logging so MeshCentral service logs show whether discovery starts, reads existing rows, inserts rows, or fails.
|
||||
- Kept the dynamic catalog URL in metadata for a later pass, but removed runtime catalog fetch as a dependency for exposing the first managed plugin.
|
||||
|
||||
## 0.0.13 - Constructor startup sync
|
||||
- Moved GracePress MeshCentral plugin discovery into the plugin constructor path because MeshCentral does not call `server_startup()` for already-installed plugins during ordinary service reload.
|
||||
- Kept the `server_startup()` hook for install/upgrade compatibility while also scheduling discovery shortly after plugin load.
|
||||
- Added an admin-panel fallback that starts discovery if the connector panel opens before the scheduled sync has run.
|
||||
|
||||
## 0.0.12 - Catalog plugin discovery
|
||||
- Added startup sync from the GracePress `mcplugins` catalog bucket into MeshCentral's plugin registry.
|
||||
- Missing GracePress MeshCentral plugins are now inserted as disabled/available rows, ready for MeshCentral's normal Install action.
|
||||
- Existing disabled rows are refreshed from their current `.mcplugin.json` config while active installed plugins are left alone.
|
||||
- Added backend panel sync status so catalog discovery can be inspected from the connector admin view.
|
||||
|
||||
## 0.0.11 - Facade confirmation update
|
||||
- Published a marker-only update to confirm the MeshCentral git facade shape after the successful `0.0.10` upgrade.
|
||||
- Preserved the MeshCentral-facing `downloadUrl` and `versionHistoryUrl` facade URLs in package config.
|
||||
- Updated the backend panel test marker to `0.0.11`.
|
||||
|
||||
## 0.0.10 - MeshCentral git facade test
|
||||
- Added a marker-only update that uses GracePress-generated MeshCentral git facade URLs.
|
||||
- Switched MeshCentral `downloadUrl` to the no-query `gracepress.download.php` package facade.
|
||||
- Switched MeshCentral `versionHistoryUrl` to `gracepress.tags.json`, shaped like a GitHub tags response with `name` and `url` fields.
|
||||
- Updated the backend panel test marker to `0.0.10`.
|
||||
|
||||
## 0.0.9 - Versioned download URL retest
|
||||
- Published a marker-only update that uses the versioned package URL as MeshCentral `downloadUrl`.
|
||||
- Avoided the cached `gracepress-latest.zip` alias and the nginx path-info download route while validating the built-in Upgrade action.
|
||||
- Updated the backend panel test marker to `0.0.9`.
|
||||
|
||||
## 0.0.8 - Upgrade flow retest
|
||||
- Published a small marker-only update for validating MeshCentral's built-in Upgrade action after the MySQL plugin registry repair.
|
||||
- Updated the backend panel test marker to `0.0.8` so a successful install can be confirmed from the MeshCentral plugin panel.
|
||||
|
||||
## 0.0.7 - Direct MeshCentral latest zip
|
||||
- Replaced the query-string latest-download endpoint with a stable `gracepress-latest.zip` file because MeshCentral's plugin downloader builds requests from `URL.pathname` and drops query strings.
|
||||
- Kept versioned GracePress release artifacts while adding a MeshCentral-safe latest zip alias for the built-in Upgrade action.
|
||||
- Updated package metadata so installed MeshCentral config rows keep using the stable latest zip URL after upgrade.
|
||||
|
||||
## 0.0.6 - Stable MeshCentral upgrade download
|
||||
- Added a GracePress `mcplugin-download` endpoint for MeshCentral's built-in Upgrade action.
|
||||
- Changed the MeshCentral-facing `downloadUrl` to a stable latest-download endpoint because MeshCentral upgrades from the installed DB row, not the freshly fetched latest config object.
|
||||
- Kept the GracePress manifest `download_url` versioned for catalog and rollback clarity.
|
||||
|
||||
## 0.0.5 - Upgrade detection test
|
||||
- Published a small catalog-only test update for MeshCentral's built-in Upgrade action.
|
||||
- Added a visible backend panel note so successful upgrade can be confirmed after MeshCentral installs the package.
|
||||
|
||||
## 0.0.4 - MeshCentral lifecycle alignment
|
||||
- Renamed the display/package name to GracePress Catalog Connector while preserving the stable `gracepress` slug and MeshCentral `shortName`.
|
||||
- Changed MeshCentral repository metadata to `git` so MeshCentral's built-in installer and upgrade action can download the GracePress-hosted zip.
|
||||
- Documented the active plugin identity rule: folder name, `shortName`, JS export, config row, and catalog slug must line up.
|
||||
- Prepared the live registry cleanup from duplicate `gracepress` rows into one active catalog-managed plugin.
|
||||
|
||||
## 0.0.3 - Catalog-managed backend panel
|
||||
- Moved the live GracePress MeshCentral dummy plugin into the GracePress workspace as an `mcplugin` package.
|
||||
- Added internal MeshCentral plugin header metadata for GracePress catalog builds.
|
||||
- Added backend admin panel catalog checks against the GracePress manifest endpoint.
|
||||
- Updated MeshCentral plugin config URLs to use the GracePress catalog-managed package, config, and changelog artifacts.
|
||||
|
||||
## 0.0.2 - Backend hello-world route
|
||||
- Replaced device-tab test behavior with a backend/admin plugin panel.
|
||||
- Kept MeshCentral plugin permissions unused while the current MeshCentral database adapter reports missing plugin-permission helpers.
|
||||
Vendored
+57
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
* GracePress MeshCentral plugin download facade.
|
||||
* Generated by scripts/build; do not edit manually.
|
||||
*/
|
||||
$slug = 'gracepress';
|
||||
$manifest = __DIR__ . '/' . $slug . '.json';
|
||||
|
||||
if (!is_file($manifest)) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Manifest not found';
|
||||
exit;
|
||||
}
|
||||
|
||||
$data = json_decode((string) file_get_contents($manifest), true);
|
||||
$download = is_array($data) ? (string)($data['download_url'] ?? '') : '';
|
||||
$prefix = 'https://christit.com/gracepress/';
|
||||
|
||||
if ($download === '' || strncmp($download, $prefix, strlen($prefix)) !== 0) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Download not found';
|
||||
exit;
|
||||
}
|
||||
|
||||
$zip = basename(parse_url($download, PHP_URL_PATH));
|
||||
if (!preg_match('/^[a-zA-Z0-9._-]+\.zip$/', $zip)) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Invalid download';
|
||||
exit;
|
||||
}
|
||||
|
||||
$file = __DIR__ . '/' . $zip;
|
||||
if (!is_file($file)) {
|
||||
http_response_code(404);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'Package not found';
|
||||
exit;
|
||||
}
|
||||
|
||||
while (ob_get_level() > 0) {
|
||||
ob_end_clean();
|
||||
}
|
||||
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
|
||||
header('Pragma: no-cache');
|
||||
header('Content-Type: application/zip');
|
||||
header('Content-Disposition: attachment; filename="' . $zip . '"');
|
||||
header('Content-Length: ' . filesize($file));
|
||||
header('X-GracePress-Download-Url: ' . $download);
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'HEAD') {
|
||||
readfile($file);
|
||||
}
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "GracePress Catalog Connector",
|
||||
"slug": "gracepress",
|
||||
"type": "mcplugin",
|
||||
"category": "MeshCentral",
|
||||
"version": "0.0.18",
|
||||
"stage": "Alpha",
|
||||
"release_channel": "Internal",
|
||||
"public_release": "No",
|
||||
"public_candidate": "No",
|
||||
"wp_org_slug": "",
|
||||
"description": "MeshCentral backend connector for GracePress catalog-managed plugin delivery, updates, and diagnostics.",
|
||||
"icon": "🧩",
|
||||
"requires_php": "8.0",
|
||||
"changelog_url": "https://christit.com/gracepress/api.php?endpoint=changelog&slug=gracepress",
|
||||
"changelog_updated": "2026-06-27 18:52:52 UTC",
|
||||
"download_url": "https://christit.com/gracepress/gracepress-v0.0.18.zip",
|
||||
"file": "gracepress/gracepress.js",
|
||||
"settings_slug": "gracepress",
|
||||
"last_updated": "2026-06-27 18:53:57 UTC",
|
||||
"meshcentral": {
|
||||
"short_name": "gracepress",
|
||||
"has_admin_panel": true,
|
||||
"main": "gracepress.js",
|
||||
"config_url": "https://christit.com/gracepress/gracepress.mcplugin.json"
|
||||
},
|
||||
"meshcentral_config_url": "https://christit.com/gracepress/gracepress.mcplugin.json",
|
||||
"install_type": "meshcentral-plugin"
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "GracePress Catalog Connector",
|
||||
"shortName": "gracepress",
|
||||
"version": "0.0.18",
|
||||
"description": "MeshCentral backend connector for GracePress catalog-managed plugin delivery, updates, and diagnostics.",
|
||||
"author": "Jason Eugene Garrison",
|
||||
"homepage": "https://christit.com",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://christit.com/gracepress/api.php?endpoint=manifest&slug=gracepress"
|
||||
},
|
||||
"hasAdminPanel": true,
|
||||
"main": "gracepress.js",
|
||||
"configUrl": "https://christit.com/gracepress/gracepress.mcplugin.json",
|
||||
"downloadUrl": "https://christit.com/gracepress/gracepress.download.php",
|
||||
"changelogUrl": "https://christit.com/gracepress/api.php?endpoint=changelog&slug=gracepress",
|
||||
"versionHistoryUrl": "https://christit.com/gracepress/gracepress.tags.json",
|
||||
"meshCentralCompat": ">=1.1.0",
|
||||
"download_url": "https://christit.com/gracepress/gracepress-v0.0.18.zip",
|
||||
"gracepress": {
|
||||
"slug": "gracepress",
|
||||
"type": "mcplugin",
|
||||
"built_at": "2026-06-27 18:53:57 UTC",
|
||||
"manifest_url": "https://christit.com/gracepress/api.php?endpoint=manifest&slug=gracepress"
|
||||
}
|
||||
}
|
||||
Vendored
+98
@@ -0,0 +1,98 @@
|
||||
[
|
||||
{
|
||||
"name": "0.0.18",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.18.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.18.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.18.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.17",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.17.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.17.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.17.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.16",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.16.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.16.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.16.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.15",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.15.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.15.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.15.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.14",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.14.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.14.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.14.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.13",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.13.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.13.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.13.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.12",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.12.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.12.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.12.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.11",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.11.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.11.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.11.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.10",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.10.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.10.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.10.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.9",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.9.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.9.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.9.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.8",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.8.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.8.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.8.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.7",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.7.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.7.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.7.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.6",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.6.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.6.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.6.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.5",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.5.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.5.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.5.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.4",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.4.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.4.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.4.zip"
|
||||
},
|
||||
{
|
||||
"name": "0.0.3",
|
||||
"zipball_url": "https://christit.com/gracepress/gracepress-v0.0.3.zip",
|
||||
"tarball_url": "https://christit.com/gracepress/gracepress-v0.0.3.zip",
|
||||
"url": "https://christit.com/gracepress/gracepress-v0.0.3.zip"
|
||||
}
|
||||
]
|
||||
Vendored
+163
@@ -0,0 +1,163 @@
|
||||
# GracePress: MeshPress Sync Changelog
|
||||
|
||||
## Current
|
||||
- Added a new-server onboarding wizard for bridge URL, token, public MeshCentral URL, advanced mode, and first health checks.
|
||||
- Added a connection health panel for WordPress-to-bridge, bridge-to-MeshCentral, public URL, fleet freshness, bridge push, and OmniLog event flow.
|
||||
- Added an advanced-mode gate for MeshCentral Ops and raw troubleshooting controls.
|
||||
- Added an agent enrollment check to confirm newly installed agents appear in the selected MeshCentral group.
|
||||
- Added a protected bridge event receiver so MeshPress Bridge lifecycle events can flow into OmniLog.
|
||||
|
||||
## 1.13.0 - 2026-06-12
|
||||
- Added a new-server onboarding wizard for bridge URL, token, public MeshCentral URL, advanced mode, and first health checks.
|
||||
- Added a connection health panel for WordPress-to-bridge, bridge-to-MeshCentral, public URL, fleet freshness, bridge push, and OmniLog event flow.
|
||||
- Added an advanced-mode gate for MeshCentral Ops and raw troubleshooting controls.
|
||||
- Added an agent enrollment check to confirm newly installed agents appear in the selected MeshCentral group.
|
||||
- Added a protected bridge event receiver so MeshPress Bridge lifecycle events can flow into OmniLog.
|
||||
|
||||
## 1.12.7 - 2026-05-25
|
||||
- Added separate controls for bridge maintenance and real MeshCentral maintenance mode.
|
||||
- Added redacted MeshCentral config audit output for safer copy/paste diagnostics.
|
||||
- Upgraded backups to request full MeshCentral snapshots, including MySQL/MariaDB dumps when configured.
|
||||
|
||||
## 1.12.6 - 2026-05-25
|
||||
- Rolled MeshPress admin back to the last known stable 1.12.1 layout after later rescue edits broke tabs, buttons, and fleet loading.
|
||||
- Preserved MeshCentral `@` characters in group/device identifiers before sending requests to the bridge.
|
||||
- Removed browser dark-mode override CSS that inverted MeshPress cards in light mode.
|
||||
- Restored explicit MeshCentral maintenance-mode enable/disable controls now that the bridge endpoint is stable again.
|
||||
- Simplified agent provisioning into one primary Linux install command plus a compact installer/link picker.
|
||||
- Added clearer Mesh ID diagnostics without forcing operators to manually paste or understand the raw MeshCentral group id.
|
||||
|
||||
## 1.12.5 - 2026-05-24
|
||||
- Rolled MeshPress admin back to the last known stable 1.12.1 layout after later rescue edits broke tabs, buttons, and fleet loading.
|
||||
- Preserved MeshCentral `@` characters in group/device identifiers before sending requests to the bridge.
|
||||
- Removed browser dark-mode override CSS that inverted MeshPress cards in light mode.
|
||||
|
||||
## 1.12.0 - 2026-05-24
|
||||
- Added a MeshCentral Ops tab for runtime/update checks, guarded backups, and agent uninstall diagnostics through the bridge.
|
||||
- Added an operator-only uninstall-agent test button to the device troubleshooting flow.
|
||||
- Added admin output panels designed for copyable diagnostics when bridge maintenance or MeshCentral commands fail.
|
||||
|
||||
## 1.11.9 - 2026-05-24
|
||||
- Improved the fleet overview with grouped device cards, search, group filtering, status filtering, and direct Desktop/Terminal/Files actions.
|
||||
- Expanded agent deployment output for Windows, macOS, Linux, Mesh Assistant, and copyable Linux install commands.
|
||||
- Added clearer provisioning guidance and bridge diagnostic output for group edit failures.
|
||||
|
||||
## 1.11.8 - 2026-05-24
|
||||
- Routed fleet Desktop/Console/Files buttons through bridge-generated session links instead of locally guessed URLs.
|
||||
- Preserved MeshCentral `$` node ids through AJAX sanitization and made `viewmode-first + gotonode` the tested primary path.
|
||||
- Added session diagnostics plus manual group edit, device rename, and device move controls for bridge testing.
|
||||
|
||||
## 1.11.7 - 2026-05-23
|
||||
- Added bridge runtime version/status visibility and manual update triggering from MeshPress admin.
|
||||
- Added a richer Desktop/Console/Files session link tester with multiple MeshCentral direct-link candidates.
|
||||
- Cleaned mojibake labels from fleet action buttons.
|
||||
|
||||
## 1.11.6 - 2026-05-23
|
||||
- Added Bridge Runtime Status controls for version checks and manual bridge updates.
|
||||
- Added support for bridge `/api/session-links` and console link candidate testing.
|
||||
- Renamed Terminal actions to Console in the UI to match the workflow being tested.
|
||||
|
||||
## 1.11.5 - 2026-05-23
|
||||
- Added a Diagnostics & Manual Actions tab for bridge probing and first-party MeshCentral validation.
|
||||
- Added manual MeshCentral group creation from MeshPress, with clear output and generated agent links.
|
||||
- Added read-only bridge probes for health, status, self-test, groups, devices, users, events, server info, and device info.
|
||||
- Added direct session link testing for Desktop, Terminal, and Files in both `gotonode` and `node` URL formats.
|
||||
|
||||
<!-- GP-RECONSTRUCTED-CHANGELOG:START -->
|
||||
|
||||
## Reconstructed History
|
||||
|
||||
These entries were inferred from local distribution archives, module headers, and `.old` backups. They are intentionally conservative and may not capture the full intent of each change.
|
||||
|
||||
### 1.11.4 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.11.4.zip` (2026-05-21).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Header advertised WordPress compatibility through 7.0.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.11.3 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.11.3.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.11.2 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.11.2.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.11.1 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.11.1.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.11.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.11.0.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.10.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.10.0.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.9.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.9.0.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.8.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.8.0.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.7.1 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.7.1.zip` (2026-05-20).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects to the custom MeshCentral GracePress API plugin for flawless fleet syncing and management.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.7.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.7.0.zip` (2026-05-18).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Connects to the custom MeshCentral GracePress API plugin for flawless fleet syncing and management.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.5.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.5.0.zip` (2026-05-18).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Uses a secure Cookie-Based REST API bridge to sync your MeshCentral fleet into WordPress.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.4.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.4.0.zip` (2026-05-18).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Uses a native WebSocket payload engine to sync your MeshCentral fleet into WordPress.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.3.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.3.0.zip` (2026-05-18).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Uses a native WebSocket engine to sync your MeshCentral fleet into WordPress.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.1.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.1.0.zip` (2026-05-18).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Syncs your MeshCentral fleet into WordPress for instant remote desktops and API-driven automation.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
### 1.0.0 - reconstructed
|
||||
- Reconstructed from archive `mesh-press-v1.0.0.zip` (2026-05-18).
|
||||
- Header description at this version: Enterprise Remote Monitoring & Management (RMM) bridge. Syncs your MeshCentral fleet into WordPress for instant remote desktops and API-driven automation.
|
||||
- Catalog/category marker: Utility.
|
||||
- Header icon marker: 🌐.
|
||||
|
||||
<!-- GP-RECONSTRUCTED-CHANGELOG:END -->
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "GracePress: MeshPress Sync",
|
||||
"slug": "mesh-press",
|
||||
"type": "plugin",
|
||||
"category": "Utility",
|
||||
"version": "1.13.0",
|
||||
"stage": "Production",
|
||||
"description": "Enterprise Remote Monitoring & Management (RMM) bridge. Connects WordPress to the GracePress MeshPress Bridge for MeshCentral fleet syncing and client/device workflows.",
|
||||
"icon": "🌐",
|
||||
"requires_php": "8.0",
|
||||
"changelog_url": "https://christit.com/gracepress/api.php?endpoint=changelog&slug=mesh-press",
|
||||
"changelog_updated": "2026-06-12 19:28:43 UTC",
|
||||
"download_url": "https://christit.com/gracepress/mesh-press-v1.13.0.zip",
|
||||
"file": "mesh-press/mesh-press.php",
|
||||
"settings_slug": "mesh-press",
|
||||
"last_updated": "2026-06-12 19:29:09 UTC"
|
||||
}
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
# meshpress-bridge Changelog
|
||||
|
||||
## Current
|
||||
- Fixed agent-link generation to pass the resolved group object instead of a boolean match flag.
|
||||
- Added selective WordPress event pushes for high-signal bridge lifecycle events so MeshPress can forward them into OmniLog.
|
||||
- Added bridge status visibility for WordPress event push configuration.
|
||||
|
||||
## 0.4.3 - 2026-06-12
|
||||
- Fixed agent-link generation to pass the resolved group object instead of a boolean match flag.
|
||||
- Added selective WordPress event pushes for high-signal bridge lifecycle events so MeshPress can forward them into OmniLog.
|
||||
- Added bridge status visibility for WordPress event push configuration.
|
||||
|
||||
## 0.4.2 - 2026-05-25
|
||||
- Added redacted MeshCentral config auditing for MySQL/MariaDB, framing, logging, backup, and maintenance posture.
|
||||
- Added real MeshCentral `settings.maintenanceMode` toggling with config backup and service restart support.
|
||||
- Replaced the data-only backup with a guarded full snapshot that includes MeshCentral files, config, manifest, checksum, and a MySQL/MariaDB dump when configured.
|
||||
- Added a configurable database dump timeout (`MESHPRESS_DB_DUMP_TIMEOUT_SECONDS`) so backup failures produce clear diagnostics instead of hanging.
|
||||
|
||||
## 0.4.1 - 2026-05-25
|
||||
- Resolved MeshCentral groups before generating agent links, so WordPress punctuation drift no longer breaks installer commands.
|
||||
- Generated Linux install commands from the canonical group short id, including MeshCentral `@` characters.
|
||||
- Returned the matched group record and group name with agent-link responses for clearer MeshPress output.
|
||||
- Returned normalized group `short_id` values so agent-link generation can preserve MeshCentral punctuation across the full path.
|
||||
- Added installer-shape diagnostics and an explicit warning when the resolved short Mesh ID looks too short.
|
||||
- Added a curl fallback command while keeping the native MeshCentral wget installer command as the primary Linux path.
|
||||
|
||||
## 0.4.0 - 2026-05-24
|
||||
- Resolved MeshCentral groups before generating agent links, so WordPress punctuation drift no longer breaks installer commands.
|
||||
- Generated Linux install commands from the canonical group short id, including MeshCentral `@` characters.
|
||||
- Returned the matched group record and group name with agent-link responses for clearer MeshPress output.
|
||||
|
||||
## 0.3.9 - 2026-05-24
|
||||
- Replaced the bridge updater with a staged, verified, rollback-capable update flow that does not delete PM2 before the new copy is ready.
|
||||
- Added catalog update checks and a runtime maintenance-mode toggle endpoint for MeshPress.
|
||||
- Made group-id resolution tolerant of MeshCentral punctuation drift, and switched Linux agent commands to MeshCentral's native install-script pattern.
|
||||
|
||||
## 0.3.8 - 2026-05-24
|
||||
- Group edits now verify the refreshed MeshCentral group record before returning success.
|
||||
- Added extra group edit diagnostics when MeshCtrl accepts a command but the group does not actually change.
|
||||
- Tried both `--desc` and `--description` edit forms for better MeshCtrl version compatibility.
|
||||
|
||||
## 0.3.7 - 2026-05-24
|
||||
- Added guarded MeshCentral maintenance endpoints for version/update checks, data backups, and update triggering.
|
||||
- Added agent uninstall diagnostics and richer copy-friendly bridge logging for lifecycle testing.
|
||||
- Hardened the bridge installer/updater so running from the live `/opt` target refuses instead of deleting itself.
|
||||
|
||||
## 0.3.6 - 2026-05-24
|
||||
- Rejected MeshCtrl failure text even when MeshCtrl exits with code 0, preventing false-success group edit responses.
|
||||
- Added richer group edit candidate attempts and copyable JSON diagnostics for invalid group identifiers.
|
||||
- Expanded agent link generation with Windows, Linux, macOS, Mesh Assistant, and Linux install command output.
|
||||
|
||||
## 0.3.5 - 2026-05-24
|
||||
- Changed MeshCentral session links to prefer the working `viewmode-first + gotonode` URL pattern.
|
||||
- Added short-node-id extraction for `gotonode` links so full `node//...` ids do not break direct console sessions.
|
||||
- Added `/api/session-diagnostics/:nodeId` plus guarded device rename and move endpoints for manual MeshPress testing.
|
||||
|
||||
## 0.3.4 - 2026-05-23
|
||||
- Added bridge runtime version reporting and a guarded manual update endpoint for MeshPress admin.
|
||||
- Added richer MeshCentral session-link generation for Desktop, Console, and Files with multiple direct-link candidates.
|
||||
- Added `console` and `shell` aliases for MeshCentral terminal sessions.
|
||||
|
||||
## 0.3.3 - 2026-05-23
|
||||
- Added `/api/version`, `/api/update-now`, and `/api/session-links/:nodeId`.
|
||||
- Added all-link candidate generation for MeshCentral session testing.
|
||||
- Restarted bridge updates with `pm2 --update-env` so env/config changes are picked up.
|
||||
|
||||
## 0.3.2 - 2026-05-23
|
||||
- Hardened bridge authentication for public-port exposure by requiring a configured bearer token on all endpoints.
|
||||
- Added optional exact-IP allowlisting and failed-auth rate limiting.
|
||||
- Moved WordPress fleet push authentication from query string to Authorization header.
|
||||
- Added startup security warnings for all-interface binding without app-layer allowlisting.
|
||||
|
||||
## 0.3.1 - 2026-05-23
|
||||
- Added bridge self-test, server-info, users, events, and device-info diagnostics for MeshPress.
|
||||
- Added configurable MeshCentral direct-link style with `MESHPRESS_LINK_MODE`.
|
||||
- Added guarded provisioning endpoints for group edit/remove, group user assignment, invite links, and simple device message/toast commands.
|
||||
- Added cache clearing and richer status output for faster troubleshooting.
|
||||
|
||||
## 0.3.0 - 2026-05-22
|
||||
- Added Phase 5.2 MeshCentral provisioning endpoints for Service Desk.
|
||||
- Added authenticated agent/provisioning link generation for MeshCentral device groups.
|
||||
- Added guarded device group creation through MeshCtrl `adddevicegroup`.
|
||||
- Required `MESHPRESS_ALLOW_COMMANDS=1` before the bridge will create MeshCentral groups, keeping provisioning actions opt-in.
|
||||
- Returned Windows x64, x86, ARM64, and interactive Windows agent links for linked MeshCentral groups.
|
||||
|
||||
<!-- GP-RECONSTRUCTED-CHANGELOG:START -->
|
||||
|
||||
## Reconstructed History
|
||||
|
||||
These entries were inferred from local distribution archives, module headers, and `.old` backups. They are intentionally conservative and may not capture the full intent of each change.
|
||||
|
||||
### 0.2.0 - reconstructed
|
||||
- Reconstructed from archive `meshpress-bridge-v0.2.0.zip` (2026-05-20).
|
||||
- Header description at this version: GracePress MeshPress Bridge. Pushes MeshCentral fleet snapshots to WordPress MeshPress.
|
||||
- Catalog/category marker: Hidden.
|
||||
|
||||
### 0.1.1 - reconstructed
|
||||
- Reconstructed from 2 file backup(s) in `tools/meshpress-bridge/.old`.
|
||||
- Exact intent unknown; this confirms a recoverable historical version existed.
|
||||
|
||||
### 0.1.0 - reconstructed
|
||||
- Reconstructed from 1 file backup(s) in `tools/meshpress-bridge/.old`.
|
||||
- Exact intent unknown; this confirms a recoverable historical version existed.
|
||||
|
||||
### VERSION, - reconstructed
|
||||
- Reconstructed from 2 file backup(s) in `tools/meshpress-bridge/.old`.
|
||||
- Exact intent unknown; this confirms a recoverable historical version existed.
|
||||
|
||||
<!-- GP-RECONSTRUCTED-CHANGELOG:END -->
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "meshpress-bridge",
|
||||
"slug": "meshpress-bridge",
|
||||
"type": "tool",
|
||||
"category": "Hidden",
|
||||
"version": "0.4.3",
|
||||
"stage": "Production",
|
||||
"description": "GracePress MeshPress Bridge. Pushes MeshCentral fleet snapshots to WordPress MeshPress.",
|
||||
"icon": "⚙️",
|
||||
"requires_php": "7.4",
|
||||
"changelog_url": "https://christit.com/gracepress/api.php?endpoint=changelog&slug=meshpress-bridge",
|
||||
"changelog_updated": "2026-06-12 19:28:43 UTC",
|
||||
"download_url": "https://christit.com/gracepress/meshpress-bridge-v0.4.3.zip",
|
||||
"file": "meshpress-bridge/meshpress-bridge",
|
||||
"settings_slug": "",
|
||||
"last_updated": "2026-06-12 19:29:32 UTC"
|
||||
}
|
||||
Reference in New Issue
Block a user