Description
A dynamic Gutenberg block for Liaison Site Prober that fetches and displays real-time
system logs via the REST API. Engineered for performance and security,
it provides a seamless way to visualize site activity without compromising page speed.
Architecture
Plugin structure:
liaison-site-prober-viewer/
├── src/
│ ├── edit.js # Block editor UI
│ └── editor.scss # Block editor styles
├── build/
│ └── index.js # Compiled block code
├── tests/ # Jest unit tests
├── liaison-site-prober-viewer.php # Plugin bootstrap
└── package.json / node_modules # JS dependencies
Architecture Diagram (textual):
[Database: liaison-site-prober activity table]
|
v
[WordPress REST API endpoint: wp-json/site-prober/v1/logs]
|
v
[Gutenberg dynamic block: liaison-site-prober-viewer]
|
v
[Editor/UI: renders logs in a table inside the block]
Data Flow
- liaison-site-prober writes activity logs into the database.
- The REST API (
wp-json/site-prober/v1/logs) exposes logs in JSON format. - The dynamic Gutenberg block (
Editcomponent) callsapiFetch({ path: '/site-prober/v1/logs' }). - The block maintains internal state:
loadingshows Spinnererrorshows Noticelogsrenders table rows
- Logs are displayed dynamically in the block editor and frontend (if rendered).
Why Dynamic Block
- Logs are constantly changing; storing static markup would show stale data.
- Dynamic block fetches fresh logs each render.
- No need for manual updates in post content.
- Leverages REST API + React state for live data.
Security Considerations
- Permissions:
- REST endpoint uses
permission_callbackto restrict access.
- REST endpoint uses
- Sanitization:
- All output in the block uses
esc_html()to prevent XSS.
- All output in the block uses
- Deactivation checks:
- Plugin checks that
liaison-site-proberis installed and meets minimum version.
- Plugin checks that
- Avoid exposing sensitive data:
- Only logs intended for admin or authorized users are returned.
- Use
wp_die()for activation errors, preventing unsafe state.
Trade-offs / Limitations
-
Pros:
- Easy to use in Gutenberg editor.
- Always shows live logs.
- Minimal custom PHP; relies on WordPress REST API.
-
Cons:
- Slightly slower in editor due to API fetch.
- Unit testing does not hit real database (mocked).
- Requires liaison-site-prober to be installed.
- Not fully decoupled from REST API; block depends on API stability.
Testing
- Run JS unit tests:
`bash
npm ci
npm test
Block uses Jest with @wordpress/scripts preset.
REST API calls are mocked; tests cover loading, empty, and error states.
Blocks
This plugin provides 1 block.
- Liaison Site Prober Viewer Display Site Prober logs in a table.
Installation
- Install
liaison-site-proberplugin (v1.2.0+ required). - Upload
liaison-site-prober-viewertowp-content/plugins/. - Activate plugin in WordPress admin.
- Add “Liaison Site Prober Viewer” block to a post/page.
- Logs will automatically load in the block editor.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Liaison Site Prober Viewer” adalah perisian sumber terbuka. Orang-orang berikut telah menyumbang kepada pemalam ini.
PenyumbangTranslate “Liaison Site Prober Viewer” into your language.
Berminat dalam pembangunan?
Layari kod, periksa repositori SVN, atau langgani log pembangunan dengan RSS.
Changelog
1.0.0
Initial release: dynamic Gutenberg block for viewing liaison-site-prober logs.