This is an automated email from the ASF dual-hosted git repository. wu-sheng pushed a commit to branch alarm-entity-relation-docs in repository https://gitbox.apache.org/repos/asf/skywalking-query-protocol.git
commit 73cc85e250e7223d6e4b750c3a41ab0e86a653aa Author: Wu Sheng <[email protected]> AuthorDate: Mon May 18 21:52:09 2026 +0800 alarm: tighten entity filter docs; drop orphan ui-configuration.graphqls * AlarmQueryCondition.entities — schema text said relation entities match whether the entity appears as source or dest, but the OAP DAO has always implemented exact-ordered match (id0=src AND id1=dest). Rewrite the entity comment to match the implemented semantics and point operators at the non-relation widening pattern. Non-relation matching (id0 OR id1) is unchanged and documented explicitly. * ui-configuration.graphqls — DashboardConfiguration / MenuItem / template + menu Query/Mutation types are no longer loaded by GraphQLQueryProvider (apache/skywalking 11.0.0 moves UI template management to a REST surface on the admin host; menu management is removed entirely in favor of Horizon UI client-side gating). The file was left in the submodule but is unreachable from any resolver. Delete it. --- alarm.graphqls | 23 ++++++++------ ui-configuration.graphqls | 79 ----------------------------------------------- 2 files changed, 14 insertions(+), 88 deletions(-) diff --git a/alarm.graphqls b/alarm.graphqls index 0d075c2..2e18322 100644 --- a/alarm.graphqls +++ b/alarm.graphqls @@ -57,16 +57,21 @@ input AlarmQueryCondition { paging: Pagination! # Pin to specific entities. Each `Entity` (defined in metrics-v3.graphqls) - # resolves to its underlying serviceId / instanceId / endpointId / - # processId at query time; the alarm filter matches the alarm record's - # primary (id0) OR relation-destination (id1) column against the resolved - # IDs. For relation entities (set via `destServiceName` etc.) the source - # and dest IDs are both contributed, so the alarm is matched whether the - # entity appears as the source or the dest of the relation. + # resolves to one EntityIdConstraint at query time: + # * Non-relation scopes (Service / ServiceInstance / Endpoint / Process) + # match the alarm record's id0 OR id1 column against the resolved id + # — a service appears in either column depending on which side of the + # alarm rule fired, so we accept both. + # * Relation scopes (`destServiceName` etc.) match exactly + # `id0 = sourceId AND id1 = destId` — ordered, NOT "any side". A + # ServiceRelation entity `{serviceName: A, destServiceName: B}` only + # matches alarms keyed `(A, B)`. To find anything involving A, pass a + # non-relation `{serviceName: A}` entity instead, which expands to + # `id0 = A OR id1 = A`. # - # Across the list values OR together. Entity's own `scope` field is - # auto-inferred from which name fields are populated, mirroring its MQE - # behavior. + # Across the list, the per-entity constraints are OR'd together. Entity's + # own `scope` field is auto-inferred from which name fields are + # populated, mirroring its MQE behavior. entities: [Entity!] # Filter on the underlying entity's layer. An alarm record is persisted diff --git a/ui-configuration.graphqls b/ui-configuration.graphqls deleted file mode 100644 index 69be2b4..0000000 --- a/ui-configuration.graphqls +++ /dev/null @@ -1,79 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Dashboard Configuration provides the management capabilities for SkyWalking native UI. - -type DashboardConfiguration { - # ID is a generated UUID. - id: String! - # JSON based configuration. The format of text is the export result on the UI page. - configuration: String! -} - -type MenuItem { - # Title name - title: String! - # Showing icon name - icon: String - # Linked layer name - layer: String! - # Activated menu should be listed on the menu, - # otherwise, it should stay in marketplace. - activate: Boolean! - # Sub menu items - subItems: [MenuItem!]! - # Description of the item - description: String - # The document link for the latest version of this feature. - documentLink: String - # The i18n key for the title and description of this feature display in the UI. - i18nKey: String -} - -extend type Query { - # Read an existing UI template according to given id. - getTemplate(id: String!): DashboardConfiguration - # Read all configuration templates。 - getAllTemplates: [DashboardConfiguration!]! - # Read all menu items - getMenuItems: [MenuItem!]! -} - -# Used for add new template -input NewDashboardSetting { - # JSON based configuration. The format of text is the export result on the UI page. - configuration: String! -} - -input DashboardSetting { - id: String! - # JSON based configuration. The format of text is the export result on the UI page. - configuration: String! -} - -type TemplateChangeStatus { - id: String! - # True means change successfully. - status: Boolean! - message: String -} - -# Template Management page provides the creation, update and deletion for the different template typs. -extend type Mutation { - addTemplate(setting: NewDashboardSetting!): TemplateChangeStatus! - changeTemplate(setting: DashboardSetting!): TemplateChangeStatus! - disableTemplate(id: String!): TemplateChangeStatus! -}
