eco-helpers 2.7.13 → 2.7.15
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.
- checksums.yaml +4 -4
- data/.markdownlint.jsonc +4 -0
- data/CHANGELOG.md +1454 -1158
- data/lib/eco/api/common/people/entry_factory.rb +1 -1
- data/lib/eco/api/session/batch.rb +88 -69
- data/lib/eco/api/usecases/graphql/samples/location/command/track_changed_ids.rb +3 -1
- data/lib/eco/api/usecases/ooze_samples/register_update_case.rb +2 -2
- data/lib/eco/version.rb +1 -1
- metadata +2 -1
data/CHANGELOG.md
CHANGED
@@ -1,1968 +1,2264 @@
|
|
1
1
|
# Change Log
|
2
|
+
|
2
3
|
All notable changes to this project will be documented in this file.
|
3
4
|
|
4
|
-
## [2.7.
|
5
|
+
## [2.7.15] - 2024-06-18
|
5
6
|
|
6
7
|
### Added
|
7
|
-
- Case `-split-csv`
|
8
|
-
- Case `-remap-tags` on people case
|
9
8
|
|
10
9
|
### Changed
|
11
|
-
- `close_handling_tags_remap_csv` will display table on dry-run too
|
12
|
-
- See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
|
13
10
|
|
14
11
|
### Fixed
|
15
12
|
|
13
|
+
- `Eco::API::Common::People::EntryFactor` super must be called before
|
14
|
+
|
15
|
+
## [2.7.14] - 2024-06-13
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
|
19
|
+
- `update_tags_remap_table` to build table on **dry-run** too
|
20
|
+
- See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
|
21
|
+
|
22
|
+
## [2.7.13] - 2024-06-13
|
23
|
+
|
24
|
+
### Added
|
25
|
+
|
26
|
+
- Case `-split-csv`
|
27
|
+
- Case `-remap-tags` on people case
|
28
|
+
|
29
|
+
### Changed
|
30
|
+
|
31
|
+
- `close_handling_tags_remap_csv` will display table on dry-run too
|
32
|
+
- See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
|
33
|
+
|
16
34
|
## [2.7.12] - 2024-05-30
|
17
35
|
|
18
36
|
### Changed
|
19
|
-
|
37
|
+
|
38
|
+
- Decouple `Eco::API::UseCases::Default::People` namespace
|
20
39
|
|
21
40
|
## [2.7.11] - 2024-05-27
|
22
41
|
|
23
|
-
### Changed
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
42
|
+
### Changed
|
43
|
+
|
44
|
+
- `Eco::API::Common::Session::SFTP#download`
|
45
|
+
- It now returns the local filename(s) of the downloaded files.
|
46
|
+
- `Eco::API::UseCases::GraphQL::Utils#sftp_download_files`
|
47
|
+
- It now returns the local filename(s) of the downloaded files.
|
28
48
|
|
29
49
|
## [2.7.10] - 2024-05-20
|
30
50
|
|
31
51
|
### Changed
|
32
|
-
|
33
|
-
|
52
|
+
|
53
|
+
- Temporarily silent warnings on tracking id changes (apparently the tracking locations tree is not up to date with latest version and gives false warnings)
|
54
|
+
- Upgrade SFTP access
|
34
55
|
|
35
56
|
### Fixed
|
36
|
-
|
57
|
+
|
58
|
+
- Remove enviro from tagtree download
|
37
59
|
|
38
60
|
## [2.7.9] - 2024-05-16
|
39
61
|
|
40
62
|
### Fixed
|
41
|
-
|
42
|
-
|
63
|
+
|
64
|
+
- `Eco::Data::Locations::NodeDiff::NodesDiff#unarchive`
|
65
|
+
- It must include archived nodes that will receive new children
|
43
66
|
|
44
67
|
## [2.7.8] - 2024-05-16
|
45
68
|
|
46
69
|
### Added
|
47
|
-
|
48
|
-
|
70
|
+
|
71
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
|
72
|
+
- Feedback original command.
|
49
73
|
|
50
74
|
### Changed
|
51
|
-
|
52
|
-
|
75
|
+
|
76
|
+
- upgraded `ecoportal-api-graphql` gem
|
77
|
+
- able to skip email via options (`-no-email`)
|
53
78
|
|
54
79
|
## [2.7.8] - 2024-05-xx
|
55
80
|
|
56
81
|
### Added
|
57
|
-
|
58
|
-
|
82
|
+
|
83
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
|
84
|
+
- Feedback original command.
|
59
85
|
|
60
86
|
### Changed
|
61
|
-
|
62
|
-
|
87
|
+
|
88
|
+
- upgraded `ecoportal-api-graphql` gem
|
89
|
+
- able to skip email via options (`-no-email`)
|
63
90
|
|
64
91
|
### Fixed
|
65
92
|
|
66
93
|
## [2.7.7] - 2024-05-16
|
67
94
|
|
68
95
|
### Fixed
|
69
|
-
|
70
|
-
|
96
|
+
|
97
|
+
- `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
|
98
|
+
- default prompt to user to `Y` when in remote mode.
|
71
99
|
|
72
100
|
## [2.7.6] - 2024-05-16
|
73
101
|
|
74
102
|
### Changed
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
-
|
103
|
+
|
104
|
+
- upgraded `ecoportal-api-graphql` gem, and `ecoportal-api` gem
|
105
|
+
- `Eco::API::Common::People::Entries` (**optimization**)
|
106
|
+
- Remove supervisors order
|
107
|
+
- It could create cyclic supervisors.
|
108
|
+
- `Eco::API::MicroCases#set_supervisor` slight improvemnent to prevent cyclic supers (self + added one to one)
|
80
109
|
|
81
110
|
### Fixed
|
82
|
-
|
83
|
-
|
111
|
+
|
112
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Diff::AsUpdate`
|
113
|
+
- `classificationIds` should be always an `Array`
|
84
114
|
|
85
115
|
## [2.7.5] - 2024-05-07
|
86
116
|
|
87
117
|
### Fixed
|
88
|
-
|
118
|
+
|
119
|
+
- `Eco::API::UseCases::GraphQL::Utils` typo
|
89
120
|
|
90
121
|
## [2.7.4] - 2024-05-07
|
91
122
|
|
92
123
|
### Fixed
|
93
|
-
|
124
|
+
|
125
|
+
- Loading of tree diff / update service
|
94
126
|
|
95
127
|
## [2.7.3] - 2024-05-07
|
96
128
|
|
97
129
|
### Changed
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
-
|
130
|
+
|
131
|
+
- upgraded `ecoportal-api-graphql`
|
132
|
+
- Mailer
|
133
|
+
- heading of errors and warnings: added **ALL** to state clearly that all warnings and errors come thereon
|
134
|
+
- Batch Errors: removed _batch_ wording, as it refers to a single action in the batch
|
102
135
|
|
103
136
|
### Fixed
|
104
|
-
|
137
|
+
|
138
|
+
- Tree diff helpers loading (load as if concern)
|
105
139
|
|
106
140
|
## [2.7.2] - 2024-04-23
|
107
141
|
|
108
142
|
### Added
|
109
|
-
|
110
|
-
|
143
|
+
|
144
|
+
- **Parsers**
|
145
|
+
- Native **number parser**, added _warning_ when number cannot be parsed
|
111
146
|
|
112
147
|
## [2.7.1] - 2024-04-23
|
113
148
|
|
114
149
|
### Fixed
|
115
|
-
|
150
|
+
|
151
|
+
- `Eco::Language::AuxiliaLogger` prioritize `session.logger` in the object scoping process.
|
116
152
|
|
117
153
|
## [2.7.0] - 2024-04-23
|
118
154
|
|
119
155
|
### Added
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
-
|
125
|
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
|
129
|
-
|
130
|
-
- it
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
-
|
146
|
-
|
147
|
-
|
148
|
-
-
|
149
|
-
|
150
|
-
|
151
|
-
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
156
|
+
|
157
|
+
- **support** for node **classifications** on
|
158
|
+
- `Eco::Data::Locations::NodePlain`
|
159
|
+
- `Eco::API::Organization::TagTree`
|
160
|
+
- It `downcase` the classification values
|
161
|
+
- added class `Eco::API::Organization::NodeClassifications`
|
162
|
+
- `#node_classifications` method in `session`, `session.config` and in `config.tagtree`
|
163
|
+
- **validation** helpers via locations base case (`Eco::API::UseCases::GraphQL::Helpers::Location::Base::ClassificationsParser`)
|
164
|
+
- Use case (**made native**)
|
165
|
+
- `-tagtree-upload` => `Eco::API::UseCases::Default::Locations::TagtreeUpload`
|
166
|
+
- it can target specific tree via `-structure-id` cli argument
|
167
|
+
- it has some **optimizations** such as:
|
168
|
+
1. Only backing up the tree once (before)
|
169
|
+
2. Not graphql querying the tree as a response of each batch commands request
|
170
|
+
- Parameter `-file-as-source` for `-tagtree-extract` provided that the case can **convert** input tree csv files into a list of nodes (`Eco::API::UseCases::Default::Locations::TagtreeExtract`)
|
171
|
+
- **Tagtree UPDATE** case helpers. Added three service modules for quickly building **custom tagtree update cases**. See:
|
172
|
+
1. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeToList`
|
173
|
+
2. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeDiff`
|
174
|
+
3. `Eco::API::UseCases::GraphQL::Samples::Location::Command::Service::TreeUpdate`
|
175
|
+
- `snake_case` helper (at `Eco::Data::Strings::SnakeCase`)
|
176
|
+
- `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
|
177
|
+
- `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
|
178
|
+
- snake vs camel indifferent access helper (at `Eco::Data::Hashes::SnakeCamelIndifferentAccess`)
|
179
|
+
- **Optimization** helper classes to cluster node diffs:
|
180
|
+
- `Eco::Data::Locations::NodeDiff::NodesDiff::ClusteredTreeify`: key helper
|
181
|
+
- `Eco::Data::Locations::NodeDiff::NodesDiff::DiffsTree`: supporting class.
|
182
|
+
- **consistency** (snake vs camel case) on `parentd` for `Eco::Data::Locations::NodeLevel`
|
183
|
+
- `Eco::API::UseCases::GraphQL::Utils::Sftp`
|
184
|
+
- Configurable `remote_folder`
|
185
|
+
- Made **native** location diffs staged command builders
|
186
|
+
- These helpers target ONLY location nodes where the `id` are **codes**
|
187
|
+
- Please notice that composed `id` (i.e. `name - code`) is NOT supported (as there isn't a clean way to update => no batch remap location ids operation available)
|
188
|
+
- **Added** class and namespaces under `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
|
189
|
+
- `Diff`
|
190
|
+
- `Diffs`
|
191
|
+
- **SFTP Helpers** review
|
192
|
+
- `Eco::API::Common::Session::SFTP#upload` added method
|
193
|
+
- `Eco::API::UseCases::GraphQL::Utils::SFTP`
|
194
|
+
- `#sftp_download_files` added method
|
195
|
+
- `#local_folder` for downloading the files
|
196
|
+
- added parameters to the existing methods
|
197
|
+
|
198
|
+
### Changed
|
199
|
+
|
200
|
+
- **Parsers**
|
201
|
+
- Native **date parser**, added _warning_ when date cannot be parsed
|
202
|
+
- Migrated **select parser** (`Eco::API::Common::People::DefaultParsers::SelectParser`). This change entailed to introduce several changes:
|
203
|
+
- Added _warning_ when select option is unknown.
|
204
|
+
- `Eco::API::Common::People::PersonParser`:
|
205
|
+
1. methods `#parse` and `#serialize` call to the parser/serializer method by using a block to resolve `Proc` call dependencies.
|
206
|
+
2. **added** method `#select_tables` (this has been moved from the _default parsers_ class to the _person parser_ itself)
|
207
|
+
- `Eco::Language::Models::ParserSerializer`
|
208
|
+
- methods `#parse` and `#serialize` can be called with a `block` to resolve dependencies.
|
209
|
+
- `Eco::CSV::Table` the internal method `to_rows_array` was not spliting `Array` values with pipe operator `|`. Made so it does so.
|
210
|
+
- **Note** that `to_array_of_hashes` (the opposite method) does NOT convert them back to `Array` (but it wasn't converting back the array string to its Array version anyway)
|
211
|
+
- **renamed** use case `-export-tree` to `-tagtree-extract`
|
212
|
+
- `Eco::API::UseCases::Default::Locations::TagtreeExtract`
|
213
|
+
- **Improved** `Eco::Data::Locations::NodeLevel` by adding support for `classifications` and `classification_names`
|
214
|
+
- It just catches the **original header** names, and uses them
|
215
|
+
- **Note** that these headers may NOT be actual classifications, but just conventional header names. For this reason, it is **required** that there is a **parse** function that **validates** that they are **actual classifications**
|
216
|
+
- `Eco::API::Organization::TagTree`
|
217
|
+
- **changed** `as_json` serialization on **classifications** (it serializes to a `dup` of the `Array` now) - ceased to ~~`join('|')`~~
|
218
|
+
- **changed** `as_json`. It now includes `level` (`depth + 1`)
|
219
|
+
- **Optimized** life cycle of applying commands to _locations structures_
|
220
|
+
- This optimization is based on **NOT retrieving** the full locations structure on each request (_apply commands payload block_ on **graphql**). This also entails that the number of **backups** per run is drastically minimized.
|
221
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command::DSL`
|
222
|
+
- **Added** `#batch_tree_track_mode` to define what tracking mode would be used at each commands stage.
|
223
|
+
- The only stage that tracks/backes-up the tree on each request is now `:id` (or `:id_name`) -> remap location ids _integrity check_ purposes (which is actually somehow redundant; just an additional measure in place).
|
224
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
|
225
|
+
- `#sliced_batches`
|
226
|
+
- **added** parameter `track_tree_mode:`
|
227
|
+
- **before** final call to `apply_commands`, it scopes the payload `block` of the request (using the new custom method `scope_commands_block`, see below)
|
228
|
+
- Decoupled re-configurable (**overridable**) methods into `Optimizations` sub-space: `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Optimizations`
|
229
|
+
- `#default_tree_tracking_mode` the fallback tracking mode (besides `#batch_tree_track_mode` on `DLS`)
|
230
|
+
- `#scope_commands_block` based on the current tree tracking mode, it scopes what the block for the apply commands payload will be
|
231
|
+
- `#commands_payload_without_structure_block`: sample graphql payload block that does NOT retrieve the locations structure (**optimization lies here**)
|
232
|
+
- `Eco::API::UseCases::GraphQL::Samples::Location::Command::Results`
|
233
|
+
- **Decoupled** tracking of changed ids into `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
|
234
|
+
- `#update_tags_remap_table` -> remove `:move` stage tracking
|
235
|
+
- As content only has the lowest level location node, moving does **NOT** entail remapping locations any longer (there isn't full path on content at this stage; after `RS P3` release)
|
236
|
+
- `Eco::Data::Locations::NodeDiff`
|
237
|
+
- `archived?` added parameter for **validation** (default `true`)
|
238
|
+
- `attr_expose`
|
239
|
+
- It adds `_prev` as a postfix (**removed** as a prefix ~~`prev_`~~)
|
240
|
+
- It uses the question mark `?` alone (**removed** ~~`diff_`~~ prefix)
|
241
|
+
- **added** all these methods support now `snake_case`
|
242
|
+
- **BREAKING** change to move onto **RS P3 post-release**
|
243
|
+
- A change of `name?` **WON'T** trigger a change of `id` (`nodeId`) any more
|
244
|
+
- For this reason, identification on changes on the `id` will be besides changes of the `name`
|
245
|
+
- `Eco::Data::Locations::NodeDiff::NodesDiff`- **Important change** on `#diffs` (core property)
|
246
|
+
- It now discards diffs that `insert?` and `archive?` as well, provided that they do not generate updates
|
247
|
+
- **Note** that this limiation may be a drawback when we aim to import historical location nodes that should be in the org (for import purposes) but that are not active locations. The way **around it** is to just use an input where the `archived` property is `false` (later on launch those again with `archived` true, but lets do a good input data integrity check here)
|
248
|
+
- `Eco::Data::Hashes::DiffResult`
|
249
|
+
- moved `Meta` under its namespace
|
250
|
+
- created _private_ unique points to access source hashes. This will allows to extend the behaviour from child classes
|
251
|
+
- **Moved** hash accessors (**DSL**) to `Eco::Data::Hashes::DiffResult::Meta`
|
252
|
+
- also **added** method `key_present?`
|
253
|
+
- **improved** `slice_attrs` to return `nil` if `src` isn't present.
|
254
|
+
- **added** `Array` comparizon via `eq?` method.
|
255
|
+
- (Class) **Added** named arg `when_present` to `compare` class method.
|
256
|
+
- (Instance) **Removed** unused method `compared_attrs`
|
257
|
+
- **Replaced by** `all_compared_attrs`
|
258
|
+
- (Class) **Added** `compared_attrs_when_present`
|
259
|
+
- (Instance) **Added** `comparable_attr?`, which based on `all_compared_attrs` (instance method) checks if `attr` is required for presence on both source hashes (`src_1` and `src_2`)
|
260
|
+
- This is supported by the **new** method `key_present_in_both?`
|
261
|
+
- (Instance) **Modified** behaviour on `diff_attrs` provided that takes into consideration if an `attr` is **comparable** (`comparable_attr?`)
|
262
|
+
- upgrade **gems** `ecoportal-api-v2` and `ecoportal-api-graphql`
|
263
|
+
- this brings some optimizations when treeifying locations structures
|
264
|
+
- `Eco::Data::Hashes::ArrayDiff`
|
265
|
+
- **Removed** unused method `compared_attrs`
|
266
|
+
|
267
|
+
### Fixed
|
268
|
+
|
269
|
+
- upgrade `ecoportal-api-v2` **gem**
|
270
|
+
- A bunch of small things on the `Eco::Data::Locations` namespace
|
271
|
+
- `Eco::API::Session::Config#live_trees` to choose a tree when only one
|
272
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
|
273
|
+
- `tagtree_id` method should `map` values rather than `select` keys on `options`
|
274
|
+
- `Eco::Data::Locations::NodeDiff::NodesDiff`
|
275
|
+
- fix `diffs_summary` lining
|
276
|
+
- `Eco::Language::Methods::DslAble`
|
277
|
+
- explicit behaviour for `respond_to_missing?` (dsl doesn't need to allow method capturing via `method` call)
|
278
|
+
- add `__FILE__` and `__LINE__` to error backtrace on `eval`
|
279
|
+
- Parsing `archived` value in
|
178
280
|
- `Eco::API::Organization::TagTree`
|
179
|
-
|
180
|
-
- **changed** `as_json`. It now includes `level` (`depth + 1`)
|
181
|
-
- **Optimized** life cycle of applying commands to _locations structures_
|
182
|
-
- This optimization is based on **NOT retrieving** the full locations structure on each request (_apply commands payload block_ on **graphql**). This also entails that the number of **backups** per run is drastically minimized.
|
183
|
-
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command::DSL`
|
184
|
-
- **Added** `#batch_tree_track_mode` to define what tracking mode would be used at each commands stage.
|
185
|
-
- The only stage that tracks/backes-up the tree on each request is now `:id` (or `:id_name`) -> remap location ids _integrity check_ purposes (which is actually somehow redundant; just an additional measure in place).
|
186
|
-
- `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
|
187
|
-
- `#sliced_batches`
|
188
|
-
- **added** parameter `track_tree_mode:`
|
189
|
-
- **before** final call to `apply_commands`, it scopes the payload `block` of the request (using the new custom method `scope_commands_block`, see below)
|
190
|
-
- Decoupled re-configurable (**overridable**) methods into `Optimizations` sub-space: `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Optimizations`
|
191
|
-
- `#default_tree_tracking_mode` the fallback tracking mode (besides `#batch_tree_track_mode` on `DLS`)
|
192
|
-
- `#scope_commands_block` based on the current tree tracking mode, it scopes what the block for the apply commands payload will be
|
193
|
-
- `#commands_payload_without_structure_block`: sample graphql payload block that does NOT retrieve the locations structure (**optimization lies here**)
|
194
|
-
- `Eco::API::UseCases::GraphQL::Samples::Location::Command::Results`
|
195
|
-
- **Decoupled** tracking of changed ids into `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
|
196
|
-
- `#update_tags_remap_table` -> remove `:move` stage tracking
|
197
|
-
- As content only has the lowest level location node, moving does **NOT** entail remapping locations any longer (there isn't full path on content at this stage; after `RS P3` release)
|
198
|
-
- `Eco::Data::Locations::NodeDiff`
|
199
|
-
- `archived?` added parameter for **validation** (default `true`)
|
200
|
-
- `attr_expose`
|
201
|
-
- It adds `_prev` as a postfix (**removed** as a prefix ~~`prev_`~~)
|
202
|
-
- It uses the question mark `?` alone (**removed** ~~`diff_`~~ prefix)
|
203
|
-
- **added** all these methods support now `snake_case`
|
204
|
-
- **BREAKING** change to move onto **RS P3 post-release**
|
205
|
-
- A change of `name?` **WON'T** trigger a change of `id` (`nodeId`) any more
|
206
|
-
- For this reason, identification on changes on the `id` will be besides changes of the `name`
|
207
|
-
- `Eco::Data::Locations::NodeDiff::NodesDiff`- **Important change** on `#diffs` (core property)
|
208
|
-
- It now discards diffs that `insert?` and `archive?` as well, provided that they do not generate updates
|
209
|
-
- **Note** that this limiation may be a drawback when we aim to import historical location nodes that should be in the org (for import purposes) but that are not active locations. The way **around it** is to just use an input where the `archived` property is `false` (later on launch those again with `archived` true, but lets do a good input data integrity check here)
|
210
|
-
- `Eco::Data::Hashes::DiffResult`
|
211
|
-
- moved `Meta` under its namespace
|
212
|
-
- created _private_ unique points to access source hashes. This will allows to extend the behaviour from child classes
|
213
|
-
- **Moved** hash accessors (**DSL**) to `Eco::Data::Hashes::DiffResult::Meta`
|
214
|
-
- also **added** method `key_present?`
|
215
|
-
- **improved** `slice_attrs` to return `nil` if `src` isn't present.
|
216
|
-
- **added** `Array` comparizon via `eq?` method.
|
217
|
-
- (Class) **Added** named arg `when_present` to `compare` class method.
|
218
|
-
- (Instance) **Removed** unused method `compared_attrs`
|
219
|
-
- **Replaced by** `all_compared_attrs`
|
220
|
-
- (Class) **Added** `compared_attrs_when_present`
|
221
|
-
- (Instance) **Added** `comparable_attr?`, which based on `all_compared_attrs` (instance method) checks if `attr` is required for presence on both source hashes (`src_1` and `src_2`)
|
222
|
-
- This is supported by the **new** method `key_present_in_both?`
|
223
|
-
- (Instance) **Modified** behaviour on `diff_attrs` provided that takes into consideration if an `attr` is **comparable** (`comparable_attr?`)
|
224
|
-
- upgrade **gems** `ecoportal-api-v2` and `ecoportal-api-graphql`
|
225
|
-
- this brings some optimizations when treeifying locations structures
|
226
|
-
- `Eco::Data::Hashes::ArrayDiff`
|
227
|
-
- **Removed** unused method `compared_attrs`
|
228
|
-
|
229
|
-
### Fixed
|
230
|
-
- upgrade `ecoportal-api-v2` **gem**
|
231
|
-
- A bunch of small things on the `Eco::Data::Locations` namespace
|
232
|
-
- `Eco::API::Session::Config#live_trees` to choose a tree when only one
|
233
|
-
- `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
|
234
|
-
- `tagtree_id` method should `map` values rather than `select` keys on `options`
|
235
|
-
- `Eco::Data::Locations::NodeDiff::NodesDiff`
|
236
|
-
- fix `diffs_summary` lining
|
237
|
-
- `Eco::Language::Methods::DslAble`
|
238
|
-
- explicit behaviour for `respond_to_missing?` (dsl doesn't need to allow method capturing via `method` call)
|
239
|
-
- add `__FILE__` and `__LINE__` to error backtrace on `eval`
|
240
|
-
- Parsing `archived` value in
|
241
|
-
- `Eco::API::Organization::TagTree`
|
242
|
-
- `Eco::Data::Locations::NodePlain`
|
281
|
+
- `Eco::Data::Locations::NodePlain`
|
243
282
|
|
244
283
|
## [2.6.4] - 2024-03-06
|
245
284
|
|
246
285
|
### Changed
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
286
|
+
|
287
|
+
- updated core **gem** `ecoportal-api`
|
288
|
+
- The `subordinates` core people property has been removed from the back-end
|
289
|
+
- This was due to some performance issues with org hierarchy model.
|
290
|
+
- As a consequence a temporary patch has been added temporarily in the current gem.
|
251
291
|
|
252
292
|
### Fixed
|
253
|
-
|
254
|
-
|
293
|
+
|
294
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
295
|
+
- initialize `@total_search_results`
|
255
296
|
|
256
297
|
## [2.6.3] - 2024-02-29
|
257
298
|
|
258
299
|
### Changed
|
259
|
-
|
300
|
+
|
301
|
+
- upgrade `ecoportal-api-v2` **gem**
|
260
302
|
|
261
303
|
### Fixed
|
262
|
-
|
263
|
-
|
304
|
+
|
305
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
306
|
+
- `dry_run_feedback` fixed typo
|
264
307
|
|
265
308
|
## [2.6.2] - 2024-02-23
|
266
309
|
|
267
310
|
### Added
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
- `Eco::API::
|
274
|
-
|
275
|
-
-
|
276
|
-
|
311
|
+
|
312
|
+
- `Eco::API::Session::Config::TagTree`: added **benchmarks** to locations structure live retrieval
|
313
|
+
- To all **Ooze** cases that use register update
|
314
|
+
- `Eco::API::UseCases::OozeSamples::Helpers::Creatable` native helpers
|
315
|
+
- to draft entries
|
316
|
+
- `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` -> removed code double-up due to this addition to the register update case.
|
317
|
+
- `Eco::API::Common::Loaders::Base` added **methods**
|
318
|
+
- `#simulate?` and `#dry_run?`
|
319
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
320
|
+
- added **kpis** attempted updates and attempted creations
|
277
321
|
|
278
322
|
### Changed
|
279
|
-
|
280
|
-
|
323
|
+
|
324
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
325
|
+
- `#main` allows to tell it to just `yield`
|
281
326
|
|
282
327
|
### Fixed
|
283
|
-
|
284
|
-
|
285
|
-
|
328
|
+
|
329
|
+
- `Eco::Data::Locations::NodeDiff::Selectors` `any?` (typo)
|
330
|
+
- `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
|
331
|
+
- fixed **kpis** tracking
|
286
332
|
|
287
333
|
## [2.6.1] - 2024-02-11
|
288
334
|
|
289
335
|
### Added
|
290
|
-
|
291
|
-
|
292
|
-
- `
|
293
|
-
|
294
|
-
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
- `
|
303
|
-
- This shortens code lines in workflow blocks
|
304
|
-
- `Eco::API::Session::Config::Workflow#run` has been adapted to boost the evalution of the workflow blocks within the context of the `BaseIO` that is carried throughout all the run process.
|
305
|
-
- **NEW** Loaders
|
306
|
-
- `Eco::API::Custom::Config` (**DSL** alike) allows to open up configuration via class
|
307
|
-
- Redirects to `Eco::API::Common::Loaders::Config`
|
308
|
-
- Re-usable sample child classes can created with the use of `config_block`, which in combination with `when_inherited` will load the basic config to custom config classes.
|
309
|
-
- `Eco::API::Custom::Workflow` (**DSL** alike) allows to open up workflow configurations via class
|
310
|
-
- Redirects to `Eco::API::Common::Loaders::Config::Workflow`
|
311
|
-
- `Eco::API::Custom::Mailer` (first **sample**) allows to just define some constants to modify the generic behaviour of this sample class you will want to inherit to enable mailing workflow.
|
312
|
-
- Redirects to `Eco::API::Common::Loaders::Config::Workflow::Mailer`
|
313
|
-
- `Eco::Assets#cli` able to yield the `cli` to a block
|
314
|
-
- `Eco::API::UseCases::BaseIO#process_case`
|
315
|
-
- **added method** `process_case`, which allows to pass the `io` itself as a paramter.
|
316
|
-
- When this is used, the `output` swap as `input` / `people` is performed (before and after).
|
317
|
-
|
318
|
-
### Changed
|
319
|
-
- **IMPORTANT** overriden `Object#inspect` to `to_s` to prevent recursive deep introspection of object internals on `MethodError`
|
320
|
-
- `Eco::API::Common::Loaders::CaseBase`
|
321
|
-
- **removed** attr `usecase`
|
336
|
+
|
337
|
+
- For use case `Eco::API::UseCases::Default::Locations::TagtreeExtract`
|
338
|
+
- New `-indent` option
|
339
|
+
- `Eco::API::UseCases::UseCase`
|
340
|
+
- Defines on loader object attr reader methods `people`, `input` and `usecase` unless they already exist.
|
341
|
+
- Some class / method helpers
|
342
|
+
- `Eco::Language::Methods::DelegateMissing` to redirect missing methods to one object
|
343
|
+
- `Eco::Language::Methods::DslAble` to allow direct method calls on blocks
|
344
|
+
- `Eco::Language::Klass:WhenInherited` to allow to defined a block that gets called when the class is inherited
|
345
|
+
- **DSL** capabilities (for block calls) for
|
346
|
+
- `Eco::API::Session::Batch::BasePolicy`
|
347
|
+
- `Eco::API::Session::Batch::Job`
|
348
|
+
- `api_excluded` block to be called in the Job's context
|
322
349
|
- `Eco::API::UseCases::BaseIO`
|
323
|
-
-
|
324
|
-
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
- `
|
343
|
-
|
344
|
-
|
345
|
-
- `
|
346
|
-
|
347
|
-
- `
|
348
|
-
-
|
349
|
-
|
350
|
-
|
351
|
-
-
|
352
|
-
- `Eco::Data::Locations::
|
353
|
-
-
|
354
|
-
|
355
|
-
- `
|
356
|
-
|
357
|
-
|
358
|
-
|
350
|
+
- This shortens code lines in workflow blocks
|
351
|
+
- `Eco::API::Session::Config::Workflow#run` has been adapted to boost the evalution of the workflow blocks within the context of the `BaseIO` that is carried throughout all the run process.
|
352
|
+
- **NEW** Loaders
|
353
|
+
- `Eco::API::Custom::Config` (**DSL** alike) allows to open up configuration via class
|
354
|
+
- Redirects to `Eco::API::Common::Loaders::Config`
|
355
|
+
- Re-usable sample child classes can created with the use of `config_block`, which in combination with `when_inherited` will load the basic config to custom config classes.
|
356
|
+
- `Eco::API::Custom::Workflow` (**DSL** alike) allows to open up workflow configurations via class
|
357
|
+
- Redirects to `Eco::API::Common::Loaders::Config::Workflow`
|
358
|
+
- `Eco::API::Custom::Mailer` (first **sample**) allows to just define some constants to modify the generic behaviour of this sample class you will want to inherit to enable mailing workflow.
|
359
|
+
- Redirects to `Eco::API::Common::Loaders::Config::Workflow::Mailer`
|
360
|
+
- `Eco::Assets#cli` able to yield the `cli` to a block
|
361
|
+
- `Eco::API::UseCases::BaseIO#process_case`
|
362
|
+
- **added method** `process_case`, which allows to pass the `io` itself as a paramter.
|
363
|
+
- When this is used, the `output` swap as `input` / `people` is performed (before and after).
|
364
|
+
|
365
|
+
### Changed
|
366
|
+
|
367
|
+
- **IMPORTANT** overriden `Object#inspect` to `to_s` to prevent recursive deep introspection of object internals on `MethodError`
|
368
|
+
- `Eco::API::Common::Loaders::CaseBase`
|
369
|
+
- **removed** attr `usecase`
|
370
|
+
- `Eco::API::UseCases::BaseIO`
|
371
|
+
- `output` can be set on initialization
|
372
|
+
- `#new` carries the `output` as well.
|
373
|
+
- `Eco::API::Session::Config::Workflow`
|
374
|
+
- `#run`
|
375
|
+
- workflow blocks don't require to explicitly return the `BaseIO` when there isn't any to return. It will just keep the `io` as it was before the call.
|
376
|
+
- also made it so the returned io is **always** an **instance of** `Eco::API::UseCases::BaseIO` (so it won't return an instance of a child class). This change can be considered a fix. **Aside note:** only possible now that `output` is carried on through objects of type (so there's there's no data loss in the calls chain) `Eco::API::UseCases::BaseIO` (i.e. `io.new`)
|
377
|
+
- `#for`
|
378
|
+
- **now** it only requires a `block` if no `key` is provided
|
379
|
+
- `Eco::Data::Locations::NodeBase::TagValidations`
|
380
|
+
- made module re-usable, by removing dependency on `clean_id` method.
|
381
|
+
- Improved the **patch** on exception that adds method `#patch_full_message`
|
382
|
+
- Parameter `trace_count` added (`default: -1` for full trace)
|
383
|
+
|
384
|
+
### Fixed
|
385
|
+
|
386
|
+
- `Eco::Data::Locations::NodeBase::Treeify`
|
387
|
+
- **bug** on strings and interpolation when building the warning/error messages
|
388
|
+
- **added** detection and _warnings_ for **unlinked parents**: as `get_children` is called from the top via `nil` (those that are top level nodes), and all the call chain to collect children goes through their `parent_id` relationship.
|
389
|
+
- If the input nodes had some where there's no direct link between `nil` and a node `id` that is a `parent_id`, `parents[node.id]` would never be called. Meaning that in an input with a list of nodes, there could be clusters of subtrees that do not add/link to the top level (`nil`).
|
390
|
+
- It now gathers those separated subtrees in an `Array` parameter called `unlinked_trees`
|
391
|
+
- `Eco::API::Session::Config::Workflow`
|
392
|
+
- Returning an `Eco::API::UseCases::BaseIO` from callbacks `before`, `after` and `run` would raise an `ArgumentError`.
|
393
|
+
- **Now** the original `io` is returned otherwise the returned value is a `BaseIO`
|
394
|
+
- `Eco::API::Session::Config::Workflow`
|
395
|
+
- **changed** `open` to alias method for `with` (open was clashing)
|
396
|
+
- `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
|
397
|
+
- **removed** `enviro` param for org tagtree built
|
398
|
+
- `Eco::API::UseCases::Cli::DSL`
|
399
|
+
- `::callback` was not acting like a DSL method, which would just return `nil` always (lost `block`)
|
400
|
+
- CLI arguments are unique. If a Cli class has already been run, no need to re-run it. Cli class re-usability is still not in the pipeline, and therefore, it must be run only once.
|
401
|
+
- `Eco::Data::Locations::NodePlain`
|
402
|
+
- `serializer` referred to an non existing constant.
|
403
|
+
- **IMPORTANT** `parent_id` should be `cleaned` as well. Otherwise parents with an id cleanage don't match their children's `parent_id`
|
404
|
+
- `Eco::API::Common::ClassHelpers`
|
405
|
+
- `::inerited` method must call `super` to be able to chain other calls
|
406
|
+
- `Eco::API::Common::Session::Mailer`
|
407
|
+
- The logging message was not printing who the email was sent to.
|
359
408
|
|
360
409
|
## [2.6.0] - 2024-02-03
|
361
410
|
|
362
411
|
### Added
|
363
|
-
|
364
|
-
|
365
|
-
- `Eco::API::UseCases::
|
366
|
-
|
367
|
-
|
368
|
-
-
|
369
|
-
|
370
|
-
|
371
|
-
-
|
372
|
-
|
373
|
-
-
|
374
|
-
|
375
|
-
-
|
376
|
-
|
377
|
-
|
378
|
-
- `Eco::API::
|
379
|
-
|
380
|
-
-
|
381
|
-
|
382
|
-
- `
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
-
|
413
|
-
- `
|
414
|
-
|
412
|
+
|
413
|
+
- New use case to `-export-tree` (**tagtree extract**)
|
414
|
+
- `Eco::API::UseCases::Default::Locations::TagtreeExtract`
|
415
|
+
- `Eco::API::UseCases::UseCase`
|
416
|
+
- added `#classed_definition` to expose the original class definition
|
417
|
+
- injected further parameter as instance variables to the original class definition on run-time.
|
418
|
+
- Expose `live_trees` retrieval:
|
419
|
+
- `Eco::API::Session#live_trees`
|
420
|
+
- `Eco::API::Session::Config#live_trees`
|
421
|
+
- Ability to CLI-integrate use cases and their options via class
|
422
|
+
- `Eco::API::UseCases::Cli`
|
423
|
+
- Added use case to extract live locations structure (`-export-tree`)
|
424
|
+
- `Eco::API::UseCases::GraphQL::Cases::TagtreeExtract`
|
425
|
+
- `#api?` method to check if an API version is available
|
426
|
+
- `Eco::API::Common::Session::Environment#api?`
|
427
|
+
- `Eco::API::Common::Session::BaseSession#api?`
|
428
|
+
- `Eco::API::Organization::TagTree#merge` the merge method for tagtrees
|
429
|
+
- It allows to have all structure nodes available to check if a tag belongs to them
|
430
|
+
- `Eco::API::Session::Config::Workflow`
|
431
|
+
- **added** `open` alias method for `for`
|
432
|
+
- `Eco::Data::Mapper#self_mapped?` to check if a value maps to itself
|
433
|
+
|
434
|
+
### Changed
|
435
|
+
|
436
|
+
- upgrade `ecoportal-api-graphql`, `ecoportal-api-v2` and `ecoportal-api`
|
437
|
+
- `Eco::API::Session#tagtree`: added parameters to be able to obtain:
|
438
|
+
- `:live` live trees if graphql api is available on the enviro
|
439
|
+
- `:merge` to merge all live trees if there isn't just one
|
440
|
+
- Tagtree retrieval: remove `enviro` param where there's no caching
|
441
|
+
- Removed also from `Eco::API::Organization::TagTree::new`
|
442
|
+
- Removed some use cases:
|
443
|
+
- `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`
|
444
|
+
- `Eco::API::UseCases::DefaultCases::AppendUsergroupsCase`
|
445
|
+
- `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
|
446
|
+
- `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
|
447
|
+
- `Eco::API::UseCases::DefaultCases::EmailAsIdCase`
|
448
|
+
- `Eco::API::UseCases::DefaultCases::NewIdCase`
|
449
|
+
- `Eco::API::UseCases::DefaultCases::RemoveAccountSyncCase`
|
450
|
+
- `Eco::API::UseCases::DefaultCases::RemoveAccountTransCase`
|
451
|
+
- `Eco::API::UseCases::DefaultCases::NewEmailCase`
|
452
|
+
- `Eco::API::UseCases::DefaultCases::SetSupervisorCase`
|
453
|
+
- `Eco::API::UseCases::DefaultCases::TagTree`
|
454
|
+
- `Eco::API::UseCases::DefaultCases::UpdateDetailsCase`
|
455
|
+
- `Eco::API::UseCases::DefaultCases::ResetLandingPageCase`
|
456
|
+
- Moved some default use cases to new namespace `Eco::API::UseCases::Default`
|
457
|
+
|
458
|
+
### Fixed
|
459
|
+
|
460
|
+
- Compatibility with `ruby 3`
|
461
|
+
- replaced `Proc.new` (with no block) by `block` in methods
|
462
|
+
- replaced `File#exists?` by `File#exist?`
|
463
|
+
- call to method's `super` not specifying args, no longer passes keyed/named args via simple splat `*` (but only double splat `**`)
|
464
|
+
- limit `nokogiri` gem to prev `1.16` (as it requires ruby 3 from thereon)
|
465
|
+
- `Eco::API::Common::People::PersonEntryAttributeMapper`
|
466
|
+
- `#aliased_attrs` was missing internal attrs that have been mapped directly as external attrs (same ext attr name as int attr name)
|
415
467
|
|
416
468
|
## [2.5.10] - 2023-11-22
|
417
469
|
|
418
470
|
### Fixed
|
419
|
-
|
420
|
-
|
471
|
+
|
472
|
+
- `Eco::API::UseCases::DefaultCases::ReinviteSyncCase` remove unnecessary additional parameters on call.
|
473
|
+
- `Eco::API::Session::Config::SFTP#enviro_subpaths` provided that a current workaround can be skipped
|
421
474
|
|
422
475
|
## [2.5.9] - 2023-09-05
|
423
476
|
|
424
477
|
The input **csv** of trees could come very compacted, which had unintended consequences.
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
- **
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
- `
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
- `
|
459
|
-
|
478
|
+
|
479
|
+
- This is a fix to this scenario.
|
480
|
+
|
481
|
+
### Added
|
482
|
+
|
483
|
+
- `Eco::Data::Locations::NodeLevel#raw_latest_consecutive_top_empty_level`
|
484
|
+
- To scope the missing ancestors (up to what level)
|
485
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp`
|
486
|
+
- Options for `remote_subfolder`, `remote_target_folder` and `remote_folder`
|
487
|
+
- `Eco::API::Organization::People#updated_or_created` **method**
|
488
|
+
- Scoping all people that have been updated as part of the current session.
|
489
|
+
- Note that it includes also those that are hris excluded.
|
490
|
+
- **Improvement** on `Eco::API::Common::Loaders::Base`
|
491
|
+
- Should be able to call `log(:level) { "Some message" }`
|
492
|
+
|
493
|
+
### Changed
|
494
|
+
|
495
|
+
- `Eco::Data::Locations::NodeLevel`
|
496
|
+
- **removed** `#merge!` and `#override_upper_levels`
|
497
|
+
- `#override_lower_levels` **renamed** to `#update_lower_levels`
|
498
|
+
- `Eco::API::UseCases::DefaultCases::CsvToTree` use case
|
499
|
+
- Moved to work with `Eco::Data::Locations::DSL`
|
500
|
+
- **Removed** helpers double-ups.
|
501
|
+
- Default workflow `on(:report)`: implementation of `-processed-people-to-csv`
|
502
|
+
- It now only includes people created or updated as part of the current session.
|
503
|
+
- **Improvement**: `Eco::API::Common::Loaders::Parser` made `serializer` method **not required**
|
504
|
+
- This aims to use the default serializer definition
|
505
|
+
- Made **inheritable** `parsing_phase` and `serializing_phase`
|
506
|
+
|
507
|
+
### Fixed
|
508
|
+
|
509
|
+
- `Eco::Data::Locations::NodeLevel#update_lower_levels`
|
510
|
+
- To use `#raw_latest_consecutive_top_empty_level`
|
511
|
+
- Compact from first filled in `tags_array` onwards (preserve empty tags at the beginning for clean validation)
|
512
|
+
- `Eco::Data::Locations::NodeLevel::Cleaner`
|
513
|
+
- `#tidy_nodes` **gap** calculation is scoped against previous node (common ancestors)
|
514
|
+
- `#fill_in_parents` to give feedback on unexpected parental relationship
|
515
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp`
|
516
|
+
- Prevent double slashed paths
|
460
517
|
|
461
518
|
## [2.5.8] - 2023-08-28
|
462
519
|
|
463
520
|
### Changed
|
464
|
-
|
465
|
-
|
521
|
+
|
522
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
523
|
+
- Deafult prompt should be `Yes` on **remote**
|
466
524
|
|
467
525
|
## [2.5.7] - 2023-08-15
|
468
526
|
|
469
527
|
### Added
|
470
|
-
|
471
|
-
|
472
|
-
|
528
|
+
|
529
|
+
- `Eco::API::Session::Config#tagtree_id=` allows to define a target structure id
|
530
|
+
- This is for `live` retrieval of tagtree on people sync processes
|
531
|
+
- It only makes sense if graphql credentials are configured
|
473
532
|
|
474
533
|
## [2.5.6] - 2023-08-14
|
475
534
|
|
476
535
|
### Changed
|
477
|
-
|
478
|
-
|
536
|
+
|
537
|
+
- `Eco::API::Session::Config::Tagtree#live_tree` remove memmoize tree: it now always trigger a query to the back-end
|
538
|
+
- Better messaging to know what's going on.
|
479
539
|
|
480
540
|
### Fixed
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
-
|
485
|
-
|
486
|
-
- `
|
487
|
-
|
488
|
-
|
489
|
-
-
|
490
|
-
|
491
|
-
|
541
|
+
|
542
|
+
- `Eco::API::Session#live_tree` was not forwarding target structure id `id`
|
543
|
+
- `Eco::Data::Locations::NodeLevel#override_lower_levels`
|
544
|
+
- By **default** should only override empty upper levels
|
545
|
+
- `Eco::Data::Locations::NodeLevel::Cleaner`
|
546
|
+
- `#tidy_nodes` when **gap** (merged parent) identified, `level` is still correct
|
547
|
+
- `Eco::Data::Locations::NodeLevel`
|
548
|
+
- `#nodes_from_csv` correctly identify parent with big gaps
|
549
|
+
- This fix ensures a correct normalization
|
550
|
+
- `Eco::API::UseCases::GraphQL::Samples::Location::Command::Result`
|
551
|
+
- **Batch remap tags** _built_ requires full path to keep from-filter specificity
|
552
|
+
- This change also wraps into a new class the remap tags table.
|
492
553
|
|
493
554
|
## [2.5.5] - 2023-08-03
|
494
555
|
|
495
556
|
### Added
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
- `
|
501
|
-
|
502
|
-
|
557
|
+
|
558
|
+
- `Eco::API::Organization::TagTree` - **added/improved methods**
|
559
|
+
- `#as_json` new parameter `max_depth:` to be able to cut the tree
|
560
|
+
- `#active_tree` new method to exclude archived nodes.
|
561
|
+
- `#truncate` new method to obtain a tree cut to `max_depth:`
|
562
|
+
- `Eco::API::Session::Config::Tagtree`: **exposed** `include_archived:` (a.k.a. `inludeArchivedNodes`).
|
563
|
+
- This change states that `session.tagtree` does not retrieve archived nodes by default, while `session.live_tree` does retrieve archived nodes.
|
564
|
+
- This change required an update on the `ecoportal-api-graphql` **gem**
|
503
565
|
|
504
566
|
### Fixed
|
505
|
-
|
567
|
+
|
568
|
+
- `Eco::API::Organization::TagTree#path` - dups the result (rather than exposing the internal path array)
|
506
569
|
|
507
570
|
## [2.5.4] - 2023-07-27
|
508
571
|
|
509
572
|
### Added
|
510
|
-
|
511
|
-
|
512
|
-
|
573
|
+
|
574
|
+
- SFTP case helpers: `Eco::API::UseCases::GraphQL::Utils::Sftp`
|
575
|
+
- `Eco::Data::Locations::NodeDiff` and `Eco::Data::Locations::NodeDiff::NodeDiffs`
|
576
|
+
- Aim to identify changes in the locations structure
|
513
577
|
|
514
578
|
### Changed
|
515
|
-
|
579
|
+
|
580
|
+
- Some internal tidy up in `Eco::API::UseCases::GraphQL`
|
516
581
|
|
517
582
|
## [2.5.3] - 2023-07-19
|
518
583
|
|
519
584
|
### Added
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
- `Eco::
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
- `
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
- `
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
- **
|
585
|
+
|
586
|
+
- _GraphQL base case_ for **locations structure update**.
|
587
|
+
- Refer to `Eco::API::UseCases::GraphQL::Samples::LocationCommands`
|
588
|
+
- See also `Eco::API::UseCases::GraphQL`. **Added** `Helpers` and `Samples`
|
589
|
+
- `Eco::Data::Locations` helpers
|
590
|
+
- **Converters**: it offers a `DSL` (see `Eco::Data::Locations::DSL`) manage as input/output:
|
591
|
+
1. CSV files with locations in two basic formats (list of nodes and hierarchy of locations)
|
592
|
+
2. This comes with integrity checkers to ensure the input data files are correct (warnings)
|
593
|
+
3. It also allows to convert to/from an organization locations structure and csv files.
|
594
|
+
- Making generic the helpers of `Eco::API::UseCases::DefaultCases::CsvToTree`
|
595
|
+
- The prospect is to move to the new/reviewed helpers at some stage (so remove the old helpers)
|
596
|
+
- This comes with a series of **converters** and **parsers** to allow two basic forms of input/output:
|
597
|
+
- CSV with list of nodes (`id`, `name`, `parent_id`)
|
598
|
+
- CSV of the actual tree (each column is one level of the tree)
|
599
|
+
- `Eco::API::Organization::TagTree` - **added/improved methods**
|
600
|
+
- **added** shortcuts: `parent_id`, `parent_name`
|
601
|
+
- **added** filters: `select`, `reject`
|
602
|
+
- **improved** `as_json`:
|
603
|
+
1. new parameter `include_children`
|
604
|
+
2. Hash keys | Header names to `HEADER` column
|
605
|
+
- **added** `as_nodes_json` to obtain a plain list (rather than hierarchical `as_json`)
|
606
|
+
- `Eco::CSV::Table`
|
607
|
+
- **added** `#add_index_column` to numerate the rows in a new column
|
608
|
+
- **improved** `#add_column` with new parameter `pos`
|
609
|
+
- **added** `#nil_blank_cells` and `#nil_blank_cells!`
|
610
|
+
- `Eco::Language::BasicLogger` brief extensible logger.
|
611
|
+
|
612
|
+
### Changed
|
613
|
+
|
614
|
+
- Refactored `Eco::API::Session::Logger` inheriting from `Eco::Language::BasicLogger`
|
615
|
+
|
616
|
+
### Fixed
|
617
|
+
|
618
|
+
- Live tree retrieval. Allow to specify locations structure `id`, `kargs` & `block`.
|
619
|
+
- `Eco::API::Session#live_tree` allow `id`, `kargs` & `block`, **fix** pass `include_archived`
|
620
|
+
- `Eco::API::Session::Config#live_tree` allow `id`, `kargs` & `block`
|
621
|
+
- When `id` is given, it uses `tagtree_config#live_tree_get`
|
622
|
+
- **fixed** neither `kargs` nor `include_archived` where defined
|
623
|
+
- `Eco::API::Session::Config::Tagtree` methods
|
624
|
+
- `#live_trees` allow `kargs`
|
625
|
+
- `#live_tree_get` **added**: it does not memoize
|
626
|
+
- `#live_tree` allow `id` and `kargs`
|
627
|
+
- **fixed** `include_archived` nodes should not be redirected to `live_trees` as in the latter this parameter has a different meaning (it refers to archived structures).
|
628
|
+
- **Important note**: the `ecoportal-api-graphql` gem, at the moment always retrieves archived nodes. This makes the `include_archived` argument non-functional. However, at some stage this will be changed and everything should be sorted out by then.
|
561
629
|
|
562
630
|
## [2.5.2] - 2023-06-23
|
563
631
|
|
564
632
|
### Added
|
565
|
-
|
566
|
-
|
633
|
+
|
634
|
+
- `Eco::API::Session::Config::Workflow#exit_handle`
|
635
|
+
- Allows to define a callback on `SystemExit` (`exit` call).
|
567
636
|
|
568
637
|
### Fixed
|
569
|
-
|
570
|
-
|
571
|
-
-
|
638
|
+
|
639
|
+
- `Eco::API::Session::Config::Workflow` on `SystemExit` preserve original exit `status` value (i.e. `0`, `1`)
|
640
|
+
- It was changing an `exit 1` to be an `exit 0`
|
641
|
+
- Default Workflow. `exit 0` when no operation specified (rather than `exit 1`).
|
572
642
|
|
573
643
|
## [2.5.1] - 2023-06-06
|
574
644
|
|
575
645
|
### Added
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
646
|
+
|
647
|
+
- `Eco::API::Common::Session:SFTP#host` method
|
648
|
+
- New options to control csv headers check (`Eco::API::Common::People::DefaultParsers::CSVParser`)
|
649
|
+
- `Eco::API::Common::Loaders::CaseBase` add to the setter the `@usecase`
|
650
|
+
- Implemented via `Eco::API::UseCases::UseCase`
|
580
651
|
|
581
652
|
### Changed
|
582
|
-
|
583
|
-
|
584
|
-
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
- `
|
589
|
-
|
653
|
+
|
654
|
+
- Dry out dependency loading.
|
655
|
+
- `ecoportal-api` **gem** remains as eager loading.
|
656
|
+
- Patch `Ecoportal::API::V1::Person` with `include`
|
657
|
+
- Upgraded `ecoportal-api-graphql` **gem**
|
658
|
+
- `Eco::API::Common::People::PersonEntryAttributeMapper`
|
659
|
+
- Switched reversed attr defs warning to `info` logging level.
|
660
|
+
- `Eco::API::Common::DefaultParsers::SelectParser`
|
661
|
+
- When there is dependency with the hash of options, it should return nil when the option is unknown.
|
590
662
|
|
591
663
|
### Fixed
|
592
|
-
|
593
|
-
|
594
|
-
- `Eco::
|
664
|
+
|
665
|
+
- Tidied up file encoding when getting content.
|
666
|
+
- This fixes `Eco::CSV::read`
|
667
|
+
- `Eco::API::Common::People::DefaultParsers::CSVParser` made some refactor.
|
595
668
|
|
596
669
|
## [2.4.9] - 2023-04-17
|
597
670
|
|
598
671
|
### Added
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
- `
|
604
|
-
|
672
|
+
|
673
|
+
- `Eco::API::UseCases#source_object` to retrieve the original use case definition object
|
674
|
+
- This allows the `Eco::API::UseCases::UseCase` object to access the object that defined the usecase and initialize `@session`.
|
675
|
+
- It now can know what `type` of use case created the `@callback`
|
676
|
+
- Next steps with this may be play a bit with the `aritity` of the `@callback` block, allow parsers to skip the serializer definition (so the default one runs), etc.
|
677
|
+
- `Eco::API::Common::Loaders::Base` the above feature allowed to initialize the `@options`, and therefore...
|
678
|
+
- `#options` method **added** (based on `@options` instance var)
|
605
679
|
|
606
680
|
### Changed
|
607
|
-
|
608
|
-
|
609
|
-
-
|
610
|
-
|
681
|
+
|
682
|
+
- `Eco::API::Common::Loaders::Base`
|
683
|
+
- `#session` method is based on `@session` instance var, which allows to override without having to redefine `session` (`attr_reader :session` is no longer necessary)
|
684
|
+
- Softened max version of **gem** dependencies
|
685
|
+
- Upgraded self-managed **gem** dependencies
|
611
686
|
|
612
687
|
### Fixed
|
613
|
-
|
614
|
-
|
688
|
+
|
689
|
+
- `Eco::API::Common::ClassAutoLoader::autoload_children`
|
690
|
+
- Skip `singleton_classes`
|
615
691
|
|
616
692
|
## [2.4.8] - 2023-04-03
|
617
693
|
|
618
694
|
### Added
|
619
|
-
|
695
|
+
|
696
|
+
- `Eco::API::Organization::TagTree#ancestors` returns the ancestor nodes.
|
620
697
|
|
621
698
|
## [2.4.7] - 2023-04-03
|
622
699
|
|
623
700
|
### Added
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
701
|
+
|
702
|
+
- `Eco::Data::Hashes::ArrayDiff#diffs?`
|
703
|
+
- `Eco::API::Organization::TagTree` added methods:
|
704
|
+
- `#source` => to expose the original doc
|
705
|
+
- `#all_nodes` => to implement the block call
|
628
706
|
|
629
707
|
### Changed
|
630
|
-
|
708
|
+
|
709
|
+
- Upgraded `ecoportal-api-graphql` **gem**
|
631
710
|
|
632
711
|
### Fixed
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
712
|
+
|
713
|
+
- `Eco::API::Session::Config::Api` **new `graphql` api** was missing `host`
|
714
|
+
- `Eco::API::UseCases::DefaultCases::CsvToTree::Helper`
|
715
|
+
- `#nodes_from_csv` assumed unique top level tag and not present
|
716
|
+
- This fix completes this feature (as top level tags were not there)
|
637
717
|
|
638
718
|
## [2.4.6] - 2023-04-02
|
639
719
|
|
640
720
|
### Added
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
721
|
+
|
722
|
+
- `Eco::API::Organization::TagTree` added support for `archived_token`
|
723
|
+
- Added support for `block` in
|
724
|
+
- `Eco::API::Session#live_tree`
|
725
|
+
- `Eco::API::Session::Config::Tagtree` in `#live_trees` and `live_tree`
|
645
726
|
|
646
727
|
### Changed
|
647
|
-
- Upgraded `ecoportal-api-graphql` **gem**
|
648
728
|
|
729
|
+
- Upgraded `ecoportal-api-graphql` **gem**
|
649
730
|
|
650
731
|
## [2.4.5] - 2023-03-31
|
651
732
|
|
652
733
|
### Added
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
734
|
+
|
735
|
+
- `Eco::API::Organization::TagTree` support for `archived` and `weight` properties
|
736
|
+
- `Eco::Data::Hashes::ArrayDiff` and `Eco::Data::Hashes::DiffResult`
|
737
|
+
- Enable easy comparison of array of hashes
|
738
|
+
- Input data can be diverse
|
657
739
|
|
658
740
|
### Fixed
|
659
|
-
- `Eco::API::UseCases::DefaultCases::CsvToTree`
|
660
|
-
- Fixed the missed alignment children that jump levels
|
661
|
-
- `Eco::API::UseCases::DefaultCases::CsvToTree::Node`
|
662
|
-
- `to_h`: attrs param was being ingnored.
|
663
741
|
|
742
|
+
- `Eco::API::UseCases::DefaultCases::CsvToTree`
|
743
|
+
- Fixed the missed alignment children that jump levels
|
744
|
+
- `Eco::API::UseCases::DefaultCases::CsvToTree::Node`
|
745
|
+
- `to_h`: attrs param was being ingnored.
|
664
746
|
|
665
747
|
## [2.4.4] - 2023-03-29
|
666
748
|
|
667
749
|
### Added
|
668
|
-
|
669
|
-
|
670
|
-
|
750
|
+
|
751
|
+
- `Eco::API:Organization::TagTree`
|
752
|
+
- Added **methods** `#each` and `#all_nodes` allow to loop through all nodes
|
753
|
+
- Added `parent` to refer to the parent node.
|
671
754
|
|
672
755
|
### Changed
|
673
|
-
|
756
|
+
|
757
|
+
- `Eco::API:Organization::TagTree` made **Enumerable**
|
674
758
|
|
675
759
|
### Fixed
|
676
|
-
|
677
|
-
|
678
|
-
|
760
|
+
|
761
|
+
- `Eco:API::Session#live_tree` pass `enviro`
|
762
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
763
|
+
- Fix typo on error message.
|
679
764
|
|
680
765
|
## [2.4.3] - 2023-03-23
|
681
766
|
|
682
767
|
### Fixed
|
683
|
-
|
684
|
-
|
685
|
-
|
768
|
+
|
769
|
+
- `Eco::API::MicroCases#take_email_from_account` it was failing at the very (when restoring the original account)
|
770
|
+
- Comes from back-end issue. Adding account with preferences.kiosk_enabled would return:
|
771
|
+
- `{"errors"=>["account > preferences > kiosk_enabled is an unknown field"]}`
|
686
772
|
|
687
773
|
## [2.4.2] - 2023-03-17
|
688
774
|
|
689
775
|
### Fixed
|
690
|
-
|
776
|
+
|
777
|
+
- `Eco::API::Common::People::EntryFactory#entries` _bom_ **encoding** (get back support)
|
691
778
|
|
692
779
|
## [2.3.3] - 2023-03-16
|
693
780
|
|
694
781
|
### Added
|
695
|
-
|
782
|
+
|
783
|
+
- Added new option `-input-encoding` to specify the encoding of an input file
|
696
784
|
|
697
785
|
### Changed
|
698
|
-
- `ecoportal-api` **gem** update
|
699
786
|
|
787
|
+
- `ecoportal-api` **gem** update
|
700
788
|
|
701
789
|
## [2.3.2] - 2023-03-10
|
702
790
|
|
703
791
|
### Fixed
|
704
|
-
|
705
|
-
|
792
|
+
|
793
|
+
- upgraded core library gems:
|
794
|
+
- `ecoportal-api`
|
706
795
|
|
707
796
|
## [2.3.1] - 2023-03-09
|
708
797
|
|
709
798
|
### Changed
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
799
|
+
|
800
|
+
- upgraded core library gems:
|
801
|
+
- `ecoportal-api`
|
802
|
+
- `ecoportal-api-v2`
|
803
|
+
- `ecoportal-api-graphql`
|
714
804
|
|
715
805
|
## [2.2.5] - 2023-03-07
|
716
806
|
|
717
807
|
### Fixed
|
718
|
-
|
808
|
+
|
809
|
+
- Make it, so it requires to have a locations structure with nodes (raise exception otherwise)
|
719
810
|
|
720
811
|
## [2.2.4] - 2023-03-07
|
721
812
|
|
722
813
|
### Fixed
|
723
|
-
|
814
|
+
|
815
|
+
- Logger object when logging from config
|
724
816
|
|
725
817
|
## [2.2.3] - 2023-03-07
|
726
818
|
|
727
819
|
### Added
|
728
|
-
|
820
|
+
|
821
|
+
- Logger info for live tree selected.
|
729
822
|
|
730
823
|
### Changed
|
731
|
-
|
732
|
-
|
824
|
+
|
825
|
+
- `Eco::API::Common::People::DefaultParsers::PolicyGroupsParser`
|
826
|
+
- Should warn of unknown policy groups
|
733
827
|
|
734
828
|
### Fixed
|
735
|
-
|
829
|
+
|
830
|
+
- `Eco::API:Organization::TagTree` fix `defaults_tag` scoping
|
736
831
|
|
737
832
|
## [2.2.2] - 2023-02-27
|
738
833
|
|
739
834
|
### Fixed
|
740
|
-
|
741
|
-
|
835
|
+
|
836
|
+
- Typo in GraphQL client (`locationsStructures` should read `locationStructures`)
|
837
|
+
- Multiple typos in new code
|
742
838
|
|
743
839
|
## [2.2.1] - 2023-02-24
|
744
840
|
|
745
841
|
### Added
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
842
|
+
|
843
|
+
- `Ecoportal::API::V1::Person#contractor_organization_id`
|
844
|
+
- **Support** for **Reporting Structures** (breaking change)
|
845
|
+
- `Eco::API::UseCases::DefaultCases::CsvToTree` use case to generate tree json out of a csv
|
846
|
+
- The output file can be fed to `Eco::API::Organization::TagTree`
|
750
847
|
|
751
848
|
### Changed
|
752
|
-
|
753
|
-
|
849
|
+
|
850
|
+
- **Patch** `Ecoportal::API::V1::Person::VALID_TAG_REGEX` it now allows for dot `.`
|
851
|
+
- update gem dependencies
|
754
852
|
|
755
853
|
## [2.1.12] - 2022-11-30
|
756
854
|
|
757
855
|
### Fixed
|
758
|
-
|
759
|
-
|
856
|
+
|
857
|
+
- `Eco::API::Session::Batch::Errors#str` remove double up on error message
|
858
|
+
- wrong require
|
760
859
|
|
761
860
|
## [2.1.11] - 2022-11-30
|
762
861
|
|
763
862
|
### Changed
|
764
|
-
|
765
|
-
|
766
|
-
|
863
|
+
|
864
|
+
- Bring the `-set-supervisor` native case up to date
|
865
|
+
- `Eco::API::Session::Batch::Errors#errors`
|
866
|
+
- better error catching and description
|
767
867
|
|
768
868
|
## [2.1.10] - 2022-11-30
|
769
869
|
|
770
870
|
### Fixed
|
771
|
-
|
772
|
-
|
871
|
+
|
872
|
+
- `Eco::API::Session::Batch::Errors#errors`
|
873
|
+
- include errors with no `error` property in body (i.e. `!response.success?`)
|
773
874
|
|
774
875
|
## [2.1.9] - 2022-11-29
|
775
876
|
|
776
877
|
### Changed
|
777
|
-
|
778
|
-
|
878
|
+
|
879
|
+
- upgrade `ecoportal-api-v2` **gem** dependency
|
880
|
+
- upgrade `ecoportal-api-graphql` **gem** dependency
|
779
881
|
|
780
882
|
### Fixed
|
781
|
-
|
782
|
-
|
783
|
-
|
883
|
+
|
884
|
+
- `Eco::API::Session::Batch::Job`
|
885
|
+
- Ability to skip prefilter of entries with no `id` on `:update`
|
886
|
+
- Enhanced error tracking (bug resilience)
|
784
887
|
|
785
888
|
## [2.1.8] - 2022-11-18
|
786
889
|
|
787
890
|
### Added
|
788
|
-
|
789
|
-
|
790
|
-
-
|
791
|
-
|
891
|
+
|
892
|
+
- `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
|
893
|
+
- When in `dry-run` mode, it adds one line before creation feedback, so it is clear the feedback is about creation (i.e. none of the source entries got mistakenly updated)
|
894
|
+
- **enhanced** `Eco::API::UseCases::OozeSamples::OozeBaseCase#with_fields`
|
895
|
+
- It allows to optionally pass as first parameter a section or a stage (default: ooze)
|
792
896
|
|
793
897
|
### Changed
|
794
|
-
|
898
|
+
|
899
|
+
- upgraded gem dependency `ecoportal-api-v2`
|
795
900
|
|
796
901
|
## [2.1.7] - 2022-11-17
|
797
902
|
|
798
903
|
### Added
|
799
|
-
|
800
|
-
|
904
|
+
|
905
|
+
- `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` method `excluded_field_hooks`
|
906
|
+
- This enables the ability to prevent fields from being paired/copied/written on
|
801
907
|
|
802
908
|
### Changed
|
803
|
-
|
804
|
-
|
909
|
+
|
910
|
+
- **refactored** `#with_src_dst_field_pair` helper
|
911
|
+
- from `Eco::API::UseCases::OozeSamples::HelpersMigration::Copying`
|
805
912
|
|
806
913
|
## [2.1.6] - 2022-11-17
|
807
914
|
|
808
915
|
### Fixed
|
809
|
-
|
810
|
-
|
916
|
+
|
917
|
+
- `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#to_i` (missing param on method)
|
918
|
+
- `Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing#multi_delete` typo
|
811
919
|
|
812
920
|
## [2.1.5] - 2022-11-17
|
813
921
|
|
814
922
|
### Added
|
815
|
-
|
816
|
-
|
817
|
-
-
|
818
|
-
|
819
|
-
|
820
|
-
-
|
923
|
+
|
924
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added creation count
|
925
|
+
- Requires use of `#create_ooze(draft, template_id)`
|
926
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added method
|
927
|
+
- `with_rescue` that prompts user to continue
|
928
|
+
- this is for usage in child classes
|
929
|
+
- new use case and helpers thereof `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
|
821
930
|
|
822
931
|
### Changed
|
823
|
-
|
824
|
-
|
932
|
+
|
933
|
+
- upgraded `ecoportal-api-v2` **gem**
|
934
|
+
- **refactored** `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
|
825
935
|
|
826
936
|
## [2.1.4] - 2022-10-20
|
827
937
|
|
828
938
|
### Added
|
829
|
-
|
939
|
+
|
940
|
+
- `Eco::API::Common::Session::Mailer#mail` added parameters `cc` and `bcc`
|
830
941
|
|
831
942
|
## [2.1.3] - 2022-10-11
|
832
943
|
|
833
944
|
### Added
|
834
|
-
|
835
|
-
|
836
|
-
|
945
|
+
|
946
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
|
947
|
+
- `with_fields`, `with_sections` and `add_field` accept an `entry` parameter
|
948
|
+
- also did some internal refactor
|
837
949
|
|
838
950
|
### Changed
|
839
|
-
|
951
|
+
|
952
|
+
- Upgraded `ecoportal-api-v2` **gem**
|
840
953
|
|
841
954
|
### Fixed
|
842
|
-
|
843
|
-
|
955
|
+
|
956
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
957
|
+
- account for stages with updates within same entry
|
844
958
|
|
845
959
|
## [2.1.2] - 2022-09-29
|
846
960
|
|
847
961
|
### Added
|
848
|
-
|
849
|
-
|
850
|
-
- `
|
962
|
+
|
963
|
+
- `Ecoportal::API::Session::Config#live_tree` to retrieve the tagtree of the back-end
|
964
|
+
- Requires `graphql` connection parameters
|
965
|
+
- `Ecoportal::API::Session#live_tree` see above
|
851
966
|
|
852
967
|
### Changed
|
853
|
-
|
854
|
-
|
855
|
-
|
968
|
+
|
969
|
+
- `Ecoportal::API::Session::Config#tagtree` to use `#live_tree` if there isn't a `tagtree.json` file
|
970
|
+
- upgraded **dependency** to `ecoportal-api-graphql` **gem**
|
971
|
+
- upgraded **dependency** to `ecoportal-api-v2` **gem**
|
856
972
|
|
857
973
|
### Fixed
|
858
|
-
|
974
|
+
|
975
|
+
- `Ecoportal::API::Session::Config::API#version_available?` **typo**
|
859
976
|
|
860
977
|
## [2.1.1] - 2022-09-26
|
861
978
|
|
862
979
|
### Added
|
863
|
-
|
864
|
-
|
980
|
+
|
981
|
+
- `Eco::API::Session::Config::Api#version_available?` to know if a version is available for use
|
982
|
+
- `Eco::API::Session::Config::Apis`, added `#default_pass` and `#default_email` to use the `GraphQL` api.
|
865
983
|
|
866
984
|
### Changed
|
867
|
-
|
868
|
-
|
985
|
+
|
986
|
+
- upgraded **dependency** to `ecoportal-api-graphql` **gem**
|
987
|
+
- upgraded **dependency** to `ecoportal-api-v2` **gem**
|
869
988
|
|
870
989
|
## [2.0.68] - 2022-09-19
|
871
990
|
|
872
991
|
### Added
|
873
|
-
|
992
|
+
|
993
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase`: **added** a couple of functions to support **page creation**: `#new_page` and `#create_page`
|
874
994
|
|
875
995
|
### Changed
|
876
|
-
|
877
|
-
|
996
|
+
|
997
|
+
- upgraded **dependency** to `ecoportal-api-graphql` **gem**
|
998
|
+
- upgraded **dependency** to `ecoportal-api-v2` **gem**
|
878
999
|
|
879
1000
|
### Fixed
|
880
|
-
|
1001
|
+
|
1002
|
+
- `Eco::API::Session::Config::Api`, the `org_id` is **not** a required parameter for `APIv2`
|
881
1003
|
|
882
1004
|
## [2.0.67] - 2022-09-15
|
883
1005
|
|
884
1006
|
### Added
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
-
|
1007
|
+
|
1008
|
+
- **dependency** to `ecoportal-api-graphql` **gem**
|
1009
|
+
- Added integration for `GraphQL`
|
1010
|
+
- `session.api(version: :graphql)`
|
1011
|
+
- New base case `Eco::API::UseCases::GraphQL::Base` to create `GraphQL` use cases
|
889
1012
|
|
890
1013
|
### Changed
|
891
|
-
|
892
|
-
|
1014
|
+
|
1015
|
+
- `Eco::CSV#read` and `Eco::CSV#parse` delegating `nil` row removal to sublcass `Eco::CSV::Table`
|
1016
|
+
- **upgraded** dependency on `ecoportal-api-v2`
|
893
1017
|
|
894
1018
|
### Fixed
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
1019
|
+
|
1020
|
+
- `Eco::API::Session::Config::SFTP#remote_folder` to have path separator always as `/`
|
1021
|
+
- `Eco::CSV::Table`
|
1022
|
+
- to delete rows with all `nil` values
|
1023
|
+
- to keep `header` when file comes only with `header` row (with `0` count)
|
899
1024
|
|
900
1025
|
## [2.0.66] - 2022-08-11
|
901
1026
|
|
902
1027
|
### Fixed
|
903
|
-
|
1028
|
+
|
1029
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp` manage exception when trying to access remote folder
|
904
1030
|
|
905
1031
|
## [2.0.65] - 2022-08-11
|
906
1032
|
|
907
1033
|
### Fixed
|
908
|
-
|
1034
|
+
|
1035
|
+
- Typo of a fix
|
909
1036
|
|
910
1037
|
## [2.0.63] - 2022-08-11
|
911
1038
|
|
912
1039
|
### Changed
|
913
|
-
|
1040
|
+
|
1041
|
+
- `Eco::API::Session::Config::SFTP#remote_folder` to use native path builder
|
914
1042
|
|
915
1043
|
## [2.0.62] - 2022-07-15
|
916
1044
|
|
917
1045
|
### Added
|
918
|
-
|
919
|
-
|
920
|
-
|
1046
|
+
|
1047
|
+
- SFTP **password** option
|
1048
|
+
- `Eco::API::Common::Session::Sftp` fetches from config
|
1049
|
+
- `Eco::API::Session::Config::Sftp#password`
|
921
1050
|
|
922
1051
|
### Fixed
|
923
|
-
|
1052
|
+
|
1053
|
+
- `Eco::API::UseCases::DefaultCases::CreateCase` had a typo
|
924
1054
|
|
925
1055
|
## [2.0.61] - 2022-07-11
|
926
1056
|
|
927
1057
|
### Added
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
-
|
932
|
-
|
933
|
-
|
934
|
-
- `Eco::API::UseCases::
|
935
|
-
|
1058
|
+
|
1059
|
+
- patch for `Ecoportal::API::Common::Client#host` exposed `host` property
|
1060
|
+
- `skip-header-checks` option
|
1061
|
+
- It prevents checks done in the `Eco::API::Common::People::DefaultParsers::CSVParser`
|
1062
|
+
- **Export Helpers** to be able to automate exports via `APIv2`
|
1063
|
+
- `Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister`
|
1064
|
+
- `Eco::API::UseCases::OozeSamples::Helpers::ExportableOoze`
|
1065
|
+
- `Eco::API::UseCases::OozeCases::ExportRegisterCase` to export registers
|
1066
|
+
- First ooze native use case (besides the samples)
|
936
1067
|
|
937
1068
|
### Changed
|
938
|
-
|
1069
|
+
|
1070
|
+
- upgraded `ecoportal-api-v2` to version `0.8.30`
|
939
1071
|
|
940
1072
|
### Fixed
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
- `
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
1073
|
+
|
1074
|
+
- `-entries-to-csv` case; option `-out` was not being used
|
1075
|
+
- `Eco::API::Common::People::Entries#export` made it so it creates one column per key
|
1076
|
+
- It was wrongly merging the entries assuming all of them had the same keys
|
1077
|
+
- This also fixes the `-entries-to-csv` case, which can be used with `entries-from` option to correctly merge multiple input files with no data loss
|
1078
|
+
- `Eco::API::UseCases::OozeSamples::RegisterExportCase`
|
1079
|
+
- On prompt to launch, it answers `Yes`
|
1080
|
+
- It correctly captures the `state` based on the stages `state`
|
1081
|
+
- It was not building the model
|
1082
|
+
- Optimized
|
1083
|
+
- It returns a `PageStage` (rather than `Page`), to ensure all supported properties are accessible (i.e. `uid`)
|
951
1084
|
|
952
1085
|
## [2.0.60] - 2022-07-01
|
953
1086
|
|
954
1087
|
### Fixed
|
955
|
-
|
1088
|
+
|
1089
|
+
- `Ecoportal::API::V1::PersonDetails.key?` patched
|
956
1090
|
|
957
1091
|
## [2.0.59] - 2022-06-07
|
958
1092
|
|
959
1093
|
### Added
|
960
|
-
|
1094
|
+
|
1095
|
+
- `Eco::API::Organization::TagTree#leafs` new method to spot tags with no children.
|
961
1096
|
|
962
1097
|
### Changed
|
963
|
-
|
964
|
-
|
1098
|
+
|
1099
|
+
- `Eco::API::MicroCases#core_excluded`
|
1100
|
+
- when person is `new?`, you should still be able to exclude `filter_tags`
|
965
1101
|
|
966
1102
|
### Fixed
|
967
|
-
|
968
|
-
|
1103
|
+
|
1104
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess`
|
1105
|
+
- `-exclude-account` should leave it untouched
|
969
1106
|
|
970
1107
|
## [2.0.58] - 2022-05-31
|
971
1108
|
|
972
1109
|
### Added
|
973
|
-
|
974
|
-
|
975
|
-
- `
|
976
|
-
|
977
|
-
- `
|
978
|
-
|
979
|
-
|
980
|
-
|
1110
|
+
|
1111
|
+
- **Usecase**`Eco::API::UseCases::DefaultCases::ClearAbilitiesTransCase`
|
1112
|
+
- invokable with `clear-abilities`
|
1113
|
+
- `Eco::API::Session::Config::People` added
|
1114
|
+
- `default_login_method` helpers
|
1115
|
+
- `Eco::API::Session::Config#default_login_method=` added
|
1116
|
+
- `Eco::API::Common::Loaders::Base#abort` method to log an error and raise an exception
|
1117
|
+
- **patched** `Ecoportal::API::Internal::Person`
|
1118
|
+
- Added a couple of handy helpers: `#replace_doc` and `#replace_original_doc`
|
981
1119
|
|
982
1120
|
### Changed
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
- `
|
987
|
-
|
988
|
-
-
|
989
|
-
|
1121
|
+
|
1122
|
+
- `Eco::API::Common::Session::SFTP#move` new parameter `override:` (default: `true`)
|
1123
|
+
- If there was an error, it would delete the destination remote file and retry to move the file
|
1124
|
+
- upgraded `ecoportal-api-v2` gem to `0.8.28`
|
1125
|
+
- `Eco::API::Organization::LoginProviders#login_provider`
|
1126
|
+
- Added support to fetch based on type (i.e. password, sso)
|
1127
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess`
|
1128
|
+
- Added support for `config.default_login_method`
|
990
1129
|
|
991
1130
|
### Fixed
|
992
|
-
|
993
|
-
|
1131
|
+
|
1132
|
+
- `Eco::API::Common::People::EntryFactory`
|
1133
|
+
- Max allowed enconding errors was not working (it was just fixing all).
|
994
1134
|
|
995
1135
|
## [2.0.57] - 2022-04-29
|
996
1136
|
|
997
1137
|
### Changed
|
998
|
-
|
999
|
-
|
1000
|
-
|
1138
|
+
|
1139
|
+
- `Eco::API::UseCases::DefaultCases::HrisCase`
|
1140
|
+
- Made it so the `leavers` batch runs first
|
1141
|
+
- This aims to prevent some errors such as `cyclic supervisor` or `email already taken`
|
1001
1142
|
|
1002
1143
|
## [2.0.56] - 2022-04-25
|
1003
1144
|
|
1004
1145
|
### Added
|
1005
|
-
|
1006
|
-
|
1146
|
+
|
1147
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase#add_field_by_doc`
|
1148
|
+
- Same as `#add_field` but using an existing _**doc**_ as a model
|
1007
1149
|
|
1008
1150
|
### Changed
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
- `
|
1013
|
-
|
1014
|
-
- `
|
1015
|
-
|
1016
|
-
- `
|
1151
|
+
|
1152
|
+
- `ecoportal-api-v2` dependency upgrade
|
1153
|
+
- `Eco::API::Common::Session::FileManager#file_content`
|
1154
|
+
- added parameter `mode:` to options can be used as well
|
1155
|
+
- `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
|
1156
|
+
- Added parameter `mild:` to compare the strings with only alphabetic characters
|
1157
|
+
- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase`
|
1158
|
+
- `#main` and `#process_ooze` methods were not obvious to use
|
1159
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` slight change on the **`run` summary message**
|
1017
1160
|
|
1018
1161
|
### Fixed
|
1019
|
-
|
1020
|
-
|
1162
|
+
|
1163
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
|
1164
|
+
- Added call to `validate` also when we are on `dry-run` **mode**
|
1021
1165
|
|
1022
1166
|
## [2.0.55] - 2022-04-04
|
1023
1167
|
|
1024
1168
|
### Fixed
|
1025
|
-
|
1169
|
+
|
1170
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp` should move the basename to Windows compatible chars.
|
1026
1171
|
|
1027
1172
|
## [2.0.54] - 2022-04-04
|
1028
1173
|
|
1029
1174
|
### Added
|
1030
|
-
|
1175
|
+
|
1176
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp` should tell where the files went in the local.
|
1031
1177
|
|
1032
1178
|
## [2.0.53] - 2022-04-04
|
1033
1179
|
|
1034
1180
|
### Added
|
1035
|
-
|
1036
|
-
|
1181
|
+
|
1182
|
+
- `Eco::API::MicroCases#set_supervisor` prevent to set someone as supervisor of themselves.
|
1183
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp` integration to modify the `source_folder`
|
1037
1184
|
|
1038
1185
|
### Changed
|
1039
|
-
|
1186
|
+
|
1187
|
+
- upgrade `ecoportal-api` and `ecoportal-api-v2` dependencies
|
1040
1188
|
|
1041
1189
|
## [2.0.52] - 2022-03-04
|
1042
1190
|
|
1043
1191
|
### Added
|
1044
|
-
|
1192
|
+
|
1193
|
+
- `Eco::API::UseCases::DefaultCases::CleanUnknownTags` include `default_tag` refresh
|
1045
1194
|
|
1046
1195
|
### Fixed
|
1047
|
-
|
1196
|
+
|
1197
|
+
- `Eco::Data::Files::Directory#dir_files` to be returned in alphabetic order
|
1048
1198
|
|
1049
1199
|
## [2.0.51] - 2022-02-27
|
1050
1200
|
|
1051
1201
|
### Added
|
1052
|
-
|
1053
|
-
|
1202
|
+
|
1203
|
+
- `Eco::API::MicroCases#person_update!` launches an update against the Server for one person
|
1204
|
+
- `Eco::API::MicroCases#take_email_from_account` with given an account associated to an `email` that we cannot take, it associates that account to a different email
|
1054
1205
|
|
1055
1206
|
## [2.0.50] - 2022-02-23
|
1056
1207
|
|
1057
1208
|
### Added
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
-
|
1063
|
-
|
1064
|
-
|
1209
|
+
|
1210
|
+
- Ability to configure delay between jobs and job groups
|
1211
|
+
- `Eco::API::Session::Batch::Jobs`, `#delay_between_jobs`
|
1212
|
+
- `Eco::API::Session::Batch::JobsGroups`, `#delay_between_groups`
|
1213
|
+
- `Eco::API::Session::Config`, added methods `#delay_between_jobs` and `#delay_between_job_groups`
|
1214
|
+
- New use case `Eco::API::UseCases::DefaultCases::TagPaths` to create a `csv` with all `tag` paths
|
1215
|
+
- Its purpose is to ease the build of tag remaps
|
1216
|
+
- Ideally, after remapping the tags of an org, you would want to fix the tag paths based on the current tagtree
|
1065
1217
|
|
1066
1218
|
### Changed
|
1067
|
-
|
1219
|
+
|
1220
|
+
- `workflow`, when no operation specified it logs as `info`, rather than `warn`
|
1068
1221
|
|
1069
1222
|
## [2.0.49] - 2022-02-14
|
1070
1223
|
|
1071
1224
|
### Added
|
1072
|
-
|
1073
|
-
|
1225
|
+
|
1226
|
+
- `Eco::API::Session::Batch::RequestStats#message` now it shows which details have changed
|
1227
|
+
- `Eco::API::UseCases::DefaultCases::ReinviteTransCase` the option `-force` will also send an invite to users that have accepted the invitation
|
1074
1228
|
|
1075
1229
|
## [2.0.48] - 2022-02-04
|
1076
1230
|
|
1077
1231
|
### Changed
|
1078
|
-
|
1232
|
+
|
1233
|
+
- upgraded `ecoportal-api-v2` dependency
|
1079
1234
|
|
1080
1235
|
### Fixed
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1236
|
+
|
1237
|
+
- `Eco::API::Common::People::EntryFactory#get_file_content`
|
1238
|
+
- Call to `String#scrub` to prevent _invalid byte sequence_ error by replacing those characters by their coding identifier
|
1239
|
+
- This has been implemented with a max tolerance of 5 byte sequence errors
|
1240
|
+
- Errors are logged (although could not get to identify the line :/)
|
1085
1241
|
|
1086
1242
|
## [2.0.47] - 2022-02-03
|
1087
1243
|
|
1088
1244
|
### Added
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
- `
|
1093
|
-
|
1245
|
+
|
1246
|
+
- `Eco::API::UseCases::DefaultCases::CleanUnknownTags`
|
1247
|
+
- It is possible to extend or override `register_tags`
|
1248
|
+
- New command option `-include-register-tags` (will not ignore register tags; they will be removed too)
|
1249
|
+
- `Eco::API::UseCases::DefaultCases::Samples::Sftp`
|
1250
|
+
- Default sample case to list, get and archive SFTP remote files
|
1251
|
+
|
1094
1252
|
### Changed
|
1095
|
-
|
1253
|
+
|
1254
|
+
- upgraded `ecoportal-api-v2` dependency
|
1096
1255
|
|
1097
1256
|
### Fixed
|
1098
|
-
|
1257
|
+
|
1258
|
+
- `Eco::API::Common::Session::S3Uploader#upload_file`: check if file exists before opening.
|
1099
1259
|
|
1100
1260
|
## [2.0.46] - 2021-12-24
|
1101
1261
|
|
1102
1262
|
### Added
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
-
|
1263
|
+
|
1264
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
1265
|
+
- added counter of retrieved entries (to be able to compare with matched initially scoped results)
|
1266
|
+
- added also counter of failed to retrieve oozes
|
1267
|
+
- added also counter of double ups in search pagination
|
1268
|
+
- counter for updated pages and pages that failed update
|
1269
|
+
- `Eco::API::Session#enviro_name`: to identify in which environment we are running
|
1109
1270
|
|
1110
1271
|
### Changed
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1272
|
+
|
1273
|
+
- upgraded `ecoportal-api-v2` dependency
|
1274
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
|
1275
|
+
- To return `false` if there was request made to the server
|
1276
|
+
- To return `Reponse` if there was request made to the server
|
1115
1277
|
|
1116
1278
|
### Fixed
|
1117
|
-
|
1118
|
-
|
1119
|
-
- `
|
1120
|
-
|
1121
|
-
-
|
1122
|
-
|
1123
|
-
|
1279
|
+
|
1280
|
+
- Changed the `workflow` in
|
1281
|
+
- `on(:end)` to do not recache people if there were no `:sync` or `:transform` cases
|
1282
|
+
- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase#update_ooze`
|
1283
|
+
- It's parent had parameter (it as a child should so)
|
1284
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase#process_ooze`
|
1285
|
+
- It was not retrieving the `ooze` unless explicitly passed as parameter
|
1286
|
+
- This did not play well with child implementations that expect it to retrieve it based on `ooze_id` cli argument
|
1124
1287
|
|
1125
1288
|
## [2.0.45] - 2021-12-15
|
1126
1289
|
|
1127
1290
|
### Added
|
1128
|
-
|
1291
|
+
|
1292
|
+
- `Eco::API::UseCases::OozeSamples::RegisterExportCase`
|
1129
1293
|
|
1130
1294
|
### Changed
|
1131
|
-
|
1132
|
-
|
1295
|
+
|
1296
|
+
- Upgrade `ecoportal-api` dependency
|
1297
|
+
- Upgrade `ecoportal-api-v2` dependency
|
1133
1298
|
|
1134
1299
|
## [2.0.44] - 2021-11-25
|
1135
1300
|
|
1136
1301
|
### Changed
|
1137
|
-
|
1302
|
+
|
1303
|
+
- Upgrade `ecoportal-api` dependency
|
1138
1304
|
|
1139
1305
|
## [2.0.43] - 2021-11-25
|
1140
1306
|
|
1141
1307
|
### Added
|
1142
|
-
|
1308
|
+
|
1309
|
+
- `Eco::API::Session::Batch::Job` added better **logging**
|
1143
1310
|
|
1144
1311
|
### Changed
|
1145
|
-
|
1146
|
-
|
1312
|
+
|
1313
|
+
- `Eco::API::Session::Batch` added **resilience** and **recovery** to connection errors
|
1314
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess` changed logging from `warn` to `info`.
|
1147
1315
|
|
1148
1316
|
## [2.0.42] - 2021-10-30
|
1149
1317
|
|
1150
1318
|
### Added
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1160
|
-
-
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1164
|
-
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
-
|
1168
|
-
|
1169
|
-
-
|
1170
|
-
|
1171
|
-
|
1172
|
-
|
1173
|
-
|
1174
|
-
|
1175
|
-
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1319
|
+
|
1320
|
+
- `eco/api/organization/presets_values.json` added abilities:
|
1321
|
+
- `visitor_management`
|
1322
|
+
- `broadcast_notifications`
|
1323
|
+
- `cross_register_reporting`
|
1324
|
+
- Due to dev pipeline, the `ecoportal-api` version `0.8.4` hasn't been released
|
1325
|
+
- This part of the current `eco-helpers` version depends on that gem version (to be upgraded later)
|
1326
|
+
- Changed the `workflow` in
|
1327
|
+
- `before(:post_launch, :usecases)` => post launch cases are not prevented for **partial** updates
|
1328
|
+
- rectified message
|
1329
|
+
- `run(:post_launch, :usecases)` => missing **people** error will log in `debug` level
|
1330
|
+
- it won't break the script anymore (just prevent a post use case to be run)
|
1331
|
+
- New use case `Eco::API::UseCases::DefaultCases::EntriesToCsv`: to export input entries as `csv`
|
1332
|
+
- invokable via `-entries-to-csv`
|
1333
|
+
- More errors:
|
1334
|
+
- `Eco::API::Error::ExternalIdTaken`
|
1335
|
+
- `Eco::API::Error::InternalServerError`
|
1336
|
+
- **Added** option `processed-people-to-csv file.csv` to export a `csv` with the results of processing people
|
1337
|
+
- This option allows to preview the final data when launching a `dry-run` (`-simulate`)
|
1338
|
+
- **Added** ooze case sample `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
|
1339
|
+
- Allows to retrieve the target entries based on a `csv`
|
1340
|
+
|
1341
|
+
### Changed
|
1342
|
+
|
1343
|
+
- Moved methods of `#person_ref`, `#get_attr` and `#get_row` as **class methods** of `Eco::API::Session::Batch::Feedback`
|
1344
|
+
- `Eco::API::Session::Errors` methods above to use them via `Feedback` class
|
1345
|
+
- `Eco::API::Session::Errors::ErrorCache`: **added** new property `response`
|
1346
|
+
- `#by_type` added parameter `only_entries` to specify the output type
|
1347
|
+
- `#errors` capture the `response` in the generated `ErrorCache` object
|
1348
|
+
|
1349
|
+
### Fixed
|
1350
|
+
|
1351
|
+
- `Eco::API::Session::Config::Workflow#run` to validate **callback** output class
|
1352
|
+
- It should be a `Eco::API::UseCases::BaseIO`
|
1353
|
+
- Prevent **uncreated people** to be present in queues or people refresh (if the server side worked perfectly, this contingency shouldn't be necessary):
|
1354
|
+
- `Eco::API::Session::Batch::Job#processed_queue`
|
1355
|
+
- Sanity-check to exclude people that are **new** and do not have `id` when the current `Job` is **not** of type `:create` (meaning that it was supposed to be created but failed and it probably doesn't exist on server-side)
|
1356
|
+
- This prevents errors when trying to update/delete a person that most probably does not exist on the server.
|
1357
|
+
- `Eco::API::MicroCases#people_refresh`
|
1358
|
+
- Remove from people run-time object those that are **new** that are `dirty` (with pending changes)
|
1188
1359
|
|
1189
1360
|
## [2.0.41] - 2021-10-06
|
1190
1361
|
|
1191
1362
|
### Fixed
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1363
|
+
|
1364
|
+
- `Eco::API::Session::Batch::Job` `backup_update`
|
1365
|
+
- Saved `requests` filename was overlapping due to only batch job type being used
|
1366
|
+
- Now it uses the name of the batch job as well
|
1195
1367
|
|
1196
1368
|
## [2.0.40] - 2021-09-29
|
1197
1369
|
|
1198
1370
|
### Added
|
1199
|
-
|
1371
|
+
|
1372
|
+
- Unique access point for `validation` via core case `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
|
1200
1373
|
|
1201
1374
|
## [2.0.39] - 2021-09-28
|
1202
1375
|
|
1203
1376
|
### Changed
|
1204
|
-
|
1205
|
-
|
1377
|
+
|
1378
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
|
1379
|
+
- Moved helpers from `Eco::API::UseCases::OozeSamples::OozeUpdateCase`
|
1206
1380
|
|
1207
1381
|
### Fixed
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
-
|
1382
|
+
|
1383
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
1384
|
+
- fix launch condition to be `Y`
|
1385
|
+
- fix `search` method call
|
1386
|
+
- Changed the `workflow` to prevent re-cache of people when `people` was not used
|
1212
1387
|
|
1213
1388
|
## [2.0.38] - 2021-09-07
|
1214
1389
|
|
1215
1390
|
### Added
|
1216
|
-
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1391
|
+
|
1392
|
+
- `Eco::CSV::Table` some more helpers to manage input `csv`s
|
1393
|
+
- `#transform_headers` that allows to pass a block to decide the new name
|
1394
|
+
- `#merge_same_header_names` that allows to deal with value of columns with same header name
|
1395
|
+
- `#duplicated_header_names` that identifies repeated header names
|
1220
1396
|
|
1221
1397
|
### Changed
|
1222
|
-
|
1398
|
+
|
1399
|
+
- Changed the `workflow` to prevent re-cache of people when `people` was not used
|
1223
1400
|
|
1224
1401
|
## [2.0.37] - 2021-09-03
|
1225
1402
|
|
1226
1403
|
### Added
|
1404
|
+
|
1227
1405
|
### Changed
|
1228
1406
|
|
1229
1407
|
### Fixed
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
-
|
1234
|
-
|
1408
|
+
|
1409
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
|
1410
|
+
- `#update_ooze` only count dry run for changed pages (to have better feedack)
|
1411
|
+
- stop downloading the people manager
|
1412
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
1413
|
+
- prevent queuing non page objects
|
1235
1414
|
|
1236
1415
|
## [2.0.36] - 2021-08-31
|
1237
1416
|
|
1238
1417
|
### Fixed
|
1239
|
-
|
1240
|
-
|
1418
|
+
|
1419
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
|
1420
|
+
- `#update_ooze` only count dry run for changed pages (to have better feedack)
|
1241
1421
|
|
1242
1422
|
## [2.0.35] - 2021-08-30
|
1243
1423
|
|
1244
1424
|
### Added
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
-
|
1249
|
-
|
1425
|
+
|
1426
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
|
1427
|
+
- `#new_target` optional warning when switching `target`
|
1428
|
+
- `block` that is called when switching target and there were unsaved changes
|
1429
|
+
- `#dirty?` helper method to check if there are changes
|
1430
|
+
- `#before_loading_new_target` hook to allow child classes to anticipate when the `target` is going to change
|
1250
1431
|
|
1251
1432
|
### Changed
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1433
|
+
|
1434
|
+
- `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#object_reference` improved reference text
|
1435
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
1436
|
+
- added resilience when switching target (i.e. from one stage to another stage in same entry)
|
1437
|
+
- added `batch_queue`
|
1256
1438
|
|
1257
1439
|
### Fixed
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1440
|
+
|
1441
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
|
1442
|
+
- actual `batch_size` updates
|
1443
|
+
- actual safe switch of target (i.e. against another stage of same ooze)
|
1261
1444
|
|
1262
1445
|
## [2.0.34] - 2021-08-28
|
1263
1446
|
|
1264
1447
|
### Added
|
1265
|
-
|
1266
|
-
|
1448
|
+
|
1449
|
+
- `Eco::API::UseCases::OozeSamples::OozeBaseCase` refactored ooze base case
|
1450
|
+
- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` new case for full register update
|
1267
1451
|
|
1268
1452
|
### Changed
|
1269
|
-
- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase` made child of `OozeBaseCase` and simplified to its essential
|
1270
|
-
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase` remove unnecessary code and helpers that are now inherited from `OoozeBaseCase`
|
1271
|
-
- `Eco::API::UseCases::OozeSamples::OozeFromDocCase` remove unnecessary code
|
1272
1453
|
|
1454
|
+
- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase` made child of `OozeBaseCase` and simplified to its essential
|
1455
|
+
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase` remove unnecessary code and helpers that are now inherited from `OoozeBaseCase`
|
1456
|
+
- `Eco::API::UseCases::OozeSamples::OozeFromDocCase` remove unnecessary code
|
1273
1457
|
|
1274
1458
|
## [2.0.33] - 2021-08-16
|
1275
1459
|
|
1276
1460
|
### Added
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1461
|
+
|
1462
|
+
- `Eco::API::UseCases::OozeSamples::OozeFromDocCase` use case to abstract form from doc
|
1463
|
+
- `docx` dependency
|
1464
|
+
- A couple more of helpers for the Ooze Cases: `#titleize` & `#normalize_string`
|
1280
1465
|
|
1281
1466
|
### Changed
|
1282
|
-
|
1467
|
+
|
1468
|
+
- `ecoporta-api-v2` **gem** (upgrade dependency)
|
1283
1469
|
|
1284
1470
|
### Fixed
|
1285
|
-
|
1471
|
+
|
1472
|
+
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`, helper `with_stage`
|
1286
1473
|
|
1287
1474
|
## [2.0.32] - 2021-07-14
|
1288
1475
|
|
1289
1476
|
### Fixed
|
1290
|
-
|
1291
|
-
|
1477
|
+
|
1478
|
+
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase` prompting user, fixed typo
|
1479
|
+
- `Eco::API::Session::Batch::Job`: `include-excluded` again... typo.
|
1292
1480
|
|
1293
1481
|
## [2.0.31] - 2021-07-13
|
1294
1482
|
|
1295
1483
|
### Fixed
|
1296
|
-
|
1484
|
+
|
1485
|
+
- `Eco::API::Session::Batch::Job`: `include-excluded` was triggering a type error.
|
1297
1486
|
|
1298
1487
|
## [2.0.30] - 2021-07-08
|
1299
1488
|
|
1300
1489
|
### Added
|
1301
|
-
|
1490
|
+
|
1491
|
+
- `Eco::API::Common::People::DefaultParsers::XLSParser` uses as default the `fields_map.json` to identify the headers.
|
1302
1492
|
|
1303
1493
|
### Fixed
|
1304
|
-
|
1494
|
+
|
1495
|
+
- `Eco::API::Common::People::DefaultParsers::XLSParser` should return all `String` values
|
1305
1496
|
|
1306
1497
|
## [2.0.29] - 2021-07-08
|
1307
1498
|
|
1308
1499
|
### Fixed
|
1309
|
-
|
1310
|
-
|
1500
|
+
|
1501
|
+
- `Eco::API::Common::People::PersonEntryAttributeMapper#details_attrs`
|
1502
|
+
- What a mess this was doing to the `csv` export :/
|
1311
1503
|
|
1312
1504
|
## [2.0.27] - 2021-07-05
|
1313
1505
|
|
1314
1506
|
### Changed
|
1315
|
-
|
1316
|
-
|
1507
|
+
|
1508
|
+
- Parent class `Eco::API::UseCases::DefaultCases::ToCsvCase` shouldn't know header maps necessary for `Eco::API::UseCases::DefaultCases::ToCsvDetailedCase`
|
1509
|
+
- Moved related header maps to `ToCsvDetailedCase`
|
1317
1510
|
|
1318
1511
|
### Fixed
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1512
|
+
|
1513
|
+
- `--help` should work fine now
|
1514
|
+
- Attribute parsers that depended on indirect parser attributes were **not** included
|
1515
|
+
- **changed** a couple of classes
|
1516
|
+
- `Eco::API::Common::People::PersonEntryAttributeMapper`, where methods should receive `data` to re-scope if the data is available (most specifically `#internal_attrs`)
|
1517
|
+
- `Eco::API::Common::People::PersonEntry`, where when setting the final values on `Person`, it should include any internal attribute that is present in the `final_entry` (the result of all the parsing process)
|
1518
|
+
- `Eco::API::Common::People::DefaultParsers::CSVParser`
|
1519
|
+
- indirect attributes that depended on other indirect attributes would show as missing even if they were active
|
1520
|
+
- i.e. `name` depends on `first-name` & `surname`, **AND** `details-name` depends on `name`
|
1327
1521
|
|
1328
1522
|
## [2.0.26] - 2021-06-25
|
1329
1523
|
|
1330
1524
|
### Added
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
-
|
1525
|
+
|
1526
|
+
- `Eco::API::MicroCases#set_supervisor`, tries to keep in sync the `#subordinates` **count** of previous and new supervisor
|
1527
|
+
- new **option** `-run-postlaunch` to run post launch cases, even when we run in `dry-run` mode
|
1528
|
+
- when in `dry-run` it will **not** reload the people base of the session
|
1529
|
+
- new **option** to append **new** entries to the `People` object
|
1530
|
+
- **invokable** on **cli** via `-append-starters` (`{people: {append_created: true}}`)
|
1531
|
+
- the following use cases include this option:
|
1532
|
+
- `Eco::API::UseCases::DefaultCases::UpsertCase`
|
1533
|
+
- `Eco::API::UseCases::DefaultCases::HrisCase`
|
1534
|
+
- `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
|
1535
|
+
- `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
|
1536
|
+
- `Eco::API::UseCases::DefaultCases::CreateCase`
|
1537
|
+
- the option involves a new keyed argument `:append_created` in a couple of `MicroCases`
|
1538
|
+
- `Eco::API::MicroCases#with_each`: where internally the search is performed against a copy of the `People` object.
|
1539
|
+
- `Eco::API::MicroCases#with_each_starter`
|
1540
|
+
- when `--help` is invoked option to filter the shown `-options`, `-usecases` and `filters` by a word contained in the option.
|
1541
|
+
- **added** `csv` **header checks** for feed files, which entailed some changes:
|
1542
|
+
- `Eco::API::Common::Loaders::Parser`
|
1543
|
+
- new **subclass** `RequiredAttrs`, creatred when calling `.active_when_all` and `.active_when_any`
|
1544
|
+
- **dependency** injection via `.dependencies` as `{required_attrs: RequiredAttrs}`
|
1545
|
+
- **added** `Eco::API::Common::People::PersonParser#required_attrs` to offer all the `RequiredAttrs`, where defined
|
1546
|
+
- the **new method** `#required_attrs` to expose the injected `RequiredAttrs`
|
1547
|
+
- **new** keyed argument `check_headers:` in `Eco::API::Common::People::EntryFactory#entries`
|
1548
|
+
- subsequent changes to accommodate the new param in `Eco::API::Session#csv_entries`
|
1549
|
+
- `eco/cli/config/default/input` calls using this param to `true`
|
1550
|
+
- `Eco::API::Common::People::DefaultParsers::CSVParser`
|
1551
|
+
- added option `check_headers` via `dependencies` that enables the headers check
|
1552
|
+
- it will now offer detailed warning messages on what can happen with the **missing headers**
|
1553
|
+
- it will also list the **unknown header** names
|
1554
|
+
|
1555
|
+
### Changed
|
1556
|
+
|
1557
|
+
- `Eco::API::MicroCases#set_supervisor`, the order of the 2 first parameters
|
1558
|
+
- `Eco::API::Organization::People`: internally `@by_id` cache Hash included `nil` values => **not** any more.
|
1559
|
+
- removed **unused** methods on **patches** for `Ecoportal::API::V1::Person` and `Ecoportal::API::Internal::Person`
|
1560
|
+
- specifically `#reset_account!` and `#consolidate_account!` as well as `#reset_details!` and `#consolidate_details!`
|
1561
|
+
- internal changes in `Eco::API::Common::People::Entries#entry`
|
1562
|
+
- **added** option to trigger `MultipleSearchResults` StandardError when multiple candiates are found.
|
1563
|
+
- **removed** `nil` values from the `caches` (the Hashes to optimize the search)
|
1564
|
+
- slight structure refactor of `Eco::API::Common::Loaders`
|
1565
|
+
- moved base class to subfolder/namespace
|
1566
|
+
- decoupled pure `Loader` logics to `Loaders::Base` and use case inheriance chain loader to `Loaders::CaseBase`
|
1567
|
+
- `Eco::API::Session::BatchJob` the `post_launch`:
|
1568
|
+
- sets the `id` to the `person` if it was **created** successfully
|
1569
|
+
- when in `dry-run` it fakes the `id` with a counter
|
1570
|
+
- `Eco::API::Common::People::PersonFactory` gets `subordinates` initialized to `0` (when **creating** a `new` person)
|
1375
1571
|
|
1376
1572
|
## [2.0.25] - 2021-06-23
|
1377
1573
|
|
1378
1574
|
### Added
|
1379
|
-
|
1575
|
+
|
1576
|
+
- `Eco::API::UseCases::DefaultCases::HrisCase` validation error to require `-schema-id` command line when there are people in schemas other than the active one
|
1380
1577
|
|
1381
1578
|
### Changed
|
1382
|
-
|
1383
|
-
|
1579
|
+
|
1580
|
+
- `Eco::API::Session::Batch::Job`
|
1581
|
+
- for backwards compatibility `-include-only-excluded` should bring an options structure compatible with `-include-excluded`
|
1384
1582
|
|
1385
1583
|
### Fixed
|
1386
|
-
|
1584
|
+
|
1585
|
+
- `Eco::API::Session::Batch` fixed typo that would prevent `prompt_user` to work
|
1387
1586
|
|
1388
1587
|
## [2.0.24] - 2021-06-22
|
1389
1588
|
|
1390
1589
|
### Added
|
1391
|
-
|
1392
|
-
|
1590
|
+
|
1591
|
+
- `Eco::API::Session::Batch::Job` made **native** `-include-excluded`
|
1592
|
+
- also added new option `-include-only-excluded` to be able to only target people HRIS excluded
|
1393
1593
|
|
1394
1594
|
## [2.0.23] - 2021-06-22
|
1395
1595
|
|
1396
1596
|
### Added
|
1397
|
-
|
1597
|
+
|
1598
|
+
- `Eco::API::Session::Batch::Job` **new** option (`-save-requests`) to save requests even if in `dry-run` (`-simulate`)
|
1599
|
+
|
1398
1600
|
### Changed
|
1399
|
-
|
1400
|
-
|
1601
|
+
|
1602
|
+
- `Eco::API::Session::Batch::Job` new people won't create updates unless they have either details or account
|
1603
|
+
- because that entry is not supposed to be created unless has account or details
|
1401
1604
|
|
1402
1605
|
## [2.0.22] - 2021-06-18
|
1403
1606
|
|
1404
1607
|
### Added
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
-
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1608
|
+
|
1609
|
+
- exposed `logger` in `BaseLoader` and
|
1610
|
+
- support for multiple input files
|
1611
|
+
- `Eco::API::Common::People::EntryFactory#entries`:
|
1612
|
+
- refactored to allow multiple input files parsing
|
1613
|
+
- moreover to `idx`, hash entries will get their `source_file`
|
1614
|
+
- Input callback at `lib/eco/cli/config/default/input` refactored format detection and enabled folder input
|
1615
|
+
- `SCR.get_file` language extended to also mention folder (not just file)
|
1616
|
+
- support for `.xls` and `.xlsx` files
|
1617
|
+
- `Eco::API::Common::People::DefaultParsers::XLSParser` the Excel files **parser**
|
1618
|
+
- `Eco::API::Common::People::PersonParser` added `:xls` as an accepted format
|
1619
|
+
- `Eco::API::Session#fields_mapper` exposed mapper through a method to allow **headers detection**
|
1620
|
+
- The external names of the fields are the column headers of the input file
|
1621
|
+
- `Eco::API::UseCases::BaseIO` when arguments validation rails, now it raises with specific `MissingParameter` error
|
1418
1622
|
|
1419
1623
|
### Changed
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
-
|
1624
|
+
|
1625
|
+
- dry out `BaseLoader` (only session is set as instance variable)
|
1626
|
+
- removed `creek` **dependency** (it was not used anywhere in the gem)
|
1627
|
+
- we just kept `roo` and `roo-xls`
|
1628
|
+
- custom `Error` classes now all inherit from `StandardError` (rather than `Exception`)
|
1424
1629
|
|
1425
1630
|
## [2.0.21] - 2021-06-04
|
1426
1631
|
|
1427
1632
|
### Added
|
1428
|
-
|
1429
|
-
|
1430
|
-
-
|
1633
|
+
|
1634
|
+
- `Eco::CSV::Table`, support to create the table out of an `Array<Hash>`
|
1635
|
+
- This opens new methods to transform input Excel file to this data structure and unify input data structures.
|
1636
|
+
- **new** use case `Eco::API::UseCases::DefaultCases::CleanUnknownTags` invokable via `clean-unknown-tags`
|
1431
1637
|
|
1432
1638
|
### Changed
|
1433
|
-
|
1639
|
+
|
1640
|
+
- `Eco::API::Common::People::EntryFactory` slight **refactor** to boost better support for multiple input formats
|
1434
1641
|
|
1435
1642
|
## [2.0.20] - 2021-05-31
|
1436
1643
|
|
1437
1644
|
### Added
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1645
|
+
|
1646
|
+
- **dependencies** to `creek`, `roo` and `roo-xls`
|
1647
|
+
- **dependencies** to `hashdiff`
|
1648
|
+
- `Eco::API::Session#parse_attribute` => added missing parameter `deps:`
|
1649
|
+
- new option `-stdout [file]` to redirect the output to a file
|
1650
|
+
- `Eco::CSV::Table`, **added** more helper methods `#group_by`, `#transform_values`, `#slice`, `#slice_columns`, `#delete_column`
|
1651
|
+
- `Eco::API::Organization::TagTree` **added** more helper methods: `top?`, `tag=`, `as_json`, `dup`, `diff`
|
1444
1652
|
|
1445
1653
|
### Fixed
|
1446
|
-
|
1654
|
+
|
1655
|
+
- `Exception` patch: when `SystemStackError` there is not `backtrace` :/
|
1447
1656
|
|
1448
1657
|
## [2.0.19] - 2021-05-31
|
1449
1658
|
|
1450
1659
|
### Added
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1660
|
+
|
1661
|
+
- Better error message for people searches & **offer** to select among the candidates:
|
1662
|
+
- `Eco::API::Organization::People::MultipleSearchResults`, triggered from `Eco::API::Organization::People#find`
|
1663
|
+
- `Eco::API::MicroCases#with_each` will offer the selection of candidates
|
1454
1664
|
|
1455
1665
|
### Changed
|
1456
|
-
|
1666
|
+
|
1667
|
+
- **renamed** and repurposed `Eco::API::Organization::PeopleAnalytics` to `PeopleSimilarity`
|
1457
1668
|
|
1458
1669
|
### Fixed
|
1459
|
-
|
1460
|
-
|
1670
|
+
|
1671
|
+
- `Eco::Data::FuzzyMatch` adjustments for configuration propagation + some fixes
|
1672
|
+
- Command option `-entries-from` can still be useful when used to obtain `-get-partial` of people base for `:export` use cases !!
|
1461
1673
|
|
1462
1674
|
## [2.0.18] - 2021-05-25
|
1463
1675
|
|
1464
1676
|
### Added
|
1465
|
-
|
1466
|
-
|
1677
|
+
|
1678
|
+
- **`-one-off`** option to not having to type the `-api-key` every time you launch one-off scripts
|
1679
|
+
- `-api-key` will store the key to the `./.env_one_off` file (supports update and multi-environment)
|
1467
1680
|
|
1468
1681
|
### Fixed
|
1469
|
-
|
1470
|
-
|
1682
|
+
|
1683
|
+
- patched `Exception#patch_full_message` to do not enter into a cyclic error rescue
|
1684
|
+
- also rescue on `workflow.rescue`
|
1471
1685
|
|
1472
1686
|
## [2.0.17] - 2021-05-25
|
1473
1687
|
|
1474
1688
|
Specific changes due to eP **release `1.5.9.70`** (_Policy Group Abilities_)
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1478
|
-
|
1479
|
-
|
1480
|
-
|
1481
|
-
|
1482
|
-
-
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
-
|
1488
|
-
- `API::
|
1489
|
-
|
1490
|
-
|
1491
|
-
-
|
1492
|
-
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
- `Eco::API::
|
1505
|
-
-
|
1506
|
-
- `Eco::API::
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
-
|
1513
|
-
|
1514
|
-
- **
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
|
1689
|
+
|
1690
|
+
- And some improvements as well as new tools
|
1691
|
+
|
1692
|
+
### Added
|
1693
|
+
|
1694
|
+
- `Eco::API::Organization::PresetsFactory` added integrity validation for `person_abilities` ability
|
1695
|
+
- `Eco::API::Organization::PresetsFactory`
|
1696
|
+
- `#validate`: returns an `Array` with all the errors that a `permissions_custom` has
|
1697
|
+
- `#valid?`: checks if a `permissions_custom` is valid
|
1698
|
+
- `Eco::API::Organization::PeopleAnalytics`: a **helper** class to identify things in the People Manager and provide mitigation action methods to resolve them.
|
1699
|
+
- Added dependencies to `fuzzy_match`, `amatch` and `jaro_winkler` **gems**
|
1700
|
+
- `Eco::Data::FuzzyMatch` with string match helpers and a set of home-made generic libs.
|
1701
|
+
- `Eco::API::Organization::PeopleAnalytics` to launch analysis on the People Manager
|
1702
|
+
- `Eco::API::UseCases::DefaultCases::AnalysePeople` invokable via `-analyse-people`
|
1703
|
+
- **new** -> a way to define a hierarchy of options (at least of 1 Level)
|
1704
|
+
- `API::CLI::Config::OptionsSet`
|
1705
|
+
- `API::CLI::Config::UseCases::CaseConfig`
|
1706
|
+
- Integrated the new feature to the `--help` command and methods.
|
1707
|
+
- **Usecase** `Eco::API::UseCases::DefaultCases::ResetLandingPageCase` added parameter to specify `-page-id`
|
1708
|
+
- `Eco::API::Common::BaseLoader` new shortcut methods `#micro` (_MicroCases_), `#session` and `#config`
|
1709
|
+
- At this stage of the execution workflow it uses `ASSETS.session`
|
1710
|
+
- **Important note**: when the `#parser` or `#serializer` are called the `ASSETS.session` might already be linked to the specific invoked environment
|
1711
|
+
- New method helpers in `Ecoporta::API::MicroCases`
|
1712
|
+
- `preserve_filter_tags`, `preserve_default_tag` and `preserve_policy_groups`
|
1713
|
+
|
1714
|
+
### Changed
|
1715
|
+
|
1716
|
+
- upgraded dependency on `ecoportal-api` and `ecoportal-api-v2`
|
1717
|
+
- **removed** `Eco::API::MicroCases#refresh_abilities`
|
1718
|
+
- `Eco::API::MicroCases#set_account` **removed** `refresh_abilities`
|
1719
|
+
- `Eco::API::MicroCases#append_usergroups` **removed** `refresh_abilities`
|
1720
|
+
- **removed** _usecase_ `Eco::API::UseCases::DefaultCases::RefreshAbilitiesCase` (`-refresh-abilities`)
|
1721
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess`: **removed** `refresh_abilities`
|
1722
|
+
- **removed** `Eco::API::Session#new_preset`
|
1723
|
+
- `Eco::API::Organization::PresetsFactory`
|
1724
|
+
- **removed** `rspecs`
|
1725
|
+
- `.new`: **removed** parameters `presets_custom` & `presets_map`
|
1726
|
+
- **removed** constants `DEFAULT_CUSTOM`, and `DEFAULT_MAP`
|
1727
|
+
- **removed** private methods `#presets_custom` and `#presets_map`
|
1728
|
+
- **changed** private method `#compile` receives directly an array of `permissions_custom`
|
1729
|
+
- `Eco::API::Session::Config` **removed** methods `#presets_custom=` & `presets_map=`
|
1730
|
+
- `Eco::API::Session::Config::People` **removed** methods `#presets_custom=`, `#presets_map=`,`#presets_custom` & `#presets_map`
|
1731
|
+
- **removed** `eco/api/organization/presets_reference.json`
|
1732
|
+
- **moved** case-specific options to only be active when the user case is previously invoked in the command line.
|
1733
|
+
|
1734
|
+
### Fixed
|
1735
|
+
|
1736
|
+
- **handle** `Ecoportal::API:Errors::TimeOut` in `Eco::API::Session::Batch` by offering to retry.
|
1519
1737
|
|
1520
1738
|
## [2.0.16] - 2021-05-04
|
1521
1739
|
|
1522
1740
|
### Added
|
1523
|
-
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1741
|
+
|
1742
|
+
- Use case `Eco::API::UseCases::DefaultCases::SupersCyclicIdentify`, invokable via `-identify-cyclic-supers`
|
1743
|
+
- Use case `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`, invokable via `-abstract-policygroup-abilities`
|
1744
|
+
- Option to run `one-off` scripts, without org configurations:
|
1745
|
+
1. `-api-key INTERNAL_API_KEY`
|
1746
|
+
2. `-enviro [live|pre.dev]`
|
1747
|
+
3. `-org NAME_OF_ORG`
|
1529
1748
|
|
1530
1749
|
## [2.0.15] - 2021-04-29
|
1531
1750
|
|
1532
1751
|
### Added
|
1533
|
-
|
1752
|
+
|
1753
|
+
- Use case `Eco::API::UseCases::DefaultCases::SupersHierarchy`, invokable via `-supers-hierarchy`
|
1754
|
+
|
1534
1755
|
### Fixed
|
1535
|
-
|
1756
|
+
|
1757
|
+
- `eco/cli/config/default/workflow.rb` prevent `rescue` looping
|
1536
1758
|
|
1537
1759
|
## [2.0.14] - 2021-04-15
|
1538
1760
|
|
1539
1761
|
### Added
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1762
|
+
|
1763
|
+
- `Eco::API::UseCases::DefaultCases::ToCsvCase` added option `-internal-names` to avoid overriding data on export
|
1764
|
+
- `Eco::API::Common::People::PersonEntry#mapped_entry` exposed method for raw `csv` generation
|
1765
|
+
- `Eco::API::Organization::PresetsFactory` added integrity validation for `person_*` abilities
|
1766
|
+
- `Eco::API::Session::Batch::Job` more debug info on erron handlers
|
1544
1767
|
|
1545
1768
|
### Fixed
|
1546
|
-
|
1769
|
+
|
1770
|
+
- `Eco::API::Error.get_type` was almost always matching `Eco::API::Error::Unclassified` -> fixed
|
1547
1771
|
|
1548
1772
|
## [2.0.13] - 2021-03-31
|
1549
1773
|
|
1550
1774
|
### Added
|
1551
|
-
|
1552
|
-
|
1775
|
+
|
1776
|
+
- Stats on the `Eco::API::Session::Batch`
|
1777
|
+
- Allow to inherit and re-use the `Eco::API::UseCases::DefaultCase::HrisCase`
|
1553
1778
|
|
1554
1779
|
### Fixed
|
1555
|
-
|
1780
|
+
|
1781
|
+
- Ensure auto-loading for `Eco::API::UseCases`
|
1556
1782
|
|
1557
1783
|
## [2.0.12] - 2021-03-29
|
1558
1784
|
|
1559
1785
|
### Changed
|
1560
|
-
- `Eco::CLI#run` it does include any defined states on the workflow
|
1561
1786
|
|
1787
|
+
- `Eco::CLI#run` it does include any defined states on the workflow
|
1562
1788
|
|
1563
1789
|
## [2.0.11] - 2021-03-29
|
1564
1790
|
|
1565
1791
|
### Fixed
|
1566
|
-
|
1792
|
+
|
1793
|
+
- `Eco::API::Session::Batch:Errors#errors` changed `Array#filter` call to `Array#select` call
|
1567
1794
|
|
1568
1795
|
## [2.0.10] - 2021-03-26
|
1569
1796
|
|
1570
1797
|
### Added
|
1571
|
-
|
1572
|
-
|
1573
|
-
-
|
1574
|
-
|
1575
|
-
|
1798
|
+
|
1799
|
+
- `Eco::API::Common::People::PersonParser`
|
1800
|
+
- `#defined_attrs`: list of all attribute defined parsers (regardless they belong to the model)
|
1801
|
+
- `Eco::API::Organization::TagTree` methods
|
1802
|
+
- `#total_depth` to know the total depth of a tree
|
1803
|
+
- `#flat?` to know if the tagtree has only 1 level
|
1576
1804
|
|
1577
1805
|
### Changed
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
|
1806
|
+
|
1807
|
+
- `Eco::API::Common::People::PersonParser`
|
1808
|
+
- Renamed `#all_attrs` to `#all_model_attrs`
|
1809
|
+
- Ranamed `#defined_attrs` to `#defined_model_attrs`
|
1810
|
+
- Ranamed `#undefined_attrs` to `#undefined_model_attrs`
|
1582
1811
|
|
1583
1812
|
## [2.0.9] - 2021-03-19
|
1584
1813
|
|
1585
1814
|
### Changed
|
1586
|
-
|
1815
|
+
|
1816
|
+
- `Eco::API::Session::Batch:Errors#person_ref` moved to the public method
|
1587
1817
|
|
1588
1818
|
## [2.0.8] - 2021-03-09
|
1589
1819
|
|
1590
1820
|
### Fixed
|
1591
|
-
|
1821
|
+
|
1822
|
+
- `Ecoportal::API::V1::Person#identity` adjust behavior
|
1592
1823
|
|
1593
1824
|
## [2.0.7] - 2021-03-09
|
1594
1825
|
|
1595
1826
|
### Fixed
|
1596
|
-
|
1597
|
-
|
1827
|
+
|
1828
|
+
- `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
|
1829
|
+
- this fix makes `#launch` method to iterate until there are no pending
|
1598
1830
|
|
1599
1831
|
## [2.0.6] - 2021-03-08
|
1600
1832
|
|
1601
1833
|
### Changed
|
1602
|
-
|
1834
|
+
|
1835
|
+
- `Eco::API::Session::Batch:Errors` moved some methods to be private
|
1836
|
+
|
1603
1837
|
### Fixed
|
1604
|
-
|
1838
|
+
|
1839
|
+
- `Eco::API::Error` should inherit from `StandardError`, rather than from `Exception`
|
1605
1840
|
|
1606
1841
|
## [2.0.5] - 2021-02-24
|
1607
1842
|
|
1608
1843
|
### Fixed
|
1609
|
-
|
1610
|
-
|
1844
|
+
|
1845
|
+
- `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
|
1846
|
+
- as `Array#filter` was introduced in ruby `2.5.5`
|
1611
1847
|
|
1612
1848
|
## [2.0.4] - 2021-02-23
|
1613
1849
|
|
1614
1850
|
### Changed
|
1615
|
-
|
1851
|
+
|
1852
|
+
- `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
|
1616
1853
|
|
1617
1854
|
## [2.0.3] - 2021-02-23
|
1618
1855
|
|
1619
1856
|
### Added
|
1620
|
-
|
1857
|
+
|
1858
|
+
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
|
1621
1859
|
|
1622
1860
|
### Fixed
|
1623
|
-
|
1861
|
+
|
1862
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
|
1624
1863
|
|
1625
1864
|
## [2.0.2] - 2021-02-22
|
1626
1865
|
|
1627
1866
|
### Changed
|
1628
|
-
|
1867
|
+
|
1868
|
+
- upgraded dependencies with `ecoportal-api`
|
1629
1869
|
|
1630
1870
|
## [2.0.1] - 2021-02-22
|
1631
1871
|
|
1632
1872
|
### Changed
|
1633
|
-
|
1873
|
+
|
1874
|
+
- upgraded dependencies with `ecoportal-api-oozes` to `ecoportal-api-v2`
|
1634
1875
|
|
1635
1876
|
## [1.5.15] - 2021-02-17
|
1636
1877
|
|
1637
1878
|
### Added
|
1638
|
-
|
1639
|
-
|
1640
|
-
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1879
|
+
|
1880
|
+
- `Eco::API::Common::ClassHelpers` added support for class methods inheritance
|
1881
|
+
- this is key to be able to define usecase models to inherit from
|
1882
|
+
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added this sample to inherit from (simplifying use cases code)
|
1883
|
+
- `Eco::API::Common::ClassHelpers` added inheritable attribute values
|
1884
|
+
- added benchmarking to people loaders:
|
1885
|
+
- `Eco::API::MicroCases#people_load`
|
1886
|
+
- `Eco::API::MicroCases#people_cache`
|
1887
|
+
- `Eco::API::MicroCases#people_search`
|
1888
|
+
- `Eco::API::MicroCases#refresh`
|
1647
1889
|
|
1648
1890
|
### Fixed
|
1649
|
-
|
1891
|
+
|
1892
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess` typos in default api policy
|
1650
1893
|
|
1651
1894
|
## [1.5.14] - 2021-02-05
|
1652
1895
|
|
1653
1896
|
### Added
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
- `Eco::API::Session::
|
1897
|
+
|
1898
|
+
- `Eco::API::Policies::DefaultPolicies` policies that are run always (after the custom policies)
|
1899
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess`:
|
1900
|
+
- remove account if there's no `email`
|
1901
|
+
- provision min user level to those with account (if no usergroup and no abilities)
|
1902
|
+
- `Eco::API::Session#policies` which merges the default policies to be added/run after the custom policies
|
1903
|
+
- `Eco::API::Common::Session::Logger`: add caching of logs
|
1904
|
+
- `Eco::API::Common::Session::Logger::Cache` new class to manage cached logs
|
1905
|
+
- `Eco::API::Common::Session::Logger::Log` new class to have a trace on logs
|
1906
|
+
- `Eco::API::Session::Batch::Job#summary` added subjobs (error handlers) summary
|
1663
1907
|
|
1664
1908
|
### Changed
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1909
|
+
|
1910
|
+
- `Eco::API::Session::Batch::Job#launch` it will also run the default api policies before feedback and query launch
|
1911
|
+
- `Eco::API::Common::People::PersonEntry` add error log when wrong email error is detected
|
1912
|
+
- previously it would have crashed
|
1668
1913
|
|
1669
1914
|
## [1.5.13] - 2021-02-01
|
1670
1915
|
|
1671
1916
|
### Changed
|
1672
|
-
|
1917
|
+
|
1918
|
+
- upgraded dependency with `ecoportal-api-oozes`
|
1673
1919
|
|
1674
1920
|
### Fixed
|
1675
|
-
|
1676
|
-
|
1921
|
+
|
1922
|
+
- `Eco::API::Session::Config::Api` was not including the correct `host`
|
1923
|
+
- this could have launched an `api` request to `live.ecoportal.com` when targeting `pre.dev`
|
1677
1924
|
|
1678
1925
|
## [1.5.12] - 2021-02-01
|
1679
1926
|
|
1680
1927
|
### Added
|
1681
|
-
|
1928
|
+
|
1929
|
+
- `Eco::API::Common::People::DefaultParsers::CSVParser` when cell content is `Null`, capture `nil` value.
|
1682
1930
|
|
1683
1931
|
### Changed
|
1684
|
-
|
1932
|
+
|
1933
|
+
- upgraded `ecoportal-api` dependency
|
1685
1934
|
|
1686
1935
|
## [1.5.11] - 2021-01-25
|
1687
1936
|
|
1688
1937
|
### Added
|
1689
|
-
|
1938
|
+
|
1939
|
+
- `Eco::API::Organization::TagTree#subtag?` to check if the tag is in any subtree.
|
1690
1940
|
|
1691
1941
|
### Fixed
|
1692
|
-
|
1942
|
+
|
1943
|
+
- `Eco::API::MicroCases#set_supervisor` shouldn't set it if the entry does not have it.
|
1693
1944
|
|
1694
1945
|
## [1.5.10] - 2021-01-19
|
1695
1946
|
|
1696
1947
|
### Fixed
|
1697
|
-
|
1948
|
+
|
1949
|
+
- `Eco::API::Session::Batch::Errors#print` show the row number of the input data.
|
1698
1950
|
|
1699
1951
|
## [1.5.9] - 2021-01-08
|
1700
1952
|
|
1701
1953
|
### Added
|
1702
|
-
|
1954
|
+
|
1955
|
+
- `Eco::API::Organization::TagTree#subtags` to get all the tags but those of the highest level.
|
1703
1956
|
|
1704
1957
|
## [1.5.8] - 2021-01-05
|
1705
1958
|
|
1706
1959
|
### Fixed
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1960
|
+
|
1961
|
+
- `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
|
1962
|
+
- `Eco::API::Session#new_job` should include a `&block` parameter.
|
1963
|
+
- `Eco::API::UseCases::DefaultCases::RefreshCase`: fixed typo
|
1710
1964
|
|
1711
1965
|
## [1.5.7] - 2020-12-17
|
1712
1966
|
|
1713
1967
|
### Fixed
|
1714
|
-
|
1968
|
+
|
1969
|
+
- `Eco::API::Sesssion#parse_attribute` was not using phase argument
|
1715
1970
|
|
1716
1971
|
## [1.5.6] - 2020-12-04
|
1717
1972
|
|
1718
1973
|
### Fixed
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1974
|
+
|
1975
|
+
- `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
|
1976
|
+
- fixed some back-end errors when chaining usecases
|
1977
|
+
- `Eco::API::UseCases::DefaultCases::OrgDataConvertCase` improved
|
1722
1978
|
|
1723
1979
|
## [1.5.5] - 2020-12-03
|
1724
1980
|
|
1725
1981
|
### Fixed
|
1726
|
-
|
1982
|
+
|
1983
|
+
- rubies previous to `2.5` do not have `yield_self`
|
1727
1984
|
|
1728
1985
|
## [1.5.4] - 2020-12-02
|
1729
1986
|
|
1730
1987
|
### Added
|
1731
|
-
|
1988
|
+
|
1989
|
+
- update `ecoportal-api` dependency
|
1990
|
+
|
1732
1991
|
### Fixed
|
1733
|
-
|
1992
|
+
|
1993
|
+
- `Eco::API::MicroCases#people_refresh` typo
|
1734
1994
|
|
1735
1995
|
## [1.5.3] - 2020-11-30
|
1736
1996
|
|
1737
1997
|
### Fixed
|
1738
|
-
|
1739
|
-
|
1998
|
+
|
1999
|
+
- `Eco::API::Session::Batch::RequestStats#blanked_value?` better blank detection
|
2000
|
+
- `Eco::API::MicroCases#with_each_starter` rectified typo
|
1740
2001
|
|
1741
2002
|
## [1.5.2] - 2020-11-26
|
1742
2003
|
|
1743
2004
|
### Added
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
-
|
1753
|
-
|
1754
|
-
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
-
|
1773
|
-
|
1774
|
-
|
1775
|
-
-
|
1776
|
-
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1790
|
-
|
1791
|
-
|
1792
|
-
|
1793
|
-
|
1794
|
-
|
1795
|
-
|
1796
|
-
-
|
1797
|
-
|
1798
|
-
|
1799
|
-
|
1800
|
-
|
1801
|
-
|
1802
|
-
|
1803
|
-
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
-
|
1809
|
-
-
|
1810
|
-
-
|
1811
|
-
|
1812
|
-
|
1813
|
-
|
1814
|
-
|
1815
|
-
|
1816
|
-
-
|
1817
|
-
|
1818
|
-
- `
|
1819
|
-
|
2005
|
+
|
2006
|
+
- **custom** usecases, policies and error handlers can now be **declared within its own class**
|
2007
|
+
- helper classes to inherit from: `Eco::API::Custom::UseCase`, `Eco::API::Custom::Policy`, `Eco::API::Custom::ErrorHandler` and `Eco::API::Custom::Parser`
|
2008
|
+
- please, notice that you should create new classes under the following namespaces
|
2009
|
+
- `Custom::UseCase`: custom use cases
|
2010
|
+
- `Custom::Policy`: custom policy
|
2011
|
+
- `Custom::ErrorHandler`: custom error handler
|
2012
|
+
- `Custom::Parser`: custom parser
|
2013
|
+
- this also allows to inherit from existing defaults and models (models to come)
|
2014
|
+
- implemented first **microcases** (evaluation stage): to be able to centralize common code between use cases
|
2015
|
+
- see `Eco::API::MicroCases` class
|
2016
|
+
- **command line** added `--help` to list all `usecases`, `options` and `filters`
|
2017
|
+
- `--help -options` will print a documented overview of options
|
2018
|
+
- `--help -filters` will print a documented overview of people filters
|
2019
|
+
- `--help -input-filters` will print a documented overview of input data filters
|
2020
|
+
- `--help -usecases` will print a documented overview of the usecases
|
2021
|
+
- **command line** filters for `filter_tags` on:
|
2022
|
+
- input data: `-input-filter-tags-all`, `input-filter-tags-any`, `input-filter-tags-tree`
|
2023
|
+
- people data: `-filter-tags-all`, `-filter-tags-any`, `-filter-tags-tree`
|
2024
|
+
- **batch stats** & **batch policy**
|
2025
|
+
- `Eco::API::Session::Batch::RequestStats`: included additional guide on what has been **blanked**.
|
2026
|
+
- now on you should see how many have been blanked, i.e.: `blanked_email`, `blanked_filter_tags`, `blanked_policy_group_ids`, `blanked_supervisor_id`
|
2027
|
+
- Moreover, the new `blanked_*` properties are available for `config.batch_policies` provided that you can limit the `max` and/or `min` expected on each batch **type**
|
2028
|
+
- **csv** generation (`-people-to-csv` and `-people-to-csv -detailed`):
|
2029
|
+
- now includes `"Has Account?"` new column
|
2030
|
+
- removed the useless `send_invites` column
|
2031
|
+
- **errors** improved error message when setting values to a `person` from an `entry`:
|
2032
|
+
- it now shows the **row number**
|
2033
|
+
- it now gives the specific value that failed in case of `Exception`
|
2034
|
+
- `Eco::API::Common::DefaultPasers::LoginProvidersParser`: made native
|
2035
|
+
- `Eco::API::UseCases::DefaultUsecases::TransferAccountCase`: added `-transer-account-from` usecase
|
2036
|
+
- to allow actually transfer an account/user from one person to another in the org
|
2037
|
+
- `Ecoportal::API::V1::Person#entry`: method to be able to have a reference to the update/creation input data entry.
|
2038
|
+
- new filter methods for `Eco::API::Common::People::Entries` and `Eco::API::Organization::People`
|
2039
|
+
- `#filter_tags_any` & `#filter_tags_all`: those that have any or all the target tags
|
2040
|
+
- `#policy_group_ids_any` & `#policy_groups_all`: those that have any or all the target policy groups
|
2041
|
+
|
2042
|
+
### Changed
|
2043
|
+
|
2044
|
+
- updated dependency on `ecoportal-api` gem
|
2045
|
+
- **command line** some changes:
|
2046
|
+
- renamed `-refresh-presets` to `-refresh-abilities`
|
2047
|
+
- renamed `-recover-db` to `restore-db`
|
2048
|
+
- removed `Eco::API::Session::Tasks`: all the helpers have been moved and documented as part of `Eco::API::MicroCases` (some have been renamed)
|
2049
|
+
- as a consequence, removed method `Eco::API::Session#do`
|
2050
|
+
- `Eco::API::Common::People::PersonEntry#to_hash` has been removed
|
2051
|
+
- now you should use the more explicit `Eco::API::Common::People::PersonEntry#external_entry`
|
2052
|
+
- **internal refactor** of `Eco::API::UseCases::DefaultCases`:
|
2053
|
+
- made so they inherit from `Eco::API::Common::Loaders::UseCase` and cases are autoloaded during run-time
|
2054
|
+
- **internal refactor** of input entries processing:
|
2055
|
+
- `Eco::API::Common::People::PersonEntry` internal refactor
|
2056
|
+
- need to make the code clearer and make the `parsing` and `serializing` symmetrical
|
2057
|
+
- the `serializers` were expecting an `Ecoportal::API::V1::Person`, which was at a different to that of when the `parsers` kicked in.
|
2058
|
+
- now it has been introduced the possibility to launch the serializer in a different stage of the process
|
2059
|
+
- to keep backwards compatibility, now it is possible to define at which `phase` of the parsing/serializing each parser and each serializer should kick in, which entailed changes in other classes and a new parameter in some methods thereof...
|
2060
|
+
- `Eco::Language::Models::ParserSerializer` offers `category` parameter so you can have multiple parsers and serializers per each parser/serializer (one per category).
|
2061
|
+
- `Eco::API::Common::People::PersonParser` uses `category` to define a `phase` when the `parser` or the `serializer` should be active => the expected object in the parser `callback` will be different depending on at which phase it is active and therefore called
|
2062
|
+
- for `parser` valid **phases** are `:internal` (default) and `:final`
|
2063
|
+
- for `serializer` valid **phases** are `:person` (default), `:final` and `:internal`
|
2064
|
+
- the expected output of such **callbacks** is the same as before: either the single `value` to return or a `Hash` with pair key/values of virtually-generated or existing-modified attributes of the source/input data passed to the parser
|
2065
|
+
|
2066
|
+
### Fixed
|
2067
|
+
|
2068
|
+
- **command line**
|
2069
|
+
- `-search-soft` was being ignored in orgs with org config `session.config.people.strict_search = true`
|
2070
|
+
- Log connection information (**enabled**): it was not printing where the connection was being made
|
2071
|
+
- enabled chaining between usecases: they will be processed in the order they hold in the command line
|
2072
|
+
- Removed error double backtrace (now it should only show one)
|
2073
|
+
- `Eco::API::Common::People::EntryFactory#entries` was not using `encoding` parameter properly.
|
2074
|
+
- `Eco::API::Common::People::DefaultParsers::CSVParser` does at `strip` (trim) of the header names.
|
2075
|
+
- `Eco::API::Organization::PresetsFactory#merge` was including abilities that were not included in the custom presets
|
2076
|
+
- fix: it will include only those that are defined, provided that using it will not override account abilities that should not be targeted, such as `tasks`
|
2077
|
+
- this new behavior will preserve account abilities that should be preserved; not targeted by the custom presets
|
2078
|
+
- some use cases where giving incorrect row number, fixed so they do:
|
2079
|
+
- `Eco::API::Common::People::EntryFactory#entries` adds `idx` key to each `entry`
|
2080
|
+
- `Eco::API::Common::People::PersonEntry`: serialization process has been normalized (previously there were missing fields)
|
2081
|
+
- this fix makes the `csv` with the complete set of fields that should be exported
|
2082
|
+
- `Ecoportal::API::Internal::Person#account_added` fixed typo
|
2083
|
+
- `Ecoportal::API::Session::Batch#get_people` should return `Array<Person>` invariably
|
1820
2084
|
|
1821
2085
|
## [1.5.1] - 2020-10-08
|
1822
2086
|
|
1823
2087
|
### Added
|
1824
|
-
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1828
|
-
- `
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
|
1839
|
-
|
1840
|
-
|
1841
|
-
|
1842
|
-
|
1843
|
-
|
1844
|
-
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
2088
|
+
|
2089
|
+
- `presets_values.json`: added the new ability `tasks` (eP release `1.5.3`)
|
2090
|
+
- `Ecoportal::API::Internal::Person` patch helper methods:
|
2091
|
+
- `new?`: to know if this person is new in the people manager as a result of the current launch
|
2092
|
+
- `account_added?`: to know if this person did not have account but they will have it after the current launch
|
2093
|
+
- `Eco::API::Session#new_job`: to shorten code
|
2094
|
+
- `Eco::API::Common::DefaultPasers::PolicyGroupsParser`: made native, as it is a very common parser
|
2095
|
+
- `Eco::API::Common::DefaultPasers::FreemiumParser` to parse/serialise boolean
|
2096
|
+
- `Eco::API::Common::People::PersonParser`: added `freemium` as core attribute
|
2097
|
+
- `Eco::API::UserCases::DefaultCases::RecoverDBCase`: recovers also `freemium`
|
2098
|
+
- scoping **microcases** : to be able to centralize common code between use cases
|
2099
|
+
- at its early stage (currently not available for usage)
|
2100
|
+
- dependency on `ecoportal-api-oozes` gem
|
2101
|
+
- added basic support for **api** `v2`
|
2102
|
+
- you can use `session.api(:oozes)` to obtain an api `v2`
|
2103
|
+
- you can manage your keys directly on the apis configuration
|
2104
|
+
- added `external_key:`, `user_key:` and `apis.default_user_key`
|
2105
|
+
|
2106
|
+
```ruby
|
2107
|
+
ASSETS.config do |config|
|
2108
|
+
config.apis.default_user_key = 'your-user-key-here'
|
2109
|
+
|
2110
|
+
config.add_api("org-environment", {
|
2111
|
+
host: 'pre.dev.ecoportal.com',
|
2112
|
+
key: 'an-internal-org-api-key',
|
2113
|
+
version: :internal,
|
2114
|
+
external_key: 'an-external-org-api-key',
|
2115
|
+
user_key: 'org-user-key-for-activity-stream',
|
2116
|
+
mode: :local
|
2117
|
+
})
|
2118
|
+
end
|
2119
|
+
```
|
2120
|
+
|
1855
2121
|
### Changed
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
2122
|
+
|
2123
|
+
- internally: load `Eco::API::Common::Session` before `Eco::API::Common::People`
|
2124
|
+
- `Eco::API::Common::People::EntryFactory`: made child of `Eco::API::Common::Session::BaseSession`
|
2125
|
+
- refactored all the `api` connection creation for simplicity and to support multi api version
|
2126
|
+
- delegated `Eco::API::Session::Batch#get` to `Ecoportal::API::V1::People#get_all`
|
1860
2127
|
|
1861
2128
|
### Fixed
|
1862
|
-
|
2129
|
+
|
2130
|
+
- correct `.gemspec` dependency version restrictions
|
1863
2131
|
|
1864
2132
|
## [1.5.0] - 2020-09-11
|
1865
2133
|
|
1866
2134
|
### Added
|
1867
|
-
|
2135
|
+
|
2136
|
+
- `Eco::Data::Files#file_empty?` to prevent error when checking encoding
|
2137
|
+
|
1868
2138
|
### Changed
|
1869
|
-
|
2139
|
+
|
2140
|
+
- change abilities to align with ecoPortal release `1.5.2`
|
2141
|
+
|
1870
2142
|
### Fixed
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
2143
|
+
|
2144
|
+
- `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `encoding` when it's `bom`
|
2145
|
+
- apparently, this can only be achieved by passing an argument such as `rb:bom|utf-8`
|
2146
|
+
- best reference found: <https://stackoverflow.com/a/60794851/4352306>
|
1874
2147
|
|
1875
2148
|
## [1.4.2] - 2020-07-23
|
1876
2149
|
|
1877
2150
|
### Fixed
|
1878
|
-
|
2151
|
+
|
2152
|
+
- preserve backtrace on logging
|
1879
2153
|
|
1880
2154
|
## [1.4.0] - 2020-07-14
|
1881
2155
|
|
1882
2156
|
### Changed
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
2157
|
+
|
2158
|
+
- change abilities to align with ecoPortal release `1.5.0`
|
2159
|
+
- remove some patches on `ecoportal-api`
|
2160
|
+
- removed patch method `Ecoportal::API::V1::Person#sync`
|
2161
|
+
|
1886
2162
|
### Fixed
|
1887
|
-
|
2163
|
+
|
2164
|
+
- `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `:encoding` when it's `bom`
|
1888
2165
|
|
1889
2166
|
## [1.3.19] - 2020-07-23
|
1890
2167
|
|
1891
2168
|
### Fixed
|
1892
|
-
|
2169
|
+
|
2170
|
+
- preserve backtrace on logging
|
1893
2171
|
|
1894
2172
|
## [1.3.18] - 2020-07-08
|
1895
2173
|
|
1896
2174
|
### Fixed
|
1897
|
-
- the `update` case was missing the code to use the `default_usergroup`
|
1898
2175
|
|
2176
|
+
- the `update` case was missing the code to use the `default_usergroup`
|
1899
2177
|
|
1900
2178
|
## [1.3.17] - 2020-07-06
|
1901
2179
|
|
1902
2180
|
### Changed
|
1903
|
-
|
1904
|
-
|
2181
|
+
|
2182
|
+
- the `hris` case should not only include as `leavers` those that have account, but anyone that leaves
|
2183
|
+
- as we could have active people with no account
|
2184
|
+
|
1905
2185
|
### Fixed
|
1906
|
-
|
2186
|
+
|
2187
|
+
- `Eco::API::Session::Batch::Errors#errors`: fix error for empty `body` on response
|
1907
2188
|
|
1908
2189
|
## [1.3.16] - 2020-06-26
|
1909
2190
|
|
1910
2191
|
### Added
|
1911
|
-
|
2192
|
+
|
2193
|
+
- `Eco::API::Common::People::Entries`, `#entry` & `#find` should allow for `strict` search (added parameter)
|
2194
|
+
|
1912
2195
|
### Changed
|
1913
|
-
|
1914
|
-
|
1915
|
-
- some
|
2196
|
+
|
2197
|
+
- upgraded `ecoportal-api` gem dependency to minimum version `0.5.7`
|
2198
|
+
- this includes the removal of some patches
|
2199
|
+
- some gems update
|
2200
|
+
|
1916
2201
|
### Fixed
|
1917
|
-
|
2202
|
+
|
2203
|
+
- patched preferences (`kiosk` preferences should default to `nil`)
|
1918
2204
|
|
1919
2205
|
## [1.3.15] - 2020-06-11
|
1920
2206
|
|
1921
2207
|
### Added
|
1922
|
-
|
2208
|
+
|
2209
|
+
- default usecase to export to `csv` (`-detailed`) now includes `"Supervisor Name"` column
|
2210
|
+
|
1923
2211
|
### Changed
|
1924
2212
|
|
1925
2213
|
## [1.3.14] - 2020-06-10
|
1926
2214
|
|
1927
2215
|
### Added
|
1928
|
-
|
2216
|
+
|
2217
|
+
- `Eco::API::Common::People::SupervisorHelpers` now has its methods as class methods
|
2218
|
+
|
1929
2219
|
### Changed
|
1930
|
-
- upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
|
1931
2220
|
|
2221
|
+
- upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
|
1932
2222
|
|
1933
2223
|
## [1.3.13] - 2020-05-29
|
1934
2224
|
|
1935
2225
|
### Fixed
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
2226
|
+
|
2227
|
+
- `Eco::API::Organization::TagTree#tag?` to accept `nil` by returning `false`
|
2228
|
+
- `Eco::API::Common::People::DefaultParsers::DateParser` will parse to `Date` class
|
2229
|
+
- it was parsing to `Time` class, while the native gem `ecoportal-api` parses as `Date` ([reference](https://gitlab.com/ecoPortal/ecoportal-api/-/blob/master/lib/ecoportal/api/v1/schema_field.rb))
|
2230
|
+
|
1939
2231
|
## [1.3.12] - 2020-05-19
|
1940
2232
|
|
1941
2233
|
### Changed
|
1942
|
-
|
1943
|
-
|
2234
|
+
|
2235
|
+
- stop using `email` as `external_id` on `People#person` & `People#find`
|
2236
|
+
- this should result in more accurate searches when using `:strict` options
|
1944
2237
|
|
1945
2238
|
## [1.3.11] - 2020-05-12
|
1946
2239
|
|
1947
2240
|
### Changed
|
1948
|
-
|
2241
|
+
|
2242
|
+
- remove popping up comments on `Eco::API::Organization::PolicyGroups#`
|
1949
2243
|
|
1950
2244
|
## [1.3.10] - 2020-05-12
|
1951
2245
|
|
1952
2246
|
### Added
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
2247
|
+
|
2248
|
+
- `Eco::API::Organization::PolicyGroups#to_name` added support for `Array` input
|
2249
|
+
- `config.people.default_usergroup`, when defined, will have effect on usecases: `update` (this case was missing the change)
|
2250
|
+
- on account creation, if the input file did not specify `policy_group_ids`
|
1956
2251
|
|
1957
2252
|
### Fixed
|
1958
|
-
|
2253
|
+
|
2254
|
+
- `upsert`, `hris` and `create` usecases: fixed condition for use of default_usergroup
|
1959
2255
|
|
1960
2256
|
## [1.3.9] - 2020-05-12
|
1961
2257
|
|
1962
2258
|
### Fixed
|
1963
2259
|
|
1964
2260
|
- `usecase` callback was not receiving `usecase` paramater
|
1965
|
-
|
2261
|
+
- as a consequence `Batch::Job` created were missing the `usecase`
|
1966
2262
|
|
1967
2263
|
## [1.3.8] - 2020-05-07
|
1968
2264
|
|
@@ -1970,26 +2266,26 @@ Specific changes due to eP **release `1.5.9.70`** (_Policy Group Abilities_)
|
|
1970
2266
|
|
1971
2267
|
- this change log file
|
1972
2268
|
- `config.people.default_usergroup`, when defined, will have effect on usecases: `create`, `upsert` and `hris`
|
1973
|
-
|
2269
|
+
- on account creation, if the input file did not specify `policy_group_ids`
|
1974
2270
|
|
1975
2271
|
### Changed
|
1976
2272
|
|
1977
2273
|
- `policy` callback to receive new parameter with the `Batch::Job` that it is currently processing/checking
|
1978
2274
|
|
1979
|
-
**Example of
|
2275
|
+
**Example of usage__
|
1980
2276
|
|
1981
2277
|
```ruby
|
1982
2278
|
ASSETS.config.policies do |policies|
|
1983
|
-
|
1984
|
-
|
1985
|
-
|
1986
|
-
|
1987
|
-
end
|
1988
|
-
end
|
1989
|
-
if job.name == "leavers"
|
1990
|
-
person.details["status"] = "Inactive" if person.details
|
2279
|
+
policies.define("update-status") do |people, session, options, policy, job|
|
2280
|
+
if job.type == :create
|
2281
|
+
people.each do |person|
|
2282
|
+
person.details["status"] = "Active" if person.details
|
1991
2283
|
end
|
1992
2284
|
end
|
2285
|
+
if job.name == "leavers"
|
2286
|
+
person.details["status"] = "Inactive" if person.details
|
2287
|
+
end
|
2288
|
+
end
|
1993
2289
|
end
|
1994
2290
|
```
|
1995
2291
|
|