@things-factory/operato-dataset 9.0.40 → 9.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/schema.graphql CHANGED
@@ -910,6 +910,7 @@ enum AttributeSetItemType {
910
910
  datetime
911
911
  file
912
912
  number
913
+ secret
913
914
  select
914
915
  text
915
916
  }
@@ -1444,9 +1445,7 @@ input CommonCodePatch {
1444
1445
 
1445
1446
  """Represents a configured connection to an external system or service."""
1446
1447
  type Connection {
1447
- """
1448
- Indicates whether the connection is currently active and should be maintained.
1449
- """
1448
+ """Whether to automatically connect when the application starts"""
1450
1449
  active: Boolean
1451
1450
 
1452
1451
  """The timestamp when the connection was created."""
@@ -1473,6 +1472,11 @@ type Connection {
1473
1472
  """The name of the connection."""
1474
1473
  name: String!
1475
1474
 
1475
+ """
1476
+ When true, connection is created on-demand when needed and cleaned up after use.
1477
+ """
1478
+ onDemand: Boolean
1479
+
1476
1480
  """A key-value map of parameters for the connection."""
1477
1481
  params: Object
1478
1482
 
@@ -1500,7 +1504,7 @@ type ConnectionList {
1500
1504
 
1501
1505
  """Input for updating (patching) an existing connection."""
1502
1506
  input ConnectionPatch {
1503
- """The new active status for the connection."""
1507
+ """Whether to automatically connect when the application starts"""
1504
1508
  active: Boolean
1505
1509
 
1506
1510
  """
@@ -1523,6 +1527,11 @@ input ConnectionPatch {
1523
1527
  """The new name for the connection."""
1524
1528
  name: String
1525
1529
 
1530
+ """
1531
+ When true, connection is created on-demand when needed and cleaned up after use.
1532
+ """
1533
+ onDemand: Boolean
1534
+
1526
1535
  """The new parameters for the connection."""
1527
1536
  params: Object
1528
1537
 
@@ -1547,6 +1556,11 @@ type ConnectionState {
1547
1556
  """The name of the connection."""
1548
1557
  name: String
1549
1558
 
1559
+ """
1560
+ When true, connection is created on-demand when needed and cleaned up after use.
1561
+ """
1562
+ onDemand: Boolean
1563
+
1550
1564
  """The current status of the connection."""
1551
1565
  state: String
1552
1566
 
@@ -2723,6 +2737,9 @@ type Domain {
2723
2737
  """A description of the domain."""
2724
2738
  description: String
2725
2739
 
2740
+ """The environment variables associated with the domain."""
2741
+ envVars: [EnvVar!]
2742
+
2726
2743
  """The external type of the domain, if applicable."""
2727
2744
  extType: String
2728
2745
 
@@ -3229,6 +3246,68 @@ type EntityRelationMetadata {
3229
3246
  relationType: Boolean
3230
3247
  }
3231
3248
 
3249
+ """Environment variable entity for storing key-value pairs."""
3250
+ type EnvVar {
3251
+ """Indicates whether this environment variable is currently active."""
3252
+ active: Boolean!
3253
+
3254
+ """The timestamp when the environment variable was created."""
3255
+ createdAt: DateTimeISO
3256
+
3257
+ """A detailed description of the environment variable."""
3258
+ description: String
3259
+
3260
+ """The domain to which this environment variable belongs."""
3261
+ domain: Domain
3262
+
3263
+ """The domain ID to which this environment variable belongs."""
3264
+ domainId: String!
3265
+
3266
+ """Unique identifier for the environment variable."""
3267
+ id: ID!
3268
+
3269
+ """The name of the environment variable."""
3270
+ name: String!
3271
+
3272
+ """The timestamp when the environment variable was last updated."""
3273
+ updatedAt: DateTimeISO
3274
+
3275
+ """The value of the environment variable (encrypted)."""
3276
+ value: String
3277
+ }
3278
+
3279
+ """List of environment variables."""
3280
+ type EnvVarList {
3281
+ """The list of environment variable items."""
3282
+ items: [EnvVar!]!
3283
+
3284
+ """The total number of environment variables."""
3285
+ total: Int!
3286
+ }
3287
+
3288
+ """Input type for updating an existing environment variable."""
3289
+ input EnvVarPatch {
3290
+ """The new active status for the environment variable."""
3291
+ active: Boolean
3292
+
3293
+ """
3294
+ A flag indicating whether the environment variable is being created, updated, or deleted.
3295
+ """
3296
+ cuFlag: String
3297
+
3298
+ """The new description for the environment variable."""
3299
+ description: String
3300
+
3301
+ """The unique identifier of the environment variable to update."""
3302
+ id: ID
3303
+
3304
+ """The new name for the environment variable."""
3305
+ name: String
3306
+
3307
+ """The new value for the environment variable."""
3308
+ value: String
3309
+ }
3310
+
3232
3311
  """Entity for Favorite"""
3233
3312
  type Favorite {
3234
3313
  createdAt: DateTimeISO
@@ -3291,21 +3370,6 @@ input FontPatch {
3291
3370
  uri: String
3292
3371
  }
3293
3372
 
3294
- """Grade information for KPI value"""
3295
- type GradeInfo {
3296
- """Color code for visualization"""
3297
- color: String
3298
-
3299
- """Grade description"""
3300
- description: String
3301
-
3302
- """Grade name (e.g., A, B, C, 우수, 양호)"""
3303
- name: String!
3304
-
3305
- """Grade score or performance value"""
3306
- score: Float
3307
- }
3308
-
3309
3373
  """Represents a role that is granted to a specific domain."""
3310
3374
  type GrantedRole {
3311
3375
  """The domain to which the role is granted."""
@@ -3475,11 +3539,8 @@ type Kpi {
3475
3539
  """Indicates whether this KPI is active and usable."""
3476
3540
  active: Boolean
3477
3541
 
3478
- """Category to which this KPI belongs."""
3479
- category: KpiCategory
3480
-
3481
- """ID of the category for this KPI."""
3482
- categoryId: String
3542
+ """Child KPIs in hierarchical structure."""
3543
+ children: [Kpi!]
3483
3544
 
3484
3545
  """Timestamp when this KPI was created."""
3485
3546
  createdAt: DateTimeISO
@@ -3507,16 +3568,29 @@ type Kpi {
3507
3568
  """
3508
3569
  formula: String
3509
3570
 
3510
- """Grade configuration for this KPI version"""
3571
+ """
3572
+ Performance index lookup table for complex transformations. @deprecated 향후 제거 예정. performanceFormula 사용 권장.
3573
+ """
3511
3574
  grades: Object
3512
3575
  histories(limit: Int): [KpiHistory!]
3513
3576
 
3514
3577
  """Unique identifier for this KPI."""
3515
3578
  id: ID!
3516
3579
 
3580
+ """
3581
+ Indicates whether this KPI is a leaf node (has actual measured values).
3582
+ """
3583
+ isLeaf: Boolean
3584
+
3517
3585
  """Name of the KPI."""
3518
3586
  name: String
3519
3587
 
3588
+ """Parent KPI in hierarchical structure."""
3589
+ parent: Kpi
3590
+
3591
+ """ID of the parent KPI."""
3592
+ parentId: String
3593
+
3520
3594
  """Aggregation period type for this KPI."""
3521
3595
  periodType: KpiPeriodType!
3522
3596
 
@@ -3528,6 +3602,11 @@ type Kpi {
3528
3602
  """Schedule ID for the KPI (used for scheduler registration)."""
3529
3603
  scheduleId: String
3530
3604
 
3605
+ """
3606
+ Score calculation formula for this KPI. Converts KPI value to performance score (0-100). For complex mappings, use grades lookup table instead. Example: "if(value >= 90, 100, if(value >= 80, 85, 70))" or "value * 0.8 + 20"
3607
+ """
3608
+ scoreFormula: String
3609
+
3531
3610
  """Current state of the KPI (DRAFT, RELEASED, ARCHIVED)."""
3532
3611
  state: String
3533
3612
  targetValue: Float
@@ -3547,7 +3626,10 @@ type Kpi {
3547
3626
 
3548
3627
  """ID of the user who last updated this KPI."""
3549
3628
  updaterId: String
3550
- value: KpiValue
3629
+ value(
3630
+ """Organization scope filter for value"""
3631
+ orgScope: String
3632
+ ): KpiValue
3551
3633
 
3552
3634
  """
3553
3635
  Version number of the KPI. Increments on each modification. When the KPI is released, a snapshot is saved in kpi-history and the status becomes RELEASED. Editing after release increases the version and sets status to DRAFT.
@@ -3584,94 +3666,10 @@ type KpiAlert {
3584
3666
  message: String!
3585
3667
  }
3586
3668
 
3587
- """
3588
- KPI category entity. Represents a classification or group for KPIs. Supports hierarchical (tree) structure.
3589
- """
3590
- type KpiCategory {
3591
- """Whether this category is active (usable) or not."""
3592
- active: Boolean
3593
-
3594
- """Timestamp when this KPI category was created."""
3595
- createdAt: DateTimeISO
3596
-
3597
- """User who created this KPI category."""
3598
- creator: User
3599
-
3600
- """ID of the user who created this KPI category."""
3601
- creatorId: String
3602
-
3603
- """Detailed description of this KPI category."""
3604
- description: String
3605
-
3606
- """Domain (tenant) to which this KPI category belongs."""
3607
- domain: Domain
3608
-
3609
- """ID of the domain (tenant) for this KPI category."""
3610
- domainId: String
3611
-
3612
- """Aggregation formula using child KPI codes."""
3613
- formula: String
3614
-
3615
- """Unique identifier for this KPI category."""
3616
- id: ID!
3617
-
3618
- """List of KPIs belonging to this category."""
3619
- kpis: [Kpi!]
3620
-
3621
- """Name of the KPI category."""
3622
- name: String!
3623
-
3624
- """Timestamp when this KPI category was last updated."""
3625
- updatedAt: DateTimeISO
3626
-
3627
- """User who last updated this KPI category."""
3628
- updater: User
3629
-
3630
- """ID of the user who last updated this KPI category."""
3631
- updaterId: String
3632
-
3633
- """Weight for aggregation in higher-level summary."""
3634
- weight: Float
3635
- }
3636
-
3637
- type KpiCategoryList {
3638
- items: [KpiCategory!]!
3639
- total: Int!
3640
- }
3641
-
3642
- """
3643
- Input type for updating an existing KPI category. Used in mutations to patch category details.
3644
- """
3645
- input KpiCategoryPatch {
3646
- """Whether this category is active (usable) or not."""
3647
- active: Boolean
3648
-
3649
- """Custom flag for update operations (internal use)."""
3650
- cuFlag: String
3651
-
3652
- """Detailed description of this KPI category."""
3653
- description: String
3654
-
3655
- """Aggregation formula using child KPI codes."""
3656
- formula: String
3657
-
3658
- """ID of the KPI category to update."""
3659
- id: ID
3660
-
3661
- """Name of the KPI category."""
3662
- name: String
3663
-
3664
- """Weight for aggregation in higher-level summary."""
3665
- weight: Float
3666
- }
3667
-
3668
3669
  """History Entity of Kpi"""
3669
3670
  type KpiHistory {
3670
3671
  """Whether this KPI is active (usable) or not."""
3671
3672
  active: Boolean
3672
-
3673
- """Category to which this KPI belongs."""
3674
- category: KpiCategory
3675
3673
  createdAt: DateTimeISO
3676
3674
  creator: User
3677
3675
  deletedAt: DateTimeISO
@@ -3750,7 +3748,7 @@ type KpiMetric {
3750
3748
  name: String!
3751
3749
 
3752
3750
  """Aggregation period type for this metric."""
3753
- periodType: KpiMetricPeriodType!
3751
+ periodType: KpiPeriodType!
3754
3752
 
3755
3753
  """
3756
3754
  Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
@@ -3808,7 +3806,7 @@ input KpiMetricPatch {
3808
3806
  name: String
3809
3807
 
3810
3808
  """Aggregation period type for this metric."""
3811
- periodType: KpiMetricPeriodType
3809
+ periodType: KpiPeriodType
3812
3810
 
3813
3811
  """
3814
3812
  Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
@@ -3825,15 +3823,6 @@ input KpiMetricPatch {
3825
3823
  unit: String
3826
3824
  }
3827
3825
 
3828
- """Aggregation period type for metric (DAY, WEEK, MONTH, QUARTER, RANGE)"""
3829
- enum KpiMetricPeriodType {
3830
- DAY
3831
- MONTH
3832
- QUARTER
3833
- RANGE
3834
- WEEK
3835
- }
3836
-
3837
3826
  """
3838
3827
  Current value for each KPI metric (can be used for both state and history).
3839
3828
  """
@@ -3843,13 +3832,15 @@ type KpiMetricValue {
3843
3832
  creatorId: String
3844
3833
  domain: Domain
3845
3834
  domainId: String
3846
-
3847
- """Group key for this value (organization, line, user, etc.)"""
3848
- group: String
3849
3835
  id: ID!
3850
3836
  meta: Object
3851
3837
  metric: KpiMetric!
3852
3838
  metricId: String!
3839
+
3840
+ """
3841
+ Organizational unit for this value (project, department, company, employee, etc.)
3842
+ """
3843
+ org: String
3853
3844
  periodType: KpiPeriodType!
3854
3845
  unit: String
3855
3846
  updatedAt: DateTimeISO
@@ -3875,9 +3866,6 @@ input KpiMetricValuePatch {
3875
3866
  """Custom flag for update operations (internal use)."""
3876
3867
  cuFlag: String
3877
3868
 
3878
- """Group key for this value (organization, line, user, etc.)"""
3879
- group: String
3880
-
3881
3869
  """ID of the metric value to update."""
3882
3870
  id: ID
3883
3871
 
@@ -3889,6 +3877,11 @@ input KpiMetricValuePatch {
3889
3877
  """ID of the metric to which this value belongs."""
3890
3878
  metricId: ID
3891
3879
 
3880
+ """
3881
+ Organizational unit for this value (project, department, company, employee, etc.)
3882
+ """
3883
+ org: String
3884
+
3892
3885
  """Aggregation period type for this metric value."""
3893
3886
  periodType: KpiPeriodType
3894
3887
 
@@ -3904,6 +3897,108 @@ input KpiMetricValuePatch {
3904
3897
  valueDate: String
3905
3898
  }
3906
3899
 
3900
+ """
3901
+ KPI organization scope mapping entity. Maps business entities to various scope dimensions for KPI analysis using generic reference pattern.
3902
+ """
3903
+ type KpiOrgScope {
3904
+ """Timestamp when this org-scope mapping was created."""
3905
+ createdAt: DateTimeISO
3906
+
3907
+ """User who created this org-scope mapping."""
3908
+ creator: User
3909
+
3910
+ """ID of the user who created this org-scope mapping."""
3911
+ creatorId: String
3912
+
3913
+ """Domain (tenant) to which this org-scope mapping belongs."""
3914
+ domain: Domain
3915
+
3916
+ """ID of the domain (tenant) for this org-scope mapping."""
3917
+ domainId: String
3918
+
3919
+ """ID of the referenced business entity"""
3920
+ entityId: String!
3921
+
3922
+ """
3923
+ Name of the referenced business entity (denormalized for performance and convenience)
3924
+ """
3925
+ entityName: String!
3926
+
3927
+ """
3928
+ Type of the referenced business entity (e.g., Project, Department, Company, Employee)
3929
+ """
3930
+ entityType: String!
3931
+
3932
+ """Unique identifier for this org-scope mapping."""
3933
+ id: ID!
3934
+
3935
+ """Legacy org field for backward compatibility"""
3936
+ org: String
3937
+
3938
+ """First scope dimension (e.g., geographical region, business unit)"""
3939
+ scope01: String
3940
+
3941
+ """Second scope dimension (e.g., product line, customer segment)"""
3942
+ scope02: String
3943
+
3944
+ """Third scope dimension (e.g., process type, technology stack)"""
3945
+ scope03: String
3946
+
3947
+ """Fourth scope dimension (e.g., cost center, profit center)"""
3948
+ scope04: String
3949
+
3950
+ """Fifth scope dimension (e.g., risk level, priority tier)"""
3951
+ scope05: String
3952
+
3953
+ """Timestamp when this org-scope mapping was last updated."""
3954
+ updatedAt: DateTimeISO
3955
+
3956
+ """User who last updated this org-scope mapping."""
3957
+ updater: User
3958
+
3959
+ """ID of the user who last updated this org-scope mapping."""
3960
+ updaterId: String
3961
+ }
3962
+
3963
+ """List of KPI org-scope mappings with pagination"""
3964
+ type KpiOrgScopeList {
3965
+ """Array of KPI org-scope mappings"""
3966
+ items: [KpiOrgScope!]!
3967
+
3968
+ """Total count of items"""
3969
+ total: Int!
3970
+ }
3971
+
3972
+ """Input type for updating an existing KPI org-scope mapping"""
3973
+ input KpiOrgScopePatch {
3974
+ """Active status"""
3975
+ active: Boolean
3976
+
3977
+ """Human-readable name or description"""
3978
+ displayName: String
3979
+
3980
+ """ID of the org-scope mapping to update"""
3981
+ id: ID!
3982
+
3983
+ """Organizational unit identifier"""
3984
+ org: String
3985
+
3986
+ """First scope dimension"""
3987
+ scope01: String
3988
+
3989
+ """Second scope dimension"""
3990
+ scope02: String
3991
+
3992
+ """Third scope dimension"""
3993
+ scope03: String
3994
+
3995
+ """Fourth scope dimension"""
3996
+ scope04: String
3997
+
3998
+ """Fifth scope dimension"""
3999
+ scope05: String
4000
+ }
4001
+
3907
4002
  """
3908
4003
  Input type for updating an existing KPI. Used in mutations to patch KPI details.
3909
4004
  """
@@ -3911,9 +4006,6 @@ input KpiPatch {
3911
4006
  """Indicates whether this KPI is active and usable."""
3912
4007
  active: Boolean
3913
4008
 
3914
- """ID of the category to which this KPI belongs."""
3915
- categoryId: ID
3916
-
3917
4009
  """Custom flag for update operations (internal use)."""
3918
4010
  cuFlag: String
3919
4011
 
@@ -3923,20 +4015,33 @@ input KpiPatch {
3923
4015
  """Calculation formula for the KPI, using metric codes and operators."""
3924
4016
  formula: String
3925
4017
 
3926
- """Grade configuration for this KPI version"""
4018
+ """Score lookup table for this KPI version"""
3927
4019
  grades: Object
3928
4020
 
3929
4021
  """ID of the KPI to update."""
3930
4022
  id: ID
3931
4023
 
4024
+ """
4025
+ Indicates whether this KPI is a leaf node (has actual measured values).
4026
+ """
4027
+ isLeaf: Boolean
4028
+
3932
4029
  """Name of the KPI."""
3933
4030
  name: String
3934
4031
 
4032
+ """Reference to the parent KPI in hierarchical structure."""
4033
+ parent: ObjectRef
4034
+
3935
4035
  """
3936
4036
  Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
3937
4037
  """
3938
4038
  schedule: String
3939
4039
 
4040
+ """
4041
+ Score calculation formula for this KPI. Converts KPI value to performance score (0-1).
4042
+ """
4043
+ scoreFormula: String
4044
+
3940
4045
  """Current state of the KPI (DRAFT, RELEASED, ARCHIVED)."""
3941
4046
  state: KpiStatus
3942
4047
 
@@ -3952,21 +4057,244 @@ input KpiPatch {
3952
4057
  vizMeta: Object
3953
4058
 
3954
4059
  """
3955
- Visualization type for this KPI (e.g., CARD, GAUGE, PROGRESS, BAR, LINE, etc.).
4060
+ Visualization type for this KPI (e.g., CARD, GAUGE, PROGRESS, BAR, LINE, etc.).
4061
+ """
4062
+ vizType: KpiVizType
4063
+
4064
+ """Weight for aggregation in parent category."""
4065
+ weight: Float
4066
+ }
4067
+
4068
+ """
4069
+ Aggregation period type for KPI (DAY, WEEK, MONTH, QUARTER, RANGE, ALLTIME)
4070
+ """
4071
+ enum KpiPeriodType {
4072
+ ALLTIME
4073
+ DAY
4074
+ MONTH
4075
+ QUARTER
4076
+ RANGE
4077
+ WEEK
4078
+ YEAR
4079
+ }
4080
+
4081
+ """
4082
+ Defines the meaning and metadata for each scope level (scope01~05) in KpiOrgScope
4083
+ """
4084
+ type KpiScope {
4085
+ """Whether this scope definition is active and should be used"""
4086
+ active: Boolean!
4087
+ createdAt: DateTimeISO
4088
+ creator: User
4089
+
4090
+ """Detailed description of what this scope dimension represents"""
4091
+ description: String
4092
+
4093
+ """Order/priority for display and processing"""
4094
+ displayOrder: Int!
4095
+
4096
+ """Domain this scope definition belongs to"""
4097
+ domain: Domain
4098
+ id: ID!
4099
+
4100
+ """Whether this scope should be included in statistical calculations"""
4101
+ includeInStatistics: Boolean!
4102
+
4103
+ """Scope level (1-5) corresponding to scope01-scope05 in KpiOrgScope"""
4104
+ level: Int!
4105
+
4106
+ """Additional metadata for this scope dimension (colors, icons, etc.)"""
4107
+ metadata: Object
4108
+
4109
+ """Display name for this scope dimension (e.g., "지역", "회사", "프로젝트규모")"""
4110
+ name: String!
4111
+
4112
+ """Parent scope level if this forms a hierarchy"""
4113
+ parentLevel: Int
4114
+
4115
+ """Type category of this scope dimension"""
4116
+ scopeType: ScopeType!
4117
+
4118
+ """Whether this scope should be displayed in dashboard visualizations"""
4119
+ showInDashboard: Boolean!
4120
+ updatedAt: DateTimeISO
4121
+ updater: User
4122
+
4123
+ """
4124
+ List of valid values for this scope (e.g., ["서울", "부산", "대구"] for regions)
4125
+ """
4126
+ validValues: Object
4127
+
4128
+ """Regex pattern for validating values in this scope dimension"""
4129
+ validationPattern: String
4130
+ }
4131
+
4132
+ type KpiScopeList {
4133
+ items: [KpiScope!]!
4134
+ total: Float!
4135
+ }
4136
+
4137
+ input KpiScopePatch {
4138
+ """Whether this scope definition is active and should be used"""
4139
+ active: Boolean! = true
4140
+ cuFlag: String
4141
+
4142
+ """Detailed description of what this scope dimension represents"""
4143
+ description: String
4144
+
4145
+ """Order/priority for display and processing"""
4146
+ displayOrder: Int! = 1
4147
+ id: ID
4148
+
4149
+ """Whether this scope should be included in statistical calculations"""
4150
+ includeInStatistics: Boolean! = true
4151
+
4152
+ """Scope level (1-5) corresponding to scope01-scope05 in KpiOrgScope"""
4153
+ level: Int!
4154
+
4155
+ """Additional metadata for this scope dimension"""
4156
+ metadata: Object
4157
+
4158
+ """Display name for this scope dimension (e.g., "지역", "회사", "프로젝트규모")"""
4159
+ name: String!
4160
+
4161
+ """Parent scope level if this forms a hierarchy"""
4162
+ parentLevel: Int
4163
+
4164
+ """Type category of this scope dimension"""
4165
+ scopeType: ScopeType!
4166
+
4167
+ """Whether this scope should be displayed in dashboard visualizations"""
4168
+ showInDashboard: Boolean! = false
4169
+
4170
+ """List of valid values for this scope"""
4171
+ validValues: [String!]
4172
+
4173
+ """Regex pattern for validating values in this scope dimension"""
4174
+ validationPattern: String
4175
+ }
4176
+
4177
+ """
4178
+ KPI Statistics Entity - Stores comprehensive statistical information for KPIs and Categories including central tendency measures (mean, median), dispersion metrics (standard deviation, variance), range indicators (min, max), and percentile distributions (25th, 75th percentiles, IQR). Supports both KPI and Category targets with flexible period-based aggregation (daily, weekly, monthly, yearly). Includes extensible JSON fields for additional metrics and metadata for calculation tracking.
4179
+ """
4180
+ type KpiStatistic {
4181
+ """Additional statistical metrics stored as key-value pairs"""
4182
+ additionalStatistics: Object
4183
+
4184
+ """Number of data points used in calculation"""
4185
+ count: Float
4186
+
4187
+ """Timestamp when this statistic was created"""
4188
+ createdAt: DateTimeISO
4189
+
4190
+ """User who created this statistic"""
4191
+ creator: User
4192
+
4193
+ """Domain this statistic belongs to"""
4194
+ domain: Domain
4195
+ id: ID!
4196
+
4197
+ """Interquartile range (75th percentile - 25th percentile)"""
4198
+ iqr: Float
4199
+
4200
+ """Reference to the KPI definition for which this value is calculated."""
4201
+ kpi: Kpi
4202
+
4203
+ """Organization scope for scoped statistics. Null for overall statistics."""
4204
+ kpiOrgScope: KpiOrgScope
4205
+
4206
+ """Lower fence for outlier detection (Q1 - 1.5 * IQR)"""
4207
+ lowerFence: Float
4208
+
4209
+ """Maximum value in the dataset"""
4210
+ maximum: Float
4211
+
4212
+ """Arithmetic mean of all values"""
4213
+ mean: Float
4214
+
4215
+ """Middle value when data is sorted (50th percentile)"""
4216
+ median: Float
4217
+
4218
+ """
4219
+ Calculation metadata including method, timestamp, and data quality information
4220
+ """
4221
+ metadata: Object
4222
+
4223
+ """Minimum value in the dataset"""
4224
+ minimum: Float
4225
+
4226
+ """25th percentile - 25% of data is below this value"""
4227
+ percentile25: Float
4228
+
4229
+ """75th percentile - 75% of data is below this value"""
4230
+ percentile75: Float
4231
+
4232
+ """Aggregation period type for this statistic."""
4233
+ periodType: KpiPeriodType!
4234
+
4235
+ """Range of values (maximum - minimum)"""
4236
+ range: Float
4237
+
4238
+ """
4239
+ Legacy scope field - use kpiOrgScope instead. Statistical scope - null for overall statistics, category value for scoped statistics (e.g., "서울", "부장", "대규모")
4240
+ """
4241
+ scope: String
4242
+
4243
+ """Standard deviation - measure of data dispersion"""
4244
+ standardDeviation: Float
4245
+
4246
+ """Sum of all values in the dataset"""
4247
+ sum: Float
4248
+
4249
+ """Timestamp when this statistic was last updated"""
4250
+ updatedAt: DateTimeISO
4251
+
4252
+ """User who last updated this statistic"""
4253
+ updater: User
4254
+
4255
+ """Upper fence for outlier detection (Q3 + 1.5 * IQR)"""
4256
+ upperFence: Float
4257
+
4258
+ """
4259
+ Date or period for which this statistic is calculated (e.g., day: YYYY-MM-DD, month: YYYY-MM, quarter: YYYY-Qn, range: YYYY-MM-DD~YYYY-MM-DD).
3956
4260
  """
3957
- vizType: KpiVizType
4261
+ valueDate: String!
3958
4262
 
3959
- """Weight for aggregation in parent category."""
3960
- weight: Float
4263
+ """Variance - square of standard deviation"""
4264
+ variance: Float
3961
4265
  }
3962
4266
 
3963
- """Aggregation period type for KPI (DAY, WEEK, MONTH, QUARTER, RANGE)"""
3964
- enum KpiPeriodType {
3965
- DAY
3966
- MONTH
3967
- QUARTER
3968
- RANGE
3969
- WEEK
4267
+ type KpiStatisticList {
4268
+ items: [KpiStatistic!]!
4269
+ total: Int!
4270
+ }
4271
+
4272
+ input KpiStatisticPatch {
4273
+ additionalStatistics: Object
4274
+ count: Float
4275
+ cuFlag: String
4276
+ id: ID
4277
+ iqr: Float
4278
+ kpi: ObjectRef
4279
+ lowerFence: Float
4280
+ maximum: Float
4281
+ mean: Float
4282
+ median: Float
4283
+ metadata: Object
4284
+ minimum: Float
4285
+ percentile25: Float
4286
+ percentile75: Float
4287
+ periodType: KpiPeriodType
4288
+ range: Float
4289
+ standardDeviation: Float
4290
+ sum: Float
4291
+ upperFence: Float
4292
+
4293
+ """
4294
+ Date or period for which this statistic is calculated (e.g., day: YYYY-MM-DD, month: YYYY-MM, quarter: YYYY-Qn, range: YYYY-MM-DD~YYYY-MM-DD).
4295
+ """
4296
+ valueDate: String
4297
+ variance: Float
3970
4298
  }
3971
4299
 
3972
4300
  """State enumeration of a KPI (DRAFT, RELEASED, ARCHIVED)"""
@@ -3992,9 +4320,8 @@ type KpiValue {
3992
4320
 
3993
4321
  """ID of the domain (tenant) for this KPI value."""
3994
4322
  domainId: String
3995
- grade: GradeInfo
3996
4323
 
3997
- """Group key for this value (organization, line, user, etc.)"""
4324
+ """Group key for this value (organization, line, user, project, etc.)"""
3998
4325
  group: String
3999
4326
 
4000
4327
  """Unique identifier for this KPI value record."""
@@ -4011,6 +4338,12 @@ type KpiValue {
4011
4338
  """ID of the referenced KPI."""
4012
4339
  kpiId: String!
4013
4340
 
4341
+ """Reference to the organization scope mapping for this KPI value."""
4342
+ kpiOrgScope: KpiOrgScope
4343
+
4344
+ """ID of the referenced KPI organization scope."""
4345
+ kpiOrgScopeId: String
4346
+
4014
4347
  """
4015
4348
  Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.
4016
4349
  """
@@ -4019,6 +4352,11 @@ type KpiValue {
4019
4352
  """Aggregation period type for this KPI value."""
4020
4353
  periodType: KpiPeriodType!
4021
4354
 
4355
+ """
4356
+ Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.
4357
+ """
4358
+ score: Float
4359
+
4022
4360
  """Source of the value (e.g., system, user, external integration)."""
4023
4361
  source: String
4024
4362
 
@@ -4061,7 +4399,7 @@ input KpiValuePatch {
4061
4399
  """Custom flag for update operations (internal use)."""
4062
4400
  cuFlag: String
4063
4401
 
4064
- """Group key for this value (organization, line, user, etc.)"""
4402
+ """Group key for this value (organization, line, user, project, etc.)"""
4065
4403
  group: String
4066
4404
 
4067
4405
  """ID of the KPI value to update."""
@@ -4075,11 +4413,22 @@ input KpiValuePatch {
4075
4413
  """ID of the KPI to which this value belongs."""
4076
4414
  kpiId: ID
4077
4415
 
4416
+ """ID of the KPI organization scope for this value."""
4417
+ kpiOrgScopeId: ID
4418
+
4078
4419
  """
4079
4420
  Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.
4080
4421
  """
4081
4422
  meta: Object
4082
4423
 
4424
+ """Legacy organizational unit identifier (for backward compatibility)"""
4425
+ org: String
4426
+
4427
+ """
4428
+ Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.
4429
+ """
4430
+ score: Float
4431
+
4083
4432
  """Source of the value (e.g., system, user, external integration)."""
4084
4433
  source: String
4085
4434
 
@@ -4600,6 +4949,28 @@ type Mutation {
4600
4949
  Attaches an existing contact to an employee. The contact is identified by its ID and the employee is identified by their ID.
4601
4950
  """
4602
4951
  attachContact(contactId: String!, id: String!): Employee!
4952
+
4953
+ """Bulk create or update KPI org-scope mappings."""
4954
+ bulkUpsertKpiOrgScopes(
4955
+ """Array of org-scope mapping data for bulk upsert."""
4956
+ orgScopes: [NewKpiOrgScope!]!
4957
+ ): [KpiOrgScope!]!
4958
+
4959
+ """
4960
+ Calculate statistics for all KPIs in a specific period from KpiValue data
4961
+ """
4962
+ calculateAllKpiStatistics(periodType: KpiPeriodType!, valueDate: String!): [KpiStatistic!]!
4963
+
4964
+ """Calculate statistics for a specific KPI and period from KpiValue data"""
4965
+ calculateKpiStatistics(kpiId: String!, periodType: KpiPeriodType!, valueDate: String!): [KpiStatistic!]!
4966
+
4967
+ """KPI 기준으로 formula 계산 및 KPI Value upsert"""
4968
+ calculateKpiValue(kpiId: String!, org: String, valueDate: String): KpiValue!
4969
+
4970
+ """
4971
+ Recalculate statistics for dashboard regions (scope02-based statistics)
4972
+ """
4973
+ calculateRegionalStatistics(periodType: KpiPeriodType! = MONTH, valueDate: String!): [KpiStatistic!]!
4603
4974
  cancelInvitation(email: EmailAddress!, reference: String!, type: String!): Boolean!
4604
4975
 
4605
4976
  """To clear translations cache"""
@@ -4725,6 +5096,9 @@ type Mutation {
4725
5096
  """To create new EntityColumn"""
4726
5097
  createEntityColumn(entityColumn: NewEntityColumn!): EntityColumn!
4727
5098
 
5099
+ """To create new EnvVar"""
5100
+ createEnvVar(envVar: NewEnvVar!): EnvVar!
5101
+
4728
5102
  """To create new Favorite"""
4729
5103
  createFavorite(favorite: NewFavorite!): Favorite!
4730
5104
 
@@ -4740,12 +5114,6 @@ type Mutation {
4740
5114
  kpi: NewKpi!
4741
5115
  ): Kpi!
4742
5116
 
4743
- """Create a new KPI category with the provided details."""
4744
- createKpiCategory(
4745
- """Input object containing details for the new KPI category."""
4746
- category: NewKpiCategory!
4747
- ): KpiCategory!
4748
-
4749
5117
  """Create a new KPI metric with the provided details."""
4750
5118
  createKpiMetric(
4751
5119
  """Input object containing details for the new KPI metric."""
@@ -4758,6 +5126,18 @@ type Mutation {
4758
5126
  metricValue: NewKpiMetricValue!
4759
5127
  ): KpiMetricValue!
4760
5128
 
5129
+ """Create a new KPI org-scope mapping with the provided details."""
5130
+ createKpiOrgScope(
5131
+ """Input object containing details for the new org-scope mapping."""
5132
+ kpiOrgScope: NewKpiOrgScope!
5133
+ ): KpiOrgScope!
5134
+
5135
+ """Create a new scope dimension definition"""
5136
+ createKpiScope(kpiScope: NewKpiScope!): KpiScope!
5137
+
5138
+ """To create new KpiStatistic"""
5139
+ createKpiStatistic(kpiStatistic: NewKpiStatistic!): KpiStatistic!
5140
+
4761
5141
  """Create a new KPI value with the provided details."""
4762
5142
  createKpiValue(
4763
5143
  """Input object containing details for the new KPI value."""
@@ -4785,6 +5165,12 @@ type Mutation {
4785
5165
  """To create new MenuDetailColumn"""
4786
5166
  createMenuDetailColumn(menuDetailColumn: NewMenuDetailColumn!): MenuDetailColumn!
4787
5167
 
5168
+ """Create multiple KPI values with the provided details."""
5169
+ createMultipleKpiValue(
5170
+ """Array of input objects containing details for the new KPI values."""
5171
+ values: [NewKpiValue!]!
5172
+ ): [KpiValue!]!
5173
+
4788
5174
  """To create new ApprovalLine for current user"""
4789
5175
  createMyApprovalLine(approvalLine: NewApprovalLine!): ApprovalLine!
4790
5176
 
@@ -5031,6 +5417,12 @@ type Mutation {
5031
5417
  """To delete multiple EntityColumns"""
5032
5418
  deleteEntityColumns(ids: [String!]!): Boolean!
5033
5419
 
5420
+ """To delete EnvVar"""
5421
+ deleteEnvVar(id: String!): Boolean!
5422
+
5423
+ """To delete multiple EnvVars"""
5424
+ deleteEnvVars(ids: [String!]!): Boolean!
5425
+
5034
5426
  """To delete Favorite"""
5035
5427
  deleteFavorite(routing: String!): Boolean!
5036
5428
 
@@ -5043,12 +5435,6 @@ type Mutation {
5043
5435
  """To delete Kpi"""
5044
5436
  deleteKpi(id: String!): Boolean!
5045
5437
 
5046
- """To delete multiple KpiCategories"""
5047
- deleteKpiCategories(ids: [String!]!): Boolean!
5048
-
5049
- """To delete KpiCategory"""
5050
- deleteKpiCategory(id: String!): Boolean!
5051
-
5052
5438
  """To delete KpiMetric"""
5053
5439
  deleteKpiMetric(id: String!): Boolean!
5054
5440
 
@@ -5061,6 +5447,24 @@ type Mutation {
5061
5447
  """To delete multiple KpiMetrics"""
5062
5448
  deleteKpiMetrics(ids: [String!]!): Boolean!
5063
5449
 
5450
+ """Delete KPI org-scope mappings by their IDs."""
5451
+ deleteKpiOrgScopes(
5452
+ """Array of org-scope mapping IDs to delete."""
5453
+ ids: [String!]!
5454
+ ): Boolean!
5455
+
5456
+ """Delete a scope dimension definition"""
5457
+ deleteKpiScope(id: String!): Boolean!
5458
+
5459
+ """Delete multiple scope dimension definitions"""
5460
+ deleteKpiScopes(ids: [String!]!): Boolean!
5461
+
5462
+ """To delete KpiStatistic"""
5463
+ deleteKpiStatistic(id: String!): Boolean!
5464
+
5465
+ """To delete multiple KpiStatistics"""
5466
+ deleteKpiStatistics(ids: [String!]!): Boolean!
5467
+
5064
5468
  """To delete KpiValue"""
5065
5469
  deleteKpiValue(id: String!): Boolean!
5066
5470
 
@@ -5333,15 +5737,15 @@ type Mutation {
5333
5737
  """
5334
5738
  importEmployees(employees: [EmployeePatch!]!): Boolean!
5335
5739
 
5336
- """To import multiple KpiCategories"""
5337
- importKpiCategories(kpiCategories: [KpiCategoryPatch!]!): Boolean!
5338
-
5339
5740
  """To import multiple KpiMetricValues"""
5340
5741
  importKpiMetricValues(metricValues: [KpiMetricValuePatch!]!): Boolean!
5341
5742
 
5342
5743
  """To import multiple KpiMetrics"""
5343
5744
  importKpiMetrics(kpiMetrics: [KpiMetricPatch!]!): Boolean!
5344
5745
 
5746
+ """To import KpiStatistics"""
5747
+ importKpiStatistics(kpiStatistics: [KpiStatisticPatch!]!): Boolean!
5748
+
5345
5749
  """To import multiple KpiValues"""
5346
5750
  importKpiValues(kpiValues: [KpiValuePatch!]!): Boolean!
5347
5751
 
@@ -5426,20 +5830,25 @@ type Mutation {
5426
5830
  """
5427
5831
  pickActivityInstance(id: String!): ActivityThread
5428
5832
 
5429
- """Recalculate grades for all KpiValues of a specific KPI"""
5430
- recalculateGradesForKpi(kpiId: String!): Boolean!
5833
+ """기존 KPI Value 인스턴스를 현재 formula/metric 값으로 재계산"""
5834
+ recalculateKpiValue(id: String!): KpiValue!
5431
5835
 
5432
- """Record a metric value by metric name, value, meta, and group."""
5433
- recordKpiMetricValue(
5434
- """Group key for this value (organization, line, user, etc.)"""
5435
- group: String
5836
+ """Recalculate scores for all KpiValues of a specific KPI"""
5837
+ recalculateScoresForKpi(kpiId: String!): Boolean!
5436
5838
 
5839
+ """Record a metric value by metric name, value, meta, and org."""
5840
+ recordKpiMetricValue(
5437
5841
  """Extended or non-numeric information (JSON)."""
5438
5842
  meta: Object
5439
5843
 
5440
5844
  """Metric code/name."""
5441
5845
  metricName: String!
5442
5846
 
5847
+ """
5848
+ Organizational unit for this value (project, department, company, employee, etc.)
5849
+ """
5850
+ org: String
5851
+
5443
5852
  """Metric value (number)."""
5444
5853
  value: Float
5445
5854
  ): KpiMetricValue!
@@ -5536,7 +5945,7 @@ type Mutation {
5536
5945
  startDataSummarySchedule(dataSetId: String!): DataSet!
5537
5946
 
5538
5947
  """Starts a new scenario instance, which will run in the background."""
5539
- startScenario(instanceName: String, scenarioName: String!, variables: Object): ScenarioInstance!
5948
+ startScenario(instanceName: String, scenarioName: String!, variables: Object): ScenarioInstanceStartResult!
5540
5949
 
5541
5950
  """Starts the schedule for a specific scenario, if one is defined."""
5542
5951
  startScenarioSchedule(scenarioId: String!): Scenario!
@@ -5678,6 +6087,9 @@ type Mutation {
5678
6087
  """To modify EntityColumn information"""
5679
6088
  updateEntityColumn(id: String!, patch: EntityColumnPatch!): EntityColumn!
5680
6089
 
6090
+ """To modify EnvVar information"""
6091
+ updateEnvVar(envVar: EnvVarPatch!, id: String!): EnvVar!
6092
+
5681
6093
  """To modify Font information"""
5682
6094
  updateFont(id: String!, patch: FontPatch!): Font!
5683
6095
 
@@ -5687,15 +6099,18 @@ type Mutation {
5687
6099
  """To modify Kpi information"""
5688
6100
  updateKpi(id: String!, patch: KpiPatch!): Kpi!
5689
6101
 
5690
- """To modify KpiCategory information"""
5691
- updateKpiCategory(id: String!, patch: KpiCategoryPatch!): KpiCategory!
5692
-
5693
6102
  """To modify KpiMetric information"""
5694
6103
  updateKpiMetric(id: String!, patch: KpiMetricPatch!): KpiMetric!
5695
6104
 
5696
6105
  """To modify KpiMetricValue information"""
5697
6106
  updateKpiMetricValue(id: String!, patch: KpiMetricValuePatch!): KpiMetricValue!
5698
6107
 
6108
+ """Update a scope dimension definition"""
6109
+ updateKpiScope(id: String!, patch: KpiScopePatch!): KpiScope!
6110
+
6111
+ """To modify KpiStatistic information"""
6112
+ updateKpiStatistic(id: String!, patch: KpiStatisticPatch!): KpiStatistic!
6113
+
5699
6114
  """To modify KpiValue information"""
5700
6115
  updateKpiValue(id: String!, patch: KpiValuePatch!): KpiValue!
5701
6116
 
@@ -5787,18 +6202,30 @@ type Mutation {
5787
6202
  """To modify multiple Entitys' information"""
5788
6203
  updateMultipleEntityColumn(patches: [EntityColumnPatch!]!): [EntityColumn!]!
5789
6204
 
6205
+ """To modify multiple EnvVars' information"""
6206
+ updateMultipleEnvVars(patches: [EnvVarPatch!]!): [EnvVar!]!
6207
+
5790
6208
  """To modify multiple Kpis' information"""
5791
6209
  updateMultipleKpi(patches: [KpiPatch!]!): [Kpi!]!
5792
6210
 
5793
- """To modify multiple KpiCategories' information"""
5794
- updateMultipleKpiCategory(patches: [KpiCategoryPatch!]!): [KpiCategory!]!
5795
-
5796
6211
  """To modify multiple KpiMetrics' information"""
5797
6212
  updateMultipleKpiMetric(patches: [KpiMetricPatch!]!): [KpiMetric!]!
5798
6213
 
5799
6214
  """To modify multiple KpiMetricValues' information"""
5800
6215
  updateMultipleKpiMetricValue(patches: [KpiMetricValuePatch!]!): [KpiMetricValue!]!
5801
6216
 
6217
+ """Update multiple KPI org-scope mappings with the provided patches."""
6218
+ updateMultipleKpiOrgScope(
6219
+ """Array of patch objects for updating org-scope mappings."""
6220
+ patches: [KpiOrgScopePatch!]!
6221
+ ): [KpiOrgScope!]!
6222
+
6223
+ """Update multiple scope dimension definitions"""
6224
+ updateMultipleKpiScope(patches: [KpiScopePatch!]!): [KpiScope!]!
6225
+
6226
+ """To modify multiple KpiStatistics' information"""
6227
+ updateMultipleKpiStatistic(patches: [KpiStatisticPatch!]!): [KpiStatistic!]!
6228
+
5802
6229
  """To modify multiple KpiValues' information"""
5803
6230
  updateMultipleKpiValue(patches: [KpiValuePatch!]!): [KpiValue!]!
5804
6231
 
@@ -6160,6 +6587,9 @@ input NewCommonCodeDetail {
6160
6587
 
6161
6588
  """Input for creating a new connection."""
6162
6589
  input NewConnection {
6590
+ """Whether to automatically connect when the application starts"""
6591
+ active: Boolean
6592
+
6163
6593
  """A detailed description for the new connection."""
6164
6594
  description: String
6165
6595
 
@@ -6172,6 +6602,11 @@ input NewConnection {
6172
6602
  """The name for the new connection."""
6173
6603
  name: String!
6174
6604
 
6605
+ """
6606
+ When true, connection is created on-demand when needed and cleaned up after use.
6607
+ """
6608
+ onDemand: Boolean
6609
+
6175
6610
  """A key-value map of parameters for the new connection."""
6176
6611
  params: Object
6177
6612
 
@@ -6455,6 +6890,21 @@ input NewEntityColumn {
6455
6890
  virtualField: Boolean
6456
6891
  }
6457
6892
 
6893
+ """Input type for creating a new environment variable."""
6894
+ input NewEnvVar {
6895
+ """Indicates whether this environment variable is active."""
6896
+ active: Boolean
6897
+
6898
+ """A detailed description for the new environment variable."""
6899
+ description: String
6900
+
6901
+ """The name for the new environment variable."""
6902
+ name: String!
6903
+
6904
+ """The value for the new environment variable."""
6905
+ value: String
6906
+ }
6907
+
6458
6908
  input NewFavorite {
6459
6909
  routing: String!
6460
6910
  }
@@ -6484,26 +6934,36 @@ input NewKpi {
6484
6934
  """Indicates whether this KPI is active and usable."""
6485
6935
  active: Boolean
6486
6936
 
6487
- """ID of the category to which this KPI belongs."""
6488
- categoryId: ID
6489
-
6490
6937
  """Detailed description of the KPI."""
6491
6938
  description: String
6492
6939
 
6493
6940
  """Calculation formula for the KPI, using metric codes and operators."""
6494
6941
  formula: String
6495
6942
 
6496
- """Grade configuration for this KPI version"""
6943
+ """Score lookup table for this KPI version"""
6497
6944
  grades: Object
6498
6945
 
6946
+ """
6947
+ Indicates whether this KPI is a leaf node (has actual measured values).
6948
+ """
6949
+ isLeaf: Boolean
6950
+
6499
6951
  """Name of the KPI."""
6500
6952
  name: String!
6501
6953
 
6954
+ """Reference to the parent KPI in hierarchical structure."""
6955
+ parent: ObjectRef
6956
+
6502
6957
  """
6503
6958
  Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
6504
6959
  """
6505
6960
  schedule: String
6506
6961
 
6962
+ """
6963
+ Score calculation formula for this KPI. Converts KPI value to performance score (0-1).
6964
+ """
6965
+ scoreFormula: String
6966
+
6507
6967
  """Current state of the KPI (DRAFT, RELEASED, ARCHIVED)."""
6508
6968
  state: KpiStatus
6509
6969
 
@@ -6527,26 +6987,6 @@ input NewKpi {
6527
6987
  weight: Float
6528
6988
  }
6529
6989
 
6530
- """
6531
- Input type for creating a new KPI category. Used in mutations to provide category details.
6532
- """
6533
- input NewKpiCategory {
6534
- """Whether this category is active (usable) or not."""
6535
- active: Boolean
6536
-
6537
- """Detailed description of this KPI category."""
6538
- description: String
6539
-
6540
- """Aggregation formula using child KPI codes."""
6541
- formula: String
6542
-
6543
- """Name of the KPI category."""
6544
- name: String!
6545
-
6546
- """Weight for aggregation in higher-level summary."""
6547
- weight: Float
6548
- }
6549
-
6550
6990
  """
6551
6991
  Input type for creating a new KPI metric. Used in mutations to provide metric details.
6552
6992
  """
@@ -6570,7 +7010,7 @@ input NewKpiMetric {
6570
7010
  name: String!
6571
7011
 
6572
7012
  """Aggregation period type for this metric."""
6573
- periodType: KpiMetricPeriodType
7013
+ periodType: KpiPeriodType
6574
7014
 
6575
7015
  """
6576
7016
  Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
@@ -6597,9 +7037,6 @@ input NewKpiMetric {
6597
7037
  Input type for creating a new metric value. Used in mutations to provide metric value details.
6598
7038
  """
6599
7039
  input NewKpiMetricValue {
6600
- """Group key for this value (organization, line, user, etc.)"""
6601
- group: String
6602
-
6603
7040
  """
6604
7041
  Extended or non-numeric information related to this metric value, stored as JSON. Can include status, comments, or other metadata.
6605
7042
  """
@@ -6608,6 +7045,11 @@ input NewKpiMetricValue {
6608
7045
  """ID of the metric to which this value belongs."""
6609
7046
  metricId: ID!
6610
7047
 
7048
+ """
7049
+ Organizational unit for this value (project, department, company, employee, etc.)
7050
+ """
7051
+ org: String
7052
+
6611
7053
  """Aggregation period type for this metric value."""
6612
7054
  periodType: KpiPeriodType!
6613
7055
 
@@ -6623,11 +7065,102 @@ input NewKpiMetricValue {
6623
7065
  valueDate: String!
6624
7066
  }
6625
7067
 
7068
+ """Input type for creating a new KPI org-scope mapping"""
7069
+ input NewKpiOrgScope {
7070
+ """Active status"""
7071
+ active: Boolean
7072
+
7073
+ """Human-readable name or description"""
7074
+ displayName: String
7075
+
7076
+ """Organizational unit identifier"""
7077
+ org: String!
7078
+
7079
+ """First scope dimension"""
7080
+ scope01: String
7081
+
7082
+ """Second scope dimension"""
7083
+ scope02: String
7084
+
7085
+ """Third scope dimension"""
7086
+ scope03: String
7087
+
7088
+ """Fourth scope dimension"""
7089
+ scope04: String
7090
+
7091
+ """Fifth scope dimension"""
7092
+ scope05: String
7093
+ }
7094
+
7095
+ input NewKpiScope {
7096
+ """Whether this scope definition is active and should be used"""
7097
+ active: Boolean! = true
7098
+
7099
+ """Detailed description of what this scope dimension represents"""
7100
+ description: String
7101
+
7102
+ """Order/priority for display and processing"""
7103
+ displayOrder: Int! = 1
7104
+
7105
+ """Whether this scope should be included in statistical calculations"""
7106
+ includeInStatistics: Boolean! = true
7107
+
7108
+ """Scope level (1-5) corresponding to scope01-scope05 in KpiOrgScope"""
7109
+ level: Int!
7110
+
7111
+ """Additional metadata for this scope dimension"""
7112
+ metadata: Object
7113
+
7114
+ """Display name for this scope dimension (e.g., "지역", "회사", "프로젝트규모")"""
7115
+ name: String!
7116
+
7117
+ """Parent scope level if this forms a hierarchy"""
7118
+ parentLevel: Int
7119
+
7120
+ """Type category of this scope dimension"""
7121
+ scopeType: ScopeType!
7122
+
7123
+ """Whether this scope should be displayed in dashboard visualizations"""
7124
+ showInDashboard: Boolean! = false
7125
+
7126
+ """List of valid values for this scope"""
7127
+ validValues: [String!]
7128
+
7129
+ """Regex pattern for validating values in this scope dimension"""
7130
+ validationPattern: String
7131
+ }
7132
+
7133
+ input NewKpiStatistic {
7134
+ additionalStatistics: Object
7135
+ count: Float
7136
+ iqr: Float
7137
+ kpi: ObjectRef
7138
+ lowerFence: Float
7139
+ maximum: Float
7140
+ mean: Float
7141
+ median: Float
7142
+ metadata: Object
7143
+ minimum: Float
7144
+ percentile25: Float
7145
+ percentile75: Float
7146
+ periodType: KpiPeriodType!
7147
+ range: Float
7148
+ standardDeviation: Float
7149
+ sum: Float
7150
+ upperFence: Float
7151
+
7152
+ """
7153
+ Date or period for which this statistic is calculated (e.g., day: YYYY-MM-DD, month: YYYY-MM, quarter: YYYY-Qn, range: YYYY-MM-DD~YYYY-MM-DD).
7154
+ """
7155
+ valueDate: String!
7156
+ variance: Float
7157
+ }
7158
+
6626
7159
  """
6627
7160
  Input type for creating a new KPI value. Used in mutations to provide KPI value details.
6628
7161
  """
6629
7162
  input NewKpiValue {
6630
- """Group key for this value (organization, line, user, etc.)"""
7163
+ """Group key for this value (organization, line, user, project, etc.)"""
6631
7164
  group: String
6632
7165
 
6633
7166
  """
@@ -6638,11 +7171,22 @@ input NewKpiValue {
6638
7171
  """ID of the KPI to which this value belongs."""
6639
7172
  kpiId: ID!
6640
7173
 
7174
+ """ID of the KPI organization scope for this value."""
7175
+ kpiOrgScopeId: ID
7176
+
6641
7177
  """
6642
7178
  Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.
6643
7179
  """
6644
7180
  meta: Object
6645
7181
 
7182
+ """Legacy organizational unit identifier (for backward compatibility)"""
7183
+ org: String
7184
+
7185
+ """
7186
+ Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.
7187
+ """
7188
+ score: Float
7189
+
6646
7190
  """Source of the value (e.g., system, user, external integration)."""
6647
7191
  source: String
6648
7192
 
@@ -6931,6 +7475,9 @@ input NewScenario {
6931
7475
  """A detailed description for the new scenario."""
6932
7476
  description: String
6933
7477
 
7478
+ """Iteration for scenario execution: SELF, CHILDREN, or SELF & CHILDREN."""
7479
+ iteration: String
7480
+
6934
7481
  """The name of the new scenario."""
6935
7482
  name: String!
6936
7483
 
@@ -7760,8 +8307,15 @@ type PropertySpec {
7760
8307
  """CSS styles to be applied to the input field."""
7761
8308
  styles: Object
7762
8309
 
7763
- """The data type of the property (e.g., text, number, boolean, select)."""
8310
+ """
8311
+ The data type of the property (e.g., text, number, boolean, select, password).
8312
+ """
7764
8313
  type: String!
8314
+
8315
+ """
8316
+ Whether this property should use Domain attributes for secure storage instead of direct params.
8317
+ """
8318
+ useDomainAttribute: Boolean
7765
8319
  }
7766
8320
 
7767
8321
  type Query {
@@ -8299,6 +8853,9 @@ type Query {
8299
8853
  ): ContactList!
8300
8854
  customers: [Domain!]!
8301
8855
 
8856
+ """Get aggregated statistics by scope02 (regional level) for dashboard"""
8857
+ dashboardRegionalStatistics(periodType: KpiPeriodType! = MONTH, valueDate: String!): [KpiStatistic!]!
8858
+
8302
8859
  """
8303
8860
  Retrieves a single data archive by its unique identifier. This query fetches detailed information about a data archive request including its status, download URL, and associated dataset information for data export purposes.
8304
8861
  """
@@ -8840,6 +9397,20 @@ type Query {
8840
9397
 
8841
9398
  """To fetch a EntityMetadata"""
8842
9399
  entityMetadata(name: String!): EntityMetadata!
9400
+ envVar(id: String!): EnvVar
9401
+ envVars(
9402
+ """An array of filter conditions to apply to the list query."""
9403
+ filters: [Filter!]
9404
+
9405
+ """Inherited value type for the list query."""
9406
+ inherited: InheritedValueType
9407
+
9408
+ """Pagination options for the list query."""
9409
+ pagination: Pagination
9410
+
9411
+ """Sorting options for the list query."""
9412
+ sortings: [Sorting!]
9413
+ ): EnvVarList!
8843
9414
 
8844
9415
  """To fetch a Favorite"""
8845
9416
  favorite(id: String!): Favorite!
@@ -8955,26 +9526,11 @@ type Query {
8955
9526
  """KPI 실적/등급/목표 미달 등 경고/알림 리스트 반환"""
8956
9527
  kpiAlerts: [KpiAlert!]!
8957
9528
 
8958
- """To fetch multiple KpiCategories"""
8959
- kpiCategories(
8960
- """An array of filter conditions to apply to the list query."""
8961
- filters: [Filter!]
8962
-
8963
- """Inherited value type for the list query."""
8964
- inherited: InheritedValueType
8965
-
8966
- """Pagination options for the list query."""
8967
- pagination: Pagination
8968
-
8969
- """Sorting options for the list query."""
8970
- sortings: [Sorting!]
8971
- ): KpiCategoryList!
8972
-
8973
- """Fetch a single KPI category by its unique identifier."""
8974
- kpiCategory(
8975
- """Unique identifier of the KPI category to fetch."""
8976
- id: String!
8977
- ): KpiCategory
9529
+ """Fetch child KPIs of a given parent KPI"""
9530
+ kpiChildren(
9531
+ """ID of the parent KPI"""
9532
+ parentId: String!
9533
+ ): [Kpi!]!
8978
9534
 
8979
9535
  """Fetch a single KPI metric by its unique identifier."""
8980
9536
  kpiMetric(
@@ -9018,6 +9574,87 @@ type Query {
9018
9574
  sortings: [Sorting!]
9019
9575
  ): KpiMetricList!
9020
9576
 
9577
+ """Fetch a single KPI org-scope mapping by its unique identifier."""
9578
+ kpiOrgScope(
9579
+ """Unique identifier of the org-scope mapping to fetch."""
9580
+ id: String!
9581
+ ): KpiOrgScope
9582
+
9583
+ """Find org-scope mapping by org identifier"""
9584
+ kpiOrgScopeByOrg(
9585
+ """Organization identifier to search for"""
9586
+ org: String!
9587
+ ): KpiOrgScope
9588
+
9589
+ """Get distinct values for a specific scope field"""
9590
+ kpiOrgScopeValues(
9591
+ """Scope field to get distinct values from"""
9592
+ scopeField: String!
9593
+
9594
+ """Optional search term to filter values"""
9595
+ searchTerm: String
9596
+ ): [String!]!
9597
+
9598
+ """Fetch multiple KPI org-scope mappings with filters and pagination"""
9599
+ kpiOrgScopes(
9600
+ """An array of filter conditions to apply to the list query."""
9601
+ filters: [Filter!]
9602
+
9603
+ """Inherited value type for the list query."""
9604
+ inherited: InheritedValueType
9605
+
9606
+ """Pagination options for the list query."""
9607
+ pagination: Pagination
9608
+
9609
+ """Sorting options for the list query."""
9610
+ sortings: [Sorting!]
9611
+ ): KpiOrgScopeList!
9612
+
9613
+ """Get distinct org values"""
9614
+ kpiOrgValues(
9615
+ """Optional search term to filter org values"""
9616
+ searchTerm: String
9617
+ ): [String!]!
9618
+
9619
+ """Fetch a scope dimension definition by ID"""
9620
+ kpiScope(id: String!): KpiScope
9621
+
9622
+ """Fetch multiple scope dimension definitions"""
9623
+ kpiScopes(
9624
+ """An array of filter conditions to apply to the list query."""
9625
+ filters: [Filter!]
9626
+
9627
+ """Inherited value type for the list query."""
9628
+ inherited: InheritedValueType
9629
+
9630
+ """Pagination options for the list query."""
9631
+ pagination: Pagination
9632
+
9633
+ """Sorting options for the list query."""
9634
+ sortings: [Sorting!]
9635
+ ): KpiScopeList!
9636
+
9637
+ """To fetch a KpiStatistic"""
9638
+ kpiStatistic(id: String!): KpiStatistic
9639
+
9640
+ """To fetch multiple KpiStatistics"""
9641
+ kpiStatistics(
9642
+ """An array of filter conditions to apply to the list query."""
9643
+ filters: [Filter!]
9644
+
9645
+ """Inherited value type for the list query."""
9646
+ inherited: InheritedValueType
9647
+
9648
+ """Pagination options for the list query."""
9649
+ pagination: Pagination
9650
+
9651
+ """Sorting options for the list query."""
9652
+ sortings: [Sorting!]
9653
+ ): KpiStatisticList!
9654
+
9655
+ """Fetch KPIs in hierarchical tree structure"""
9656
+ kpiTree: [Kpi!]!
9657
+
9021
9658
  """Fetch a single KPI value by its unique identifier."""
9022
9659
  kpiValue(
9023
9660
  """Unique identifier of the KPI value to fetch."""
@@ -9054,6 +9691,19 @@ type Query {
9054
9691
  sortings: [Sorting!]
9055
9692
  ): KpiList!
9056
9693
 
9694
+ """Fetch root KPIs (KPIs without parent)"""
9695
+ kpisLevel0: [Kpi!]!
9696
+
9697
+ """
9698
+ Fetch first level child KPIs. If rootId is provided, get children of that parent. If not, get all level 1 KPIs (children of root KPIs)
9699
+ """
9700
+ kpisLevel1(
9701
+ """
9702
+ ID of the parent KPI to get level 1 children. If not provided, returns all level 1 KPIs
9703
+ """
9704
+ rootId: String
9705
+ ): [Kpi!]!
9706
+
9057
9707
  """To fetch a LiteMenu"""
9058
9708
  liteMenu(id: String!): LiteMenu!
9059
9709
 
@@ -9481,6 +10131,9 @@ type Query {
9481
10131
  """To query data in S3 using Amazon Athena SDK"""
9482
10132
  queryFromAthena(queryData: Object!): Any!
9483
10133
 
10134
+ """Get regional statistics for dashboard map visualization"""
10135
+ regionalKpiStatistics(periodType: KpiPeriodType! = MONTH, regions: [String!], valueDate: String!): [KpiStatistic!]!
10136
+
9484
10137
  """To fetch role"""
9485
10138
  role(name: String!): Role!
9486
10139
 
@@ -9929,7 +10582,7 @@ type SPCSpecLimits {
9929
10582
  """Represents a sequence of steps designed to automate a task or process."""
9930
10583
  type Scenario {
9931
10584
  """
9932
- Indicates if the scenario should be automatically started when the server starts. [will be deprecated]
10585
+ Indicates if the scenario should be automatically started when the server starts.
9933
10586
  """
9934
10587
  active: Boolean
9935
10588
  connectionNames: [Connection!]!
@@ -9950,6 +10603,9 @@ type Scenario {
9950
10603
  id: ID!
9951
10604
  instances: [ScenarioInstance!]
9952
10605
 
10606
+ """Iteration for scenario execution: SELF, CHILDREN, or SELF & CHILDREN."""
10607
+ iteration: String
10608
+
9953
10609
  """The name of the scenario."""
9954
10610
  name: String!
9955
10611
 
@@ -10079,6 +10735,18 @@ type ScenarioInstanceRunResult {
10079
10735
  variables: Object
10080
10736
  }
10081
10737
 
10738
+ """Contains the final result of a completed scenario instance start."""
10739
+ type ScenarioInstanceStartResult {
10740
+ """A final message from the run (e.g., success or failure reason)."""
10741
+ message: String
10742
+
10743
+ """The final state of the instance after the run."""
10744
+ state: String
10745
+
10746
+ """The timestamp when the instance started."""
10747
+ timestamp: DateTimeISO
10748
+ }
10749
+
10082
10750
  """
10083
10751
  Represents the complete state of a scenario instance at a point in time.
10084
10752
  """
@@ -10131,7 +10799,9 @@ type ScenarioList {
10131
10799
 
10132
10800
  """Input for updating (patching) an existing scenario."""
10133
10801
  input ScenarioPatch {
10134
- """The new active status for the scenario."""
10802
+ """
10803
+ Indicates if the scenario should be automatically started when the server starts.
10804
+ """
10135
10805
  active: Boolean
10136
10806
 
10137
10807
  """
@@ -10145,6 +10815,11 @@ input ScenarioPatch {
10145
10815
  """The unique identifier of the scenario to update."""
10146
10816
  id: ID
10147
10817
 
10818
+ """
10819
+ The new iteration for scenario execution: SELF, CHILDREN, or SELF & CHILDREN.
10820
+ """
10821
+ iteration: String
10822
+
10148
10823
  """The new name for the scenario."""
10149
10824
  name: String
10150
10825
 
@@ -10371,6 +11046,16 @@ input ScheduleTaskInput {
10371
11046
  type: String!
10372
11047
  }
10373
11048
 
11049
+ """Types of organizational scope dimensions"""
11050
+ enum ScopeType {
11051
+ BUSINESS
11052
+ CUSTOM
11053
+ GEOGRAPHIC
11054
+ ORGANIZATIONAL
11055
+ TECHNICAL
11056
+ TEMPORAL
11057
+ }
11058
+
10374
11059
  """Entity for Setting"""
10375
11060
  type Setting {
10376
11061
  category: String!