🦚 Peacock Unified

🏗️ App Invariants

Layer 2 — application architecture · 1,820 documents

IDDocumentSource
app_invariants__b794d4600afca959INVARIANT: All dynamic query components (e.g., span names, filter values) MUST have special characters escaped to prevent syntax errors or query injection. SHADOW: Unescaped special characters in…—
app_invariants__c45cae37da4e8b55INVARIANT: Trace ID queries MUST adjust their time range by configured time-shift parameters if enabled, or explicitly reset the range to zero otherwise, to accurately scope the trace…—
app_invariants__7e5ef179525f8855INVARIANT: Label values for variable queries MUST be retrieved with an associated scope and tag name, ensuring contextual correctness and efficient filtering. SHADOW: Retrieving label values without…—
app_invariants__a87515bb48056834INVARIANT: The client and server identifiers used in service map queries MUST be resolved from the incoming Prometheus metric data, with an optional namespace prefix to form unique, fully qualified…—
app_invariants__95c3104faa744a43INVARIANT: Service map node arcs representing 'failed' requests MUST be capped at the 'total' requests to prevent visual misrepresentation of failure rates. SHADOW: If reported 'failed' counts…—
app_invariants__7d915b0eeb8cf245INVARIANT: The `isInstrumented` property of a service map node MUST be accurately determined from `connection_type` labels in metric responses, defaulting to true if the label is absent or indicates…—
app_invariants__215988920b03cedfINVARIANT: The `TempoDatasource` query method MUST ensure that queries using the deprecated `nativeSearch` type are seamlessly migrated to `traceqlSearch` before execution. SHADOW: Failure to…—
app_invariants__fc5961a90c582bd2INVARIANT: The `TempoDatasource` query method MUST group incoming targets by `queryType` and process each group (trace ID, TraceQL, search, upload, service map) through dedicated, independent…—
app_invariants__ba81e0e557c2bb45INVARIANT: The TempoLanguageProvider MUST refresh backend tags only when the minute-level granularity of the time range has changed or if the previous range state is undefined. SHADOW: Excessive or…—
app_invariants__8682a9e9b9aba46cINVARIANT: The autocompletion system for TraceQL MUST parse the query context (cursor position, surrounding tokens) to determine the appropriate type of suggestions (tags, operators, functions,…—
app_invariants__8dc3eed37bb30cb6INVARIANT: TraceQL queries returning nested data frames MUST have the 'nested' field's type explicitly set to 'nestedFrames' and its values transformed to the expected DataFrame structure, including…—
app_invariants__b1df267a2cfd2e20INVARIANT: All identifiers and string literals inserted into SQL queries MUST be properly quoted and escaped according to MySQL's syntax rules, and validated against reserved words. SHADOW: Failure…—
app_invariants__5e4052ac0c23c764INVARIANT: The hierarchical structure of datasets, tables, and fields MUST be discoverable through dedicated metadata queries, ensuring that users can browse and select valid database components for…—
app_invariants__58c3f70104357a67INVARIANT: SQL query generation MUST include schema-qualified table names enclosed in brackets, and automatically prepend `TOP(limit)` for queries with a defined limit, to ensure syntactical…—
app_invariants__b715bd3e8a874bebINVARIANT: JSON file uploads MUST be validated against the expected Jaeger trace data format, with an explicit error message returned for invalid structures. SHADOW: Processing malformed JSON as…—
app_invariants__ba699ba7bb8fb673INVARIANT: The `JaegerDatasource` query method MUST ensure that if node graph visualization is enabled, corresponding node and edge data frames are generated and appended to the trace…—
app_invariants__0cca6780334b4e20INVARIANT: All template variables in Jaeger queries (service, operation, query, tags, minDuration, maxDuration) MUST be fully interpolated using the template service before query execution. SHADOW:…—
app_invariants__0e291692ff04cfc3INVARIANT: CloudMonitoring queries MUST undergo migration to the latest query format, specifically transforming deprecated 'metricQuery' structures into 'timeSeriesList' or 'timeSeriesQuery' forms,…—
app_invariants__e887578039f18a10INVARIANT: All template variables within CloudMonitoring queries MUST be recursively interpolated, with specific formatting for PromQL expressions and multi-value filters, ensuring query parameters…—
app_invariants__eac33270a56001c7INVARIANT: Queries MUST be filtered for validity based on their `queryType` and the completeness of their required sub-query properties (e.g., `projectName`, `metricType`, `selectorName`), ensuring…—
app_invariants__8f0b183fdbbffb41INVARIANT: Layer state must remain decoupled from the OpenLayers instance boundary. SHADOW: The architecture forces a clear separation between the raw OpenLayers BaseLayer and the Grafana-managed…—
app_invariants__d894b7b6da8b8a12INVARIANT: Layer initialization must be idempotent regarding the OpenLayers map target. SHADOW: When re-initializing layers (e.g., during config updates or GeoJSON URL changes), the system must…—
app_invariants__e7b18a8b9d9815ceINVARIANT: Data-to-Feature mapping must be throttled via debounce during pointer movement. SHADOW: Because map interaction events fire at a high frequency, the tooltip and hover payload calculation…—
app_invariants__6e3fdc84c7d01e5bINVARIANT: Feature properties must be immutable relative to the underlying data frame linkage. SHADOW: The system links features to data frames via 'frame' and 'rowIndex' properties on the…—
app_invariants__6d82af95041a59baINVARIANT: Global Ordinal Re-indexing of Disjoint Enums SHADOW: When merging multiple data frames for a single visual axis, discrete enum values must be re-indexed into a unified ordinal space.…—
app_invariants__39d1162a00a12621INVARIANT: Explicit Materialization of Temporal Gaps SHADOW: Time-series continuity must be explicitly broken via null-insertion if the sample interval exceeds the defined threshold. This…—
app_invariants__271ec543a492052cINVARIANT: Pure-Function Legacy Schema Transformation SHADOW: Transformations from legacy Angular models to uPlot-compliant React configurations must be deterministic and pure. This ensures that…—
app_invariants__03cf89e3342b4f21INVARIANT: Dynamic Asset Concatenation for Map Theming SHADOW: Base map style identifiers must dynamically resolve from a combination of system theme (dark/light) and functional flags (labels). This…—
app_invariants__570655dfa736849dINVARIANT: Temporal Synchronization via Outer Join SHADOW: Asynchronous data frames from heterogeneous sources must be aligned onto a single shared temporal axis before rendering. This guarantees…—
app_invariants__7d7ea1d6b646cb9bINVARIANT: Fallthrough Field-to-Dimension Binding SHADOW: Specialized visualizations (e.g., Candlesticks) must satisfy their specific dimension requirements (Open/High/Low/Close) through a rigid…—
app_invariants__504d7770d75cb258INVARIANT: Plugin-provided content is strictly isolated within a sandbox environment to prevent unauthorized DOM manipulation or script injection into the host application context. SHADOW: Violation…—
app_invariants__a496f69bef0a0505INVARIANT: All data queries are subject to configured maximum data points and series limits, preventing excessive memory consumption and performance degradation on both the server and…—
app_invariants__73f137f2fd4a36c5INVARIANT: Data source configurations are managed as stateful, independent instances, with explicit HTTP client lifecycles, configuration parsing, and secure data handling. SHADOW: Failure to manage…—
app_invariants__2d81c518cdb6e6f6INVARIANT: System and UI behavior is conditionally controlled by explicit feature toggles, enabling dynamic activation or deactivation of functionality without code redeployment. SHADOW:…—
app_invariants__ba93669bcb687146INVARIANT: Core architectural schemas are defined and validated in CUE, serving as a single source of truth for generating language-specific code artifacts and ensuring data model consistency across…—
app_invariants__96c67f5263c3f8a2INVARIANT: Global time ranges and template variable selections are centrally managed and automatically propagated to all relevant dashboards and panels, ensuring a consistent analytical…—
app_invariants__4f537113c6c44818INVARIANT: Resource creation and deletion operations are designed to be idempotent or gracefully handle existing/non-existing states, ensuring reliable system state transitions, especially in…—
app_invariants__dec6505f3b036d14INVARIANT: Public dashboard accessibility is dynamically controlled by a configurable state, dictating whether external users can view the dashboard (status 200) or are denied access (status…—
app_invariants__66ca97fd9e109205INVARIANT: Large datasets, such as trace views, are lazy-loaded and progressively rendered as the user scrolls, preventing initial load performance bottlenecks and maintaining UI…—
app_invariants__20112f447f82de12INVARIANT: Dashboard configurations, including variable selections and time ranges, can be fully serialized into URL query parameters, enabling deep-linking and shareability of specific dashboard…—
app_invariants__01d8791dec30328bINVARIANT: DataFrames must retain their RefID throughout their lifecycle. SHADOW: Failure to preserve the RefID across transformations will result in downstream panels and queries being unable to…—
app_invariants__605f24f1be68942eINVARIANT: The `data.FrameMeta.ExecutedQueryString` must accurately reflect the query executed against the data source. SHADOW: Inaccurate `ExecutedQueryString` prevents effective debugging and…—
app_invariants__edc6ee127f6ace4fINVARIANT: When transforming to `TimeSeriesTypeLong`, the resultant `Wide` frame must contain a `time` column. SHADOW: The `LongToWide` transformation relies on a `time` column to correctly pivot…—
app_invariants__9c04be48f9b2888fINVARIANT: The `data.Field.Append` method must be used to add data to fields that support nullable values. SHADOW: Directly appending values without using `Append` can bypass null handling logic,…—
app_invariants__7f0ad0673c01cac1INVARIANT: Arrow array data must be correctly copied to the `data.Field` to maintain data integrity. SHADOW: Failure to properly copy Arrow array data can lead to data corruption, incorrect type…—
app_invariants__8c30fd4c401a918fINVARIANT: The `data.NewField` function must be used to create fields, ensuring proper initialization of nullable and non-nullable states. SHADOW: Directly creating fields without `NewField`…—
app_invariants__f43ff7a93bd727b1INVARIANT: The `valueField.Append(nil)` must be used to correctly represent null values for nullable fields. SHADOW: Appending `nil` directly to a field that is not nullable or not initialized to…—
app_invariants__e77d2d9c320d651dINVARIANT: When appending a null value to a field, the field's internal null handling mechanism must be utilized. SHADOW: Bypassing the field's specific null handling can lead to data inconsistency,…—
app_invariants__e9263a691509871cINVARIANT: When encountering a `null` value for a field, the appropriate array (string, bool, or float) must be used based on the field's determined type. SHADOW: Incorrectly appending null to an…—
app_invariants__7a879da1c4185cfcINVARIANT: Fields must be created with their correct `data.FieldType` to ensure proper data handling. SHADOW: Using an incorrect `FieldType` during creation leads to type mismatches, data…—