addigy 2.6.1 → 2.7.0

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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CustomFact, Extension, FilevaultRequest, IAddigyConfig, IAddigyInternalAuthObject, MdmConfigurationPayload, NotificationSettings, PPPCInput, SupportedOsVersions } from './types';
1
+ import { CreateWebContentFilterPayload, CustomFact, Extension, FilevaultRequest, IAddigyConfig, IAddigyInternalAuthObject, MdmConfigurationPayload, NotificationSettings, PPPCInput, ServiceManagementPayloadRule, SupportedOsVersions } from './types';
2
2
  export * from './types';
3
3
  declare enum AlertStatus {
4
4
  Acknowledged = "Acknowledged",
@@ -62,6 +62,8 @@ export declare class Addigy {
62
62
  createNotificationSettingsPolicy(authObject: IAddigyInternalAuthObject, name: string, notificationSettings: NotificationSettings[]): Promise<any>;
63
63
  createCustomProfile(authObject: IAddigyInternalAuthObject, name: string, customProfileText: string, supportedOsVersions: SupportedOsVersions, payloadScope?: 'System' | 'User', is_profile_signed?: boolean): Promise<any>;
64
64
  createMdmProfile(authObject: IAddigyInternalAuthObject, mdmProfile: any): Promise<any>;
65
+ createServiceManagementPolicy(authObject: IAddigyInternalAuthObject, name: string, rules: ServiceManagementPayloadRule[], priority?: number): Promise<any>;
66
+ createWebContentFilterPolicy(authObject: IAddigyInternalAuthObject, payloadName: string, webContentPayload: CreateWebContentFilterPayload, priority?: number): Promise<any>;
65
67
  createFilevaultPolicy(authObject: IAddigyInternalAuthObject, name: string, filevault: FilevaultRequest, payloadPriority?: number): Promise<any>;
66
68
  createPPPCPolicy(authObject: IAddigyInternalAuthObject, name: string, pppcPolicy: PPPCInput[]): Promise<any>;
67
69
  createCustomFact(authObject: IAddigyInternalAuthObject, name: string, script: string, scriptType: 'bash' | 'python' | 'zsh'): Promise<CustomFact>;
package/index.js CHANGED
@@ -743,6 +743,89 @@ class Addigy {
743
743
  throw err;
744
744
  }
745
745
  }
746
+ async createServiceManagementPolicy(authObject, name, rules, priority = 9) {
747
+ const groupUUID = uuid_1.v4();
748
+ const payload = {
749
+ addigy_payload_type: 'com.addigy.servicemanagement.com.apple.servicemanagement',
750
+ addigy_payload_version: 0,
751
+ has_manifest: false,
752
+ payload_display_name: name,
753
+ payload_enabled: false,
754
+ payload_group_id: groupUUID,
755
+ payload_identifier: `com.addigy.servicemanagement.com.apple.servicemanagement.${groupUUID}`,
756
+ payload_priority: priority,
757
+ payload_type: 'com.apple.servicemanagement',
758
+ payload_uuid: uuid_1.v4(),
759
+ payload_version: 1,
760
+ policy_restricted: false,
761
+ requires_device_supervision: false,
762
+ requires_mdm_profile_approved: false,
763
+ supported_os_versions: null,
764
+ rules,
765
+ };
766
+ try {
767
+ let res = await this._addigyRequest('https://app-prod.addigy.com/api/mdm/user/profiles/configurations', {
768
+ headers: {
769
+ Cookie: `auth_token=${authObject.authToken};`,
770
+ origin: 'https://app-prod.addigy.com',
771
+ },
772
+ method: 'POST',
773
+ json: { payloads: [payload] },
774
+ });
775
+ return JSON.parse(res.body);
776
+ }
777
+ catch (err) {
778
+ throw err;
779
+ }
780
+ }
781
+ async createWebContentFilterPolicy(authObject, payloadName, webContentPayload, priority = 9) {
782
+ const groupUUID = uuid_1.v4();
783
+ const payload = {
784
+ addigy_payload_type: 'com.addigy.webcontent-filter.com.apple.webcontent-filter',
785
+ addigy_payload_version: 2,
786
+ auto_filter_enabled: null,
787
+ blacklisted_urls: null,
788
+ content_filter_uuid: null,
789
+ filter_browsers: null,
790
+ filter_data_provider_bundle_identifier: null,
791
+ filter_data_provider_designated_requirement: null,
792
+ filter_packet_provider_bundle_identifier: null,
793
+ filter_packet_provider_designated_requirement: null,
794
+ filter_packets: null,
795
+ filter_sockets: true,
796
+ filter_type: 'Plugin',
797
+ has_manifest: false,
798
+ organization: null,
799
+ password: null,
800
+ payload_display_name: payloadName,
801
+ payload_enabled: true,
802
+ payload_group_id: groupUUID,
803
+ payload_identifier: `com.addigy.webcontent-filter.com.apple.webcontent-filter.${groupUUID}`,
804
+ payload_priority: priority,
805
+ payload_type: 'com.apple.webcontent-filter',
806
+ payload_uuid: uuid_1.v4(),
807
+ payload_version: 1,
808
+ permitted_urls: null,
809
+ policy_restricted: false,
810
+ requires_device_supervision: false,
811
+ requires_mdm_profile_approved: false,
812
+ server_address: null,
813
+ supported_os_versions: null,
814
+ user_name: null,
815
+ vendor_config: null,
816
+ white_listed_bookmarks: null,
817
+ ...webContentPayload,
818
+ };
819
+ let res = await this._addigyRequest('https://app-prod.addigy.com/api/mdm/user/profiles/configurations', {
820
+ headers: {
821
+ Cookie: `auth_token=${authObject.authToken};`,
822
+ origin: 'https://app-prod.addigy.com',
823
+ },
824
+ method: 'POST',
825
+ json: { payloads: [payload] },
826
+ });
827
+ return JSON.parse(res.body);
828
+ }
746
829
  async createFilevaultPolicy(authObject, name, filevault, payloadPriority = 1) {
747
830
  const groupUUID = uuid_1.v4();
748
831
  const encryptCertPayloadUUID = uuid_1.v4();
package/package.json CHANGED
@@ -59,7 +59,7 @@
59
59
  "tsc": "tsc -p tsconfig.build.json"
60
60
  },
61
61
  "types": "index.d.ts",
62
- "version": "2.6.1",
62
+ "version": "2.7.0",
63
63
  "volta": {
64
64
  "node": "14.17.1",
65
65
  "yarn": "1.22.10"
package/types.d.ts CHANGED
@@ -10,8 +10,8 @@ export interface IAddigyInternalAuthObject {
10
10
  emailAddress: string;
11
11
  }
12
12
  export interface Payload {
13
- addigy_payload_type: 'com.addigy.syspolicy.system-extension-policy.com.apple.system-extension-policy' | 'com.addigy.TCC.configuration-profile-policy.com.apple.TCC.configuration-profile-policy' | 'com.addigy.syspolicy.kernel-extension-policy.com.apple.syspolicy.kernel-extension-policy' | 'com.addigy.notifications.com.apple.notificationsettings' | 'com.addigy.custom.mdm.payload' | 'com.addigy.securityAndPrivacy.com.apple.MCX.FileVault2' | 'com.addigy.securityAndPrivacy.com.apple.MCX' | 'com.addigy.securityAndPrivacy.com.apple.security.pkcs1' | 'com.addigy.securityAndPrivacy.com.apple.security.FDERecoveryKeyEscrow' | 'com.addigy.securityAndPrivacy.com.apple.security.FDERecoveryRedirect';
14
- payload_type: 'com.apple.system-extension-policy' | 'com.apple.syspolicy.kernel-extension-policy' | 'com.apple.TCC.configuration-profile-policy' | 'com.apple.notificationsettings' | 'custom' | 'com.apple.MCX.FileVault2' | 'com.apple.MCX' | 'com.apple.security.pkcs1' | 'com.apple.security.FDERecoveryKeyEscrow' | 'com.apple.security.FDERecoveryRedirect';
13
+ addigy_payload_type: 'com.addigy.syspolicy.system-extension-policy.com.apple.system-extension-policy' | 'com.addigy.TCC.configuration-profile-policy.com.apple.TCC.configuration-profile-policy' | 'com.addigy.syspolicy.kernel-extension-policy.com.apple.syspolicy.kernel-extension-policy' | 'com.addigy.notifications.com.apple.notificationsettings' | 'com.addigy.custom.mdm.payload' | 'com.addigy.securityAndPrivacy.com.apple.MCX.FileVault2' | 'com.addigy.securityAndPrivacy.com.apple.MCX' | 'com.addigy.securityAndPrivacy.com.apple.security.pkcs1' | 'com.addigy.securityAndPrivacy.com.apple.security.FDERecoveryKeyEscrow' | 'com.addigy.securityAndPrivacy.com.apple.security.FDERecoveryRedirect' | 'com.addigy.servicemanagement.com.apple.servicemanagement' | 'com.addigy.webcontent-filter.com.apple.webcontent-filter';
14
+ payload_type: 'com.apple.system-extension-policy' | 'com.apple.syspolicy.kernel-extension-policy' | 'com.apple.TCC.configuration-profile-policy' | 'com.apple.notificationsettings' | 'custom' | 'com.apple.MCX.FileVault2' | 'com.apple.MCX' | 'com.apple.security.pkcs1' | 'com.apple.security.FDERecoveryKeyEscrow' | 'com.apple.security.FDERecoveryRedirect' | 'com.apple.servicemanagement' | 'com.apple.webcontent-filter';
15
15
  payload_version: number;
16
16
  payload_identifier: string;
17
17
  payload_uuid: string;
@@ -218,3 +218,75 @@ export interface PoliciesMdmPayload {
218
218
  configuration_id: string;
219
219
  policy_id: string;
220
220
  }
221
+ export interface ServiceManagementPayload extends Payload {
222
+ addigy_payload_version: number;
223
+ has_manifest: boolean;
224
+ payload_enabled: boolean;
225
+ payload_priority: number;
226
+ policy_restricted: boolean;
227
+ requires_device_supervision: boolean;
228
+ requires_mdm_profile_approved: boolean;
229
+ rules: ServiceManagementPayloadRule[];
230
+ supported_os_versions: SupportedOsVersions | null;
231
+ }
232
+ export interface ServiceManagementPayloadRule {
233
+ comment: string;
234
+ rule_type: string;
235
+ rule_value: string;
236
+ }
237
+ export interface WebContentFilterPayload extends Payload {
238
+ addigy_payload_version: number;
239
+ auto_filter_enabled: null | boolean;
240
+ blacklisted_urls: null | string[];
241
+ content_filter_uuid: null | string;
242
+ filter_browsers: null | boolean;
243
+ filter_data_provider_bundle_identifier: string | null;
244
+ filter_data_provider_designated_requirement: string | null;
245
+ filter_grade: 'firewall' | 'inspector';
246
+ filter_packet_provider_bundle_identifier: null | string;
247
+ filter_packet_provider_designated_requirement: null | string;
248
+ filter_packets: null | boolean;
249
+ filter_sockets: boolean;
250
+ filter_type: string;
251
+ has_manifest: boolean;
252
+ organization: null | string;
253
+ password: null | string;
254
+ payload_enabled: boolean;
255
+ payload_priority: number;
256
+ permitted_urls: null | string[];
257
+ plugin_bundle_id: string | null;
258
+ policy_restricted: boolean;
259
+ requires_device_supervision: boolean;
260
+ requires_mdm_profile_approved: boolean;
261
+ server_address: null | string;
262
+ supported_os_versions: null | SupportedOsVersions;
263
+ user_defined_name: string;
264
+ user_name: null | string;
265
+ vendor_config: Record<string, string> | null;
266
+ white_listed_bookmarks: null | string[];
267
+ }
268
+ export interface CreateWebContentFilterPayload {
269
+ user_defined_name: string;
270
+ plugin_bundle_id: string;
271
+ filter_grade: 'firewall' | 'inspector';
272
+ vendor_config?: Record<string, string>;
273
+ content_filter_uuid?: string;
274
+ server_address?: string;
275
+ organization?: string;
276
+ user_name?: string;
277
+ password?: string;
278
+ filter_browsers?: boolean;
279
+ filter_sockets?: boolean;
280
+ filter_data_provider_bundle_identifier?: string;
281
+ filter_data_provider_designated_requirement?: string;
282
+ filter_packets?: boolean;
283
+ filter_packet_provider_bundle_identifier?: string;
284
+ filter_packet_provider_designated_requirement?: string;
285
+ auto_filter_enabled?: null;
286
+ permitted_urls?: string[];
287
+ blacklisted_urls?: string[];
288
+ white_listed_bookmarks?: string[];
289
+ policy_restricted?: boolean;
290
+ requires_device_supervision?: boolean;
291
+ requires_mdm_profile_approved?: boolean;
292
+ }