diff --git a/parseable-backstage-plugin/packages/app/src/components/Root/Root.tsx b/parseable-backstage-plugin/packages/app/src/components/Root/Root.tsx
index 0fed94c..822842e 100644
--- a/parseable-backstage-plugin/packages/app/src/components/Root/Root.tsx
+++ b/parseable-backstage-plugin/packages/app/src/components/Root/Root.tsx
@@ -75,7 +75,7 @@ export const Root = ({ children }: PropsWithChildren<{}>) => (
/>
-
+
{/* End global nav */}
diff --git a/parseable-backstage-plugin/plugins/parseable-logstream/CHANGELOG.md b/parseable-backstage-plugin/plugins/parseable-logstream/CHANGELOG.md
new file mode 100644
index 0000000..6e0d74b
--- /dev/null
+++ b/parseable-backstage-plugin/plugins/parseable-logstream/CHANGELOG.md
@@ -0,0 +1,26 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+## [0.2.0] - 2025-07-14
+
+### Changed
+- Updated UI to use "Parseable Dataset" terminology for better clarity
+- Fixed Material Table rendering issue with "Cannot use 'in' operator" error
+- Updated documentation and references throughout the codebase
+- Removed time range controls from the UI for simplicity
+- Added proper handling of log data for table rendering
+
+### Fixed
+- Fixed module import/export paths (removed .ts/.tsx extensions)
+- Fixed component name consistency across the plugin
+- Resolved runtime errors in the table component
+
+## [0.1.0] - Initial Release
+
+### Added
+- Initial implementation of the Parseable plugin for Backstage
+- Support for viewing log streams from Parseable
+- Dataset selection functionality
+- Search capabilities
+- Live tail support
diff --git a/parseable-backstage-plugin/plugins/parseable-logstream/README.md b/parseable-backstage-plugin/plugins/parseable-logstream/README.md
index df7cb3f..a7db41c 100644
--- a/parseable-backstage-plugin/plugins/parseable-logstream/README.md
+++ b/parseable-backstage-plugin/plugins/parseable-logstream/README.md
@@ -1,10 +1,10 @@
-# Parseable Logstream Plugin for Backstage
+# Parseable Dataset Plugin for Backstage
-This plugin allows engineers to pull their own Parseable log-streams directly onto an entity page in Backstage.
+This plugin allows engineers to pull their own Parseable datasets directly onto an entity page in Backstage.
## Features
-- View log streams from Parseable directly in Backstage
+- View datasets from Parseable directly in Backstage
- Select from available datasets the user has access to
- Live tail support with pause/resume functionality
- Copy log entries to clipboard
@@ -75,7 +75,7 @@ const serviceEntityPage = (
### Entity Annotation
-To enable the Parseable logstream for an entity, add the following annotation to your `catalog-info.yaml`:
+To enable the Parseable dataset for an entity, add the following annotation to your `catalog-info.yaml`:
```yaml
apiVersion: backstage.io/v1alpha1
diff --git a/parseable-backstage-plugin/plugins/parseable-logstream/package.json b/parseable-backstage-plugin/plugins/parseable-logstream/package.json
index d1664a3..9085ae4 100644
--- a/parseable-backstage-plugin/plugins/parseable-logstream/package.json
+++ b/parseable-backstage-plugin/plugins/parseable-logstream/package.json
@@ -1,6 +1,6 @@
{
"name": "@parseable/backstage-plugin-logstream",
- "version": "0.1.0",
+ "version": "0.2.0",
"description": "Backstage plugin for integrating with Parseable log streams",
"keywords": ["backstage", "plugin", "parseable", "logs", "monitoring"],
"author": "Parseable",
diff --git a/parseable-backstage-plugin/plugins/parseable-logstream/src/components/ParseableLogstreamPage.tsx b/parseable-backstage-plugin/plugins/parseable-logstream/src/components/ParseableLogstreamPage.tsx
index 6013a8a..4de848a 100644
--- a/parseable-backstage-plugin/plugins/parseable-logstream/src/components/ParseableLogstreamPage.tsx
+++ b/parseable-backstage-plugin/plugins/parseable-logstream/src/components/ParseableLogstreamPage.tsx
@@ -386,7 +386,12 @@ export const ParseableLogstreamPage = () => {
// Safely prepare log data for rendering to avoid 'in' operator errors
const prepareLogsForRendering = (logs: LogEntry[]): Record[] => {
return logs.map(log => {
- const preparedLog: Record = {};
+ // Create a new object with safe values for the table
+ const preparedLog: Record = {
+ // Add a special property that Material Table needs for the 'in' operator
+ original: {}
+ };
+
Object.entries(log).forEach(([key, value]) => {
// Ensure all values are strings or primitives, not complex objects
if (value === null || value === undefined) {
@@ -396,15 +401,21 @@ export const ParseableLogstreamPage = () => {
} else {
preparedLog[key] = String(value);
}
+
+ // Also store the original value in the 'original' property
+ preparedLog.original[key] = value;
});
+
// Add levelColor separately since it's used for styling
if (log.levelColor) {
preparedLog.levelColor = log.levelColor;
+ preparedLog.original.levelColor = log.levelColor;
}
+
return preparedLog;
});
};
-
+
// Format body column content for better readability
const formatBodyContent = (value: any): string => {
if (!value) return '';
@@ -449,7 +460,7 @@ export const ParseableLogstreamPage = () => {
if (error) {
return (
-
+
@@ -462,7 +473,7 @@ export const ParseableLogstreamPage = () => {
if (datasets.length === 0) {
return (
-
+ {
return (
-
+
- View your Parseable log streams with advanced search capabilities.
+ View your Parseable datasets with advanced search capabilities.
-
+
{!entityContext.available && (