eco-helpers 2.7.13 → 2.7.15
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|