@trii/types 2.10.721 → 2.10.723

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.
@@ -1,4 +1,5 @@
1
1
  import { ITicketAuditedEntity, TicketPropertyValue } from "./Common";
2
+ import { TicketFieldType } from "./Fields";
2
3
  import { TicketConditionOperator } from "./Workflow";
3
4
  export declare enum TicketSecurityResourceType {
4
5
  TICKET = "TICKET",
@@ -145,15 +146,71 @@ export interface ITicketSecurityPolicy extends ITicketAuditedEntity {
145
146
  fieldPermissions?: ITicketFieldPermission[];
146
147
  validFrom?: Date;
147
148
  validUntil?: Date;
149
+ version: number;
150
+ }
151
+ export interface ICreateTicketSecurityPolicyDto {
152
+ name: string;
153
+ description?: string;
154
+ enabled?: boolean;
155
+ priority?: number;
156
+ effect: TicketPolicyEffect;
157
+ resourceTypes: TicketSecurityResourceType[];
158
+ operations: TicketSecurityOperation[];
159
+ subjects: ITicketSecuritySubject;
160
+ scope?: ITicketSecurityScope;
161
+ conditions?: ITicketSecurityConditionGroup;
162
+ fieldPermissions?: ITicketFieldPermission[];
163
+ validFrom?: Date;
164
+ validUntil?: Date;
165
+ }
166
+ export interface IUpdateTicketSecurityPolicyDto {
167
+ expectedVersion: number;
168
+ name?: string;
169
+ description?: string;
170
+ enabled?: boolean;
171
+ priority?: number;
172
+ effect?: TicketPolicyEffect;
173
+ resourceTypes?: TicketSecurityResourceType[];
174
+ operations?: TicketSecurityOperation[];
175
+ subjects?: ITicketSecuritySubject;
176
+ scope?: ITicketSecurityScope;
177
+ conditions?: ITicketSecurityConditionGroup;
178
+ fieldPermissions?: ITicketFieldPermission[];
179
+ validFrom?: Date;
180
+ validUntil?: Date;
148
181
  }
149
182
  export interface ITicketFieldSecurityDefinition extends ITicketAuditedEntity {
150
183
  fieldNameKey: string;
151
- classification: TicketDataClassification;
184
+ label: string;
185
+ type: TicketFieldType;
186
+ isSystem: boolean;
187
+ enabled: boolean;
188
+ classification?: TicketDataClassification;
152
189
  containsPii: boolean;
153
190
  maskingStrategy: TicketMaskingStrategy;
154
- searchableWhenMasked?: boolean;
191
+ searchableWhenMasked: boolean;
155
192
  exportable: boolean;
156
193
  retentionPolicyId?: string;
194
+ readRoleIds?: string[];
195
+ writeRoleIds?: string[];
196
+ searchable: boolean;
197
+ filterable: boolean;
198
+ sortable: boolean;
199
+ version: number;
200
+ }
201
+ export interface IUpdateTicketFieldSecurityDefinitionDto {
202
+ expectedVersion: number;
203
+ classification?: TicketDataClassification;
204
+ containsPii?: boolean;
205
+ maskingStrategy?: TicketMaskingStrategy;
206
+ searchableWhenMasked?: boolean;
207
+ exportable?: boolean;
208
+ retentionPolicyId?: string;
209
+ readRoleIds?: string[];
210
+ writeRoleIds?: string[];
211
+ searchable?: boolean;
212
+ filterable?: boolean;
213
+ sortable?: boolean;
157
214
  }
158
215
  export interface ITicketSecurityState {
159
216
  sensitivity: TicketSensitivityLevel;
@@ -189,6 +246,58 @@ export interface ITicketRetentionPolicy extends ITicketAuditedEntity {
189
246
  dataClassifications?: TicketDataClassification[];
190
247
  preserveAuditLog: boolean;
191
248
  enabled: boolean;
249
+ version: number;
250
+ }
251
+ export interface ICreateTicketRetentionPolicyDto {
252
+ name: string;
253
+ description?: string;
254
+ retentionDays: number;
255
+ action: TicketRetentionAction;
256
+ categoryIds?: string[];
257
+ dataClassifications?: TicketDataClassification[];
258
+ preserveAuditLog?: boolean;
259
+ enabled?: boolean;
260
+ }
261
+ export interface IUpdateTicketRetentionPolicyDto {
262
+ expectedVersion: number;
263
+ name?: string;
264
+ description?: string;
265
+ retentionDays?: number;
266
+ action?: TicketRetentionAction;
267
+ categoryIds?: string[];
268
+ dataClassifications?: TicketDataClassification[];
269
+ preserveAuditLog?: boolean;
270
+ enabled?: boolean;
271
+ }
272
+ export interface ITicketFieldSecurityValidationIssue {
273
+ code: string;
274
+ severity: 'ERROR' | 'WARNING';
275
+ message: string;
276
+ path?: string;
277
+ }
278
+ export interface ITicketFieldSecurityValidationEntry {
279
+ fieldNameKey: string;
280
+ issues: ITicketFieldSecurityValidationIssue[];
281
+ }
282
+ export interface IValidateTicketFieldSecurityResponse {
283
+ fields: ITicketFieldSecurityValidationEntry[];
284
+ }
285
+ export interface ITicketFieldSecurityPreviewRequest {
286
+ roleIds: string[];
287
+ }
288
+ export interface ITicketFieldSecurityPreviewEntry {
289
+ fieldNameKey: string;
290
+ label: string;
291
+ visible: boolean;
292
+ editable: boolean;
293
+ masked: boolean;
294
+ maskingStrategy?: TicketMaskingStrategy;
295
+ searchable: boolean;
296
+ exportable: boolean;
297
+ }
298
+ export interface ITicketFieldSecurityPreviewResponse {
299
+ roleIds: string[];
300
+ fields: ITicketFieldSecurityPreviewEntry[];
192
301
  }
193
302
  export interface ITicketLegalHold {
194
303
  id: string;
@@ -260,15 +369,49 @@ export interface ITicketAuthorizationRequest {
260
369
  context?: {
261
370
  [key: string]: TicketPropertyValue;
262
371
  };
372
+ evaluatedAt?: Date;
373
+ subjectContext?: ITicketAuthorizationSubjectContext;
374
+ ticketContext?: ITicketAuthorizationTicketContext;
375
+ }
376
+ export interface ITicketAuthorizationSubjectContext {
377
+ isAgent?: boolean;
378
+ isCustomer?: boolean;
379
+ roleIds?: string[];
380
+ groupIds?: string[];
381
+ organizationIds?: string[];
382
+ contactSegmentIds?: string[];
383
+ }
384
+ export interface ITicketAuthorizationTicketContext {
385
+ requesterId?: string;
386
+ assigneeId?: string;
387
+ assignedGroupId?: string;
388
+ categoryId?: string;
389
+ channelId?: string;
390
+ brandId?: string;
391
+ organizationId?: string;
392
+ sensitivityLevel?: TicketSensitivityLevel;
393
+ fields?: {
394
+ [nameKey: string]: TicketPropertyValue;
395
+ };
263
396
  }
264
397
  export interface ITicketAuthorizationDecision {
265
398
  allowed: boolean;
266
399
  policyIds: string[];
400
+ decisivePolicyId?: string;
267
401
  deniedFieldNameKeys?: string[];
268
402
  maskedFieldNameKeys?: string[];
269
403
  reason?: string;
270
404
  evaluatedAt: Date;
271
405
  }
406
+ export interface ITicketSecurityPolicyValidationIssue {
407
+ code: string;
408
+ severity: 'ERROR' | 'WARNING';
409
+ message: string;
410
+ path?: string;
411
+ }
412
+ export interface IValidateTicketSecurityPolicyResponse {
413
+ issues: ITicketSecurityPolicyValidationIssue[];
414
+ }
272
415
  export interface ICreateTicketRedactionRequestDto {
273
416
  expectedVersion: number;
274
417
  fieldNameKeys?: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trii/types",
3
- "version": "2.10.721",
3
+ "version": "2.10.723",
4
4
  "description": "Types definitions for Trii projects - ",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",