@salesforce/plugin-orchestrator 1.0.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.
Files changed (110) hide show
  1. package/LICENSE +28 -0
  2. package/LICENSE.txt +12 -0
  3. package/README.md +145 -0
  4. package/lib/commands/orchestrator/create/app.d.ts +19 -0
  5. package/lib/commands/orchestrator/create/app.js +144 -0
  6. package/lib/commands/orchestrator/create/app.js.map +1 -0
  7. package/lib/commands/orchestrator/create/template.d.ts +17 -0
  8. package/lib/commands/orchestrator/create/template.js +96 -0
  9. package/lib/commands/orchestrator/create/template.js.map +1 -0
  10. package/lib/commands/orchestrator/decouple/app.d.ts +14 -0
  11. package/lib/commands/orchestrator/decouple/app.js +106 -0
  12. package/lib/commands/orchestrator/decouple/app.js.map +1 -0
  13. package/lib/commands/orchestrator/delete/app.d.ts +15 -0
  14. package/lib/commands/orchestrator/delete/app.js +102 -0
  15. package/lib/commands/orchestrator/delete/app.js.map +1 -0
  16. package/lib/commands/orchestrator/delete/template.d.ts +15 -0
  17. package/lib/commands/orchestrator/delete/template.js +108 -0
  18. package/lib/commands/orchestrator/delete/template.js.map +1 -0
  19. package/lib/commands/orchestrator/display/app.d.ts +15 -0
  20. package/lib/commands/orchestrator/display/app.js +85 -0
  21. package/lib/commands/orchestrator/display/app.js.map +1 -0
  22. package/lib/commands/orchestrator/display/template.d.ts +15 -0
  23. package/lib/commands/orchestrator/display/template.js +105 -0
  24. package/lib/commands/orchestrator/display/template.js.map +1 -0
  25. package/lib/commands/orchestrator/list/app.d.ts +13 -0
  26. package/lib/commands/orchestrator/list/app.js +62 -0
  27. package/lib/commands/orchestrator/list/app.js.map +1 -0
  28. package/lib/commands/orchestrator/list/template.d.ts +14 -0
  29. package/lib/commands/orchestrator/list/template.js +64 -0
  30. package/lib/commands/orchestrator/list/template.js.map +1 -0
  31. package/lib/commands/orchestrator/template/create.d.ts +17 -0
  32. package/lib/commands/orchestrator/template/create.js +96 -0
  33. package/lib/commands/orchestrator/template/create.js.map +1 -0
  34. package/lib/commands/orchestrator/template/delete.d.ts +15 -0
  35. package/lib/commands/orchestrator/template/delete.js +108 -0
  36. package/lib/commands/orchestrator/template/delete.js.map +1 -0
  37. package/lib/commands/orchestrator/template/display.d.ts +15 -0
  38. package/lib/commands/orchestrator/template/display.js +105 -0
  39. package/lib/commands/orchestrator/template/display.js.map +1 -0
  40. package/lib/commands/orchestrator/template/list.d.ts +13 -0
  41. package/lib/commands/orchestrator/template/list.js +62 -0
  42. package/lib/commands/orchestrator/template/list.js.map +1 -0
  43. package/lib/commands/orchestrator/template/update.d.ts +17 -0
  44. package/lib/commands/orchestrator/template/update.js +107 -0
  45. package/lib/commands/orchestrator/template/update.js.map +1 -0
  46. package/lib/commands/orchestrator/update/app.d.ts +20 -0
  47. package/lib/commands/orchestrator/update/app.js +145 -0
  48. package/lib/commands/orchestrator/update/app.js.map +1 -0
  49. package/lib/commands/orchestrator/update/template.d.ts +17 -0
  50. package/lib/commands/orchestrator/update/template.js +107 -0
  51. package/lib/commands/orchestrator/update/template.js.map +1 -0
  52. package/lib/index.d.ts +2 -0
  53. package/lib/index.js +8 -0
  54. package/lib/index.js.map +1 -0
  55. package/lib/utils/app/appDisplayUtil.d.ts +26 -0
  56. package/lib/utils/app/appDisplayUtil.js +153 -0
  57. package/lib/utils/app/appDisplayUtil.js.map +1 -0
  58. package/lib/utils/app/appListUtils.d.ts +34 -0
  59. package/lib/utils/app/appListUtils.js +81 -0
  60. package/lib/utils/app/appListUtils.js.map +1 -0
  61. package/lib/utils/app/appTypes.d.ts +44 -0
  62. package/lib/utils/app/appTypes.js +8 -0
  63. package/lib/utils/app/appTypes.js.map +1 -0
  64. package/lib/utils/app/appframeworkapp.d.ts +64 -0
  65. package/lib/utils/app/appframeworkapp.js +175 -0
  66. package/lib/utils/app/appframeworkapp.js.map +1 -0
  67. package/lib/utils/display/displayUtil.d.ts +27 -0
  68. package/lib/utils/display/displayUtil.js +80 -0
  69. package/lib/utils/display/displayUtil.js.map +1 -0
  70. package/lib/utils/request.d.ts +15 -0
  71. package/lib/utils/request.js +18 -0
  72. package/lib/utils/request.js.map +1 -0
  73. package/lib/utils/template/appframeworktemplate.d.ts +67 -0
  74. package/lib/utils/template/appframeworktemplate.js +114 -0
  75. package/lib/utils/template/appframeworktemplate.js.map +1 -0
  76. package/lib/utils/template/templateDisplayUtil.d.ts +42 -0
  77. package/lib/utils/template/templateDisplayUtil.js +142 -0
  78. package/lib/utils/template/templateDisplayUtil.js.map +1 -0
  79. package/lib/utils/template/templateHighlighter.d.ts +23 -0
  80. package/lib/utils/template/templateHighlighter.js +68 -0
  81. package/lib/utils/template/templateHighlighter.js.map +1 -0
  82. package/lib/utils/template/templateListUtils.d.ts +40 -0
  83. package/lib/utils/template/templateListUtils.js +126 -0
  84. package/lib/utils/template/templateListUtils.js.map +1 -0
  85. package/lib/utils/template/templateTypes.d.ts +114 -0
  86. package/lib/utils/template/templateTypes.js +15 -0
  87. package/lib/utils/template/templateTypes.js.map +1 -0
  88. package/lib/utils/utils.d.ts +21 -0
  89. package/lib/utils/utils.js +49 -0
  90. package/lib/utils/utils.js.map +1 -0
  91. package/messages/appframework.create.app.md +124 -0
  92. package/messages/appframework.create.template.md +82 -0
  93. package/messages/appframework.decouple.app.md +82 -0
  94. package/messages/appframework.delete.app.md +94 -0
  95. package/messages/appframework.delete.template.md +162 -0
  96. package/messages/appframework.display.app.md +70 -0
  97. package/messages/appframework.display.template.md +101 -0
  98. package/messages/appframework.list.app.md +126 -0
  99. package/messages/appframework.list.template.md +78 -0
  100. package/messages/appframework.template.create.md +82 -0
  101. package/messages/appframework.template.delete.md +162 -0
  102. package/messages/appframework.template.display.md +101 -0
  103. package/messages/appframework.template.list.md +78 -0
  104. package/messages/appframework.template.update.md +78 -0
  105. package/messages/appframework.update.app.md +142 -0
  106. package/messages/appframework.update.template.md +78 -0
  107. package/npm-shrinkwrap.json +14309 -0
  108. package/oclif.lock +7751 -0
  109. package/oclif.manifest.json +1731 -0
  110. package/package.json +226 -0
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Template type enum
3
+ */
4
+ export declare enum TemplateType {
5
+ DASHBOARD = "dashboard",
6
+ LIBRARY = "library"
7
+ }
8
+ export type FolderSource = {
9
+ id?: string;
10
+ name?: string;
11
+ };
12
+ export type ReleaseInfo = {
13
+ templateVersion?: string;
14
+ notesFile?: string | null;
15
+ };
16
+ export type ChainDefinition = {
17
+ type?: string;
18
+ file?: string;
19
+ name?: string | null;
20
+ dominoChainId?: string | null;
21
+ };
22
+ export type Rule = {
23
+ type?: string;
24
+ file?: string;
25
+ };
26
+ export type Icon = {
27
+ appBadge?: string | null;
28
+ templatePreviews?: Array<{
29
+ namespace?: string | null;
30
+ name?: string | null;
31
+ id?: string | null;
32
+ url?: string | null;
33
+ label?: string | null;
34
+ description?: string | null;
35
+ }> | null;
36
+ templateBadge?: {
37
+ name?: string;
38
+ url?: string;
39
+ } | null;
40
+ };
41
+ export type Tags = {
42
+ [key: string]: unknown;
43
+ highlights?: string[];
44
+ targetAudience?: string[];
45
+ industries?: string[];
46
+ requirements?: string[];
47
+ includes?: string[];
48
+ categories?: string[];
49
+ };
50
+ /**
51
+ * Interface for raw template data returned from the API
52
+ */
53
+ export type RawTemplate = {
54
+ id: string;
55
+ name?: string;
56
+ label?: string;
57
+ description?: string;
58
+ templateType?: string;
59
+ templateSubtype?: string | null;
60
+ templateId?: string;
61
+ folderId?: string;
62
+ namespace?: string | null;
63
+ releaseInfo?: ReleaseInfo;
64
+ assetVersion?: number;
65
+ maxAppCount?: number | null;
66
+ variableDefinition?: null;
67
+ layoutDefinition?: null;
68
+ rules?: Rule[];
69
+ createdDate?: string;
70
+ lastModifiedDate?: string;
71
+ tags?: Tags;
72
+ icons?: Icon | null;
73
+ chainDefinitions?: ChainDefinition[];
74
+ applicationSourceId?: string | null;
75
+ folderSource?: FolderSource;
76
+ url?: string;
77
+ configurationUrl?: string;
78
+ readinessUrl?: string;
79
+ };
80
+ /**
81
+ * Interface for processed template data used in the UI
82
+ * Alias RawTemplateData to RawTemplate for backward compatibility
83
+ */
84
+ export type RawTemplateData = RawTemplate;
85
+ /**
86
+ * Interface for processed template data used in the UI
87
+ */
88
+ export type TemplateData = {
89
+ id?: string;
90
+ name?: string;
91
+ label?: string;
92
+ description?: string;
93
+ templateType?: string;
94
+ templateSubtype?: string | null;
95
+ templateId?: string;
96
+ folderId?: string;
97
+ namespace?: string | null;
98
+ templateVersion?: string;
99
+ assetVersion?: number;
100
+ maxAppCount?: number | null;
101
+ variableDefinition?: null;
102
+ layoutDefinition?: null;
103
+ rules?: Rule[];
104
+ created?: string;
105
+ modified?: string;
106
+ industries?: string;
107
+ audience?: string;
108
+ icons?: Icon | null;
109
+ chainDefinitions?: ChainDefinition[];
110
+ applicationSourceId?: string | null;
111
+ url?: string;
112
+ configurationUrl?: string;
113
+ readinessUrl?: string;
114
+ };
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Copyright (c) 2025, salesforce.com, inc.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ /**
8
+ * Template type enum
9
+ */
10
+ export var TemplateType;
11
+ (function (TemplateType) {
12
+ TemplateType["DASHBOARD"] = "dashboard";
13
+ TemplateType["LIBRARY"] = "library";
14
+ })(TemplateType || (TemplateType = {}));
15
+ //# sourceMappingURL=templateTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateTypes.js","sourceRoot":"","sources":["../../../src/utils/template/templateTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generates columns for a table
3
+ *
4
+ * @param keys - Array of keys for column headers
5
+ * @returns Object of column configurations
6
+ */
7
+ export declare function generateTableColumns(keys: string[]): Record<string, {
8
+ header: string;
9
+ }>;
10
+ /**
11
+ * Format data as a pretty ASCII table
12
+ *
13
+ * @param data - Array of data objects
14
+ * @param columns - Object containing column definitions
15
+ * @returns Formatted table string
16
+ */
17
+ export declare function formatAsTable<T extends Record<string, unknown>>(data: T[], columns: Array<{
18
+ key: keyof T;
19
+ label: string;
20
+ width?: number;
21
+ }>): string[];
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright (c) 2025, salesforce.com, inc.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ /**
8
+ * Generates columns for a table
9
+ *
10
+ * @param keys - Array of keys for column headers
11
+ * @returns Object of column configurations
12
+ */
13
+ export function generateTableColumns(keys) {
14
+ return keys.reduce((result, key) => {
15
+ const newResult = { ...result };
16
+ newResult[key] = { header: key.charAt(0).toUpperCase() + key.slice(1) };
17
+ return newResult;
18
+ }, {});
19
+ }
20
+ /**
21
+ * Format data as a pretty ASCII table
22
+ *
23
+ * @param data - Array of data objects
24
+ * @param columns - Object containing column definitions
25
+ * @returns Formatted table string
26
+ */
27
+ export function formatAsTable(data, columns) {
28
+ if (data.length === 0) {
29
+ return ['No data to display'];
30
+ }
31
+ const columnWidths = columns.map((col) => {
32
+ const headerLength = col.label.length;
33
+ const maxDataLength = Math.max(...data.map((item) => {
34
+ const value = item[col.key] ?? '';
35
+ return String(value).length;
36
+ }));
37
+ return col.width ?? Math.max(headerLength, maxDataLength, 10);
38
+ });
39
+ const headerRow = columns.map((col, i) => col.label.padEnd(columnWidths[i])).join(' | ');
40
+ const separatorRow = columns.map((_, i) => '-'.repeat(columnWidths[i])).join('-+-');
41
+ const dataRows = data.map((item) => columns
42
+ .map((col, i) => {
43
+ const value = item[col.key] ?? '';
44
+ return String(value).padEnd(columnWidths[i]);
45
+ })
46
+ .join(' | '));
47
+ return [headerRow, separatorRow, ...dataRows];
48
+ }
49
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAc;IACjD,OAAO,IAAI,CAAC,MAAM,CAAqC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAS,EACT,OAA+D;IAE/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC,CACH,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEpF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,OAAO;SACJ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;IAEF,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,124 @@
1
+ # summary
2
+
3
+ Create a new AppFramework app from a template.
4
+
5
+ # description
6
+
7
+ Creates a new app from an existing template. The app will be initialized with the configuration defined in the template.
8
+
9
+ # flags.target-org.summary
10
+
11
+ Username or alias of the target org.
12
+
13
+ # flags.target-org.description
14
+
15
+ Username or alias of the target org. Not required if the `target-org` configuration variable is already set.
16
+
17
+ # flags.api-version.summary
18
+
19
+ Override the api version used for api requests made by this command.
20
+
21
+ # flags.api-version.description
22
+
23
+ Override the api version used for api requests made by this command.
24
+
25
+ # flags.name.summary
26
+
27
+ Name for the new app (required)
28
+
29
+ # flags.name.description
30
+
31
+ A unique identifier for the app. Must be unique within your org.
32
+
33
+ # flags.label.summary
34
+
35
+ Label for the new app
36
+
37
+ # flags.label.description
38
+
39
+ A human-readable label for the app. If not provided, the name will be used.
40
+
41
+ # flags.description.summary
42
+
43
+ Description of the new app
44
+
45
+ # flags.description.description
46
+
47
+ A description of what the app does.
48
+
49
+ # flags.template-id.summary
50
+
51
+ ID of the template to use for creating the app
52
+
53
+ # flags.template-id.description
54
+
55
+ ID of an existing template to use for creating the app. Either template-id or template-name must be provided.
56
+
57
+ # flags.template-name.summary
58
+
59
+ Name of the template to use for creating the app
60
+
61
+ # flags.template-name.description
62
+
63
+ Name of an existing template to use for creating the app. Either template-id or template-name must be provided.
64
+
65
+ # flags.runtime-method.summary
66
+
67
+ Runtime method for the app (sync or async)
68
+
69
+ # flags.runtime-method.description
70
+
71
+ Specifies how the app's runtime operates, either synchronously or asynchronously.
72
+
73
+ # flags.log-level.summary
74
+
75
+ Log level for the app
76
+
77
+ # flags.log-level.description
78
+
79
+ Sets the logging level for the app. Valid options are: debug, info, warn, error.
80
+
81
+ # fetchingTemplate
82
+
83
+ Fetching template information...
84
+
85
+ # creatingApp
86
+
87
+ Creating app from template...
88
+
89
+ # createSuccess
90
+
91
+ Successfully created app with ID: %s
92
+
93
+ # noTemplateSpecified
94
+
95
+ Either template-id or template-name must be specified.
96
+
97
+ # error.TemplateNotFound
98
+
99
+ Template not found. Please check the template ID or name and try again.
100
+
101
+ # error.TemplateNotFound.Actions
102
+
103
+ - Verify that the template exists in your organization
104
+ - Check that you have spelled the template name correctly
105
+ - Try using the template ID instead of the name
106
+
107
+ # error.AppCreationError
108
+
109
+ An error occurred while creating the app: %s
110
+
111
+ # error.AppCreationError.Actions
112
+
113
+ - Check the error message above for more details
114
+ - Ensure that AppFramework is enabled in your org
115
+ - Ensure that your user has the necessary permissions
116
+
117
+ # examples
118
+
119
+ - Create a new app using a template ID:
120
+ <%= config.bin %> <%= command.id %> --target-org myOrg --name "my_app" --template-id 01t000000000123
121
+ - Create a new app using a template name:
122
+ <%= config.bin %> <%= command.id %> --target-org myOrg --name "sales_app" --template-name "Sales_Template"
123
+ - Create a new app with additional details:
124
+ <%= config.bin %> <%= command.id %> --target-org myOrg --name "analytics_app" --template-name "Analytics_Template" --label "My Analytics App" --description "Custom analytics application" --runtime-method async --log-level debug
@@ -0,0 +1,82 @@
1
+ # summary
2
+
3
+ Create a new AppFramework template.
4
+
5
+ # description
6
+
7
+ Creates a new empty template that can be customized. Templates allow you to define reusable configurations for AppFramework applications.
8
+
9
+ # flags.target-org.summary
10
+
11
+ Login username or alias for the target org
12
+
13
+ # flags.target-org.description
14
+
15
+ The target org to connect to for creating the template.
16
+
17
+ # flags.api-version.summary
18
+
19
+ Override the api version used for api requests
20
+
21
+ # flags.api-version.description
22
+
23
+ Override the api version used for api requests to the app framework.
24
+
25
+ # flags.name.summary
26
+
27
+ Name for the new template (required)
28
+
29
+ # flags.name.description
30
+
31
+ A unique identifier for the template. Must be unique within your org.
32
+
33
+ # flags.type.summary
34
+
35
+ Type of template to create
36
+
37
+ # flags.type.description
38
+
39
+ Specifies the type of template to create. Valid options are: app, component, dashboard, or lens. Defaults to 'app' if not specified.
40
+
41
+ # flags.subtype.summary
42
+
43
+ Subtype for the template
44
+
45
+ # flags.subtype.description
46
+
47
+ An optional subtype categorization for the template (e.g., 'tableau' for app templates).
48
+
49
+ # flags.label.summary
50
+
51
+ Label for the new template
52
+
53
+ # flags.label.description
54
+
55
+ A human-readable label for the template. This is displayed in the Analytics Studio UI.
56
+
57
+ # flags.description.summary
58
+
59
+ Description of the new template
60
+
61
+ # flags.description.description
62
+
63
+ A description of what the template does. This is displayed in the Analytics Studio UI.
64
+
65
+ # fetchingApp
66
+
67
+ Fetching app information...
68
+
69
+ # creatingTemplate
70
+
71
+ Creating template from app...
72
+
73
+ # createSuccess
74
+
75
+ Successfully created template with ID: %s
76
+
77
+ # examples
78
+
79
+ - <%= config.bin %> <%= command.id %> --target-org myOrg --name "my_template"
80
+ - <%= config.bin %> <%= command.id %> --target-org myOrg --name "sales_template" --type app --label "My Custom Template"
81
+ - <%= config.bin %> <%= command.id %> --target-org myOrg --name "dashboard_template" --type dashboard --subtype "analytics"
82
+ - <%= config.bin %> <%= command.id %> --target-org myOrg --name "analytics_template" --type app --subtype "tableau" --label "Sales Template" --description "Template for sales analytics apps"
@@ -0,0 +1,82 @@
1
+ # summary
2
+
3
+ Decouple an AppFramework app from its template.
4
+
5
+ # description
6
+
7
+ Decouples an AppFramework app from its template. This allows the app to be modified independently without being affected by template updates. You must specify either the app-id or app-name flag to identify the app to decouple.
8
+
9
+ # flags.target-org.summary
10
+
11
+ Login username or alias for the target org.
12
+
13
+ # flags.target-org.description
14
+
15
+ Overrides your default org.
16
+
17
+ # flags.api-version.summary
18
+
19
+ Override the api version used for api requests made by this command.
20
+
21
+ # flags.api-version.description
22
+
23
+ Override the api version used for api requests made by this command.
24
+
25
+ # flags.app-id.summary
26
+
27
+ ID of the app to decouple.
28
+
29
+ # flags.app-id.description
30
+
31
+ Specify the ID of the app to decouple. Either this or app-name is required.
32
+
33
+ # flags.app-name.summary
34
+
35
+ Name of the app to decouple.
36
+
37
+ # flags.app-name.description
38
+
39
+ Specify the name of the app to decouple. Either this or app-id is required.
40
+
41
+ # noAppSpecified
42
+
43
+ No app specified for decoupling. You must specify either an app ID with --app-id or an app name with --app-name.
44
+
45
+ # fetchingApp
46
+
47
+ Fetching app details...
48
+
49
+ # decouplingApp
50
+
51
+ Decoupling app from template...
52
+
53
+ # noAppFound
54
+
55
+ No app found with the specified ID or name.
56
+
57
+ # noTemplateFound
58
+
59
+ The specified app does not have an associated template to decouple from.
60
+
61
+ # decoupleSuccess
62
+
63
+ Successfully decoupled app: %s
64
+
65
+ # error.DecoupleError
66
+
67
+ Failed to decouple app: %s
68
+
69
+ # error.DecoupleError.Actions
70
+
71
+ - Check that the app ID or name is correct
72
+ - Verify the app is associated with a template
73
+ - Ensure you have permissions to decouple apps in this org
74
+ - Try running with --debug for more details
75
+
76
+ # examples
77
+
78
+ - Decouple an app by ID:
79
+ <%= config.bin %> <%= command.id %> --app-id 00Dxx0000000001
80
+
81
+ - Decouple an app by name:
82
+ <%= config.bin %> <%= command.id %> --app-name "My App"
@@ -0,0 +1,94 @@
1
+ # summary
2
+
3
+ Delete an AppFramework app.
4
+
5
+ # description
6
+
7
+ Deletes an app from AppFramework. Either the app ID or app name must be provided to identify the app.
8
+
9
+ # flags.target-org.summary
10
+
11
+ Login username or alias for the target org.
12
+
13
+ # flags.target-org.description
14
+
15
+ Overrides your default org.
16
+
17
+ # flags.api-version.summary
18
+
19
+ Override the api version used for api requests made by this command.
20
+
21
+ # flags.api-version.description
22
+
23
+ Override the api version used for api requests made by this command.
24
+
25
+ # flags.app-id.summary
26
+
27
+ ID of the app to delete.
28
+
29
+ # flags.app-id.description
30
+
31
+ Specify the ID of the app to delete. Either this or --app-name is required.
32
+
33
+ # flags.app-name.summary
34
+
35
+ Name of the app to delete.
36
+
37
+ # flags.app-name.description
38
+
39
+ Specify the name of the app to delete. Either this or --app-id is required.
40
+
41
+ # flags.no-prompt.summary
42
+
43
+ Skip confirmation prompt before deleting.
44
+
45
+ # flags.no-prompt.description
46
+
47
+ Disables the confirmation prompt that normally appears before deleting an app. Use with caution.
48
+
49
+ # noAppSpecified
50
+
51
+ No app specified for deletion. You must specify either an app ID with --app-id or an app name with --app-name.
52
+
53
+ # fetchingApp
54
+
55
+ Fetching app details...
56
+
57
+ # deletingApp
58
+
59
+ Deleting app...
60
+
61
+ # noAppFound
62
+
63
+ No app found with the specified ID or name.
64
+
65
+ # confirmDelete
66
+
67
+ Are you sure you want to delete the app '%s'? This action cannot be undone.
68
+
69
+ # deleteCancelled
70
+
71
+ App deletion cancelled.
72
+
73
+ # deleteSuccess
74
+
75
+ Successfully deleted app with ID: %s
76
+
77
+ # error.DeleteError
78
+
79
+ Failed to delete app: %s
80
+
81
+ # error.DeleteError.Actions
82
+
83
+ - Check that the app ID or name is correct
84
+ - Verify you have permissions to delete apps in this org
85
+ - Ensure your authentication to the org is valid
86
+ - Try running with --debug for more details
87
+
88
+ # examples
89
+
90
+ - Delete an app using its ID:
91
+ <%= config.bin %> <%= command.id %> --app-id 01t5e000006lOjDAA2
92
+
93
+ - Delete an app using its name:
94
+ <%= config.bin %> <%= command.id %> --app-name MyAppName