summaryrefslogtreecommitdiffstats
path: root/doc/82-Changelog.md
blob: 5867b41f9a95c1c1db251a3657343744a8b57d1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
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
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
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
415
416
417
418
419
420
421
422
423
424
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
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
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
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
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
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
<a id="Changelog"></a>Changelog
===============================

Please make sure to always read our [Upgrading](05-Upgrading.md) documentation
before switching to a new version.

v1.10.2
-------

This is a minor bugfix release, addressing some Sync-related issues: purge for
objects with uppercase characters now works as expected, automated Sync jobs run
again, and manually triggered Sync has been fixed on PostgreSQL.

Some UI glitches have been addressed, and a few problems appearing only in
certain conditions - related to Configuration Baskets, our Self Service REST API
and the Activity Log.

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/31?closed=1)

### UI
* FEATURE: improve Service Set table layout (#2648)
* FIX: modifying single time-period ranges had no effect (#2525)
* FIX: activity log pagination is now on a single line (#2649)

### Import and Sync
* FIX: triggering Sync manually produced an error on PostgreSQL (#2636)
* FIX: purge stopped working for objects with uppercase characters (#2627)
* FIX: Notification Apply rule is now possible (wasn't since v1.8) (#2142, #2634)
* FIX: nested property access with intermediate NULL values now gives NULL (#2474, #2584)
* FIX: automated Sync jobs stopped working (#2633)

### Configuration Baskets
* FEATURE: more details shown in error messages related to invalid characters (#2646)
* FIX: snapshots for Baskets containing Baskets failed since v1.10 (#2644)

### REST API
* FIX: Self Service API returned invalid JSON on PHP 8.1 (#2614)

### Internals
* FIX: issue with empty activity log, deprecate outdated method (#2630)

v1.10.1
-------

This is a minor bugfix release, addressing issues with modifying services via
the monitoring module, Sync problems and a copy and paste error in the DB schema,
which caused problems for fresh installations since v1.10.

Please note that a long-standing issue for our Sync Rules has been fixed: with
"merge" policy, NULL properties have been ignored for quite some time. This has
now been fixed. If in doubt, please **preview** your Sync Rules to make sure,
that they behave as expected.

This release brings a small schema migration, cleaning up invalid Sync history
entries. If in doubt, please create a [database backup](05-Upgrading.md#backup-first) first.

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/30?closed=1)

### Import and Sync
* FIX: sync lower-cased all object names since v1.10 (#2608)
* FIX: sync for Datalist entries has been fixed (#2618)
* FIX: Sync now applied NULL values with merge policy (#2623)
* FIX: Sync created Sync History entries for every preview (#2632)
* FIX: "Purge" stopped working for Sync (#2627)

### UI
* FIX: "Modify" Services via the monitoring module (#2615, #2619)

### Configuration Baskets
* FIX: restore Import/Sync/Job when exported with v1.10 (#2620)
* FIX: restoring Job with ImportSource or SyncRule (#2528)

### Database Schema
* FIX: new DB schema failed due to duplicate line in SQL statement (#2609)

v1.10.0
-------

An advanced **Sync Preview** is one of the features I'd love to highlight in
v1.10.0. We have been able to leverage our Configuration Branch support as
an underlying technology for this:

![Sync Preview - List](https://user-images.githubusercontent.com/553008/191472888-33849b3e-9d96-4113-b960-92708769e90d.png)

In case you have lots of changes, you can browse all of them - formerly this
hasn't been possible. Also, this now allows you to inspect every single upcoming
change before applying the Sync:

![Sync Preview - Details](https://user-images.githubusercontent.com/553008/191472900-1968691e-a758-4c99-99ce-059bc3689356.png)

This has been possible based on the code we implemented to support the
[Director Branches](https://icinga.com/docs/icinga-director-branches/latest/)
module. In case you never heard about it,
[here](https://icinga.com/blog/2022/07/21/releasing-icinga-director-branches/)
you can find the related announcement.

This release also contains a lot of related fixes and new Features. It is now
possible to deal with **Service Sets** in Configuration Branches, the **commit
remark** can be proposed with a merge request, and the Activity Log shows not
only who has  merged the change, but also the **original author**.

Powerful new features have been implemented for those who love to orchestrate
the Director from the outside. Please check our
[CLI](https://github.com/Icinga/icingaweb2-module-director/blob/v1.10.0/doc/60-CLI.md)
and [REST API](https://github.com/Icinga/icingaweb2-module-director/blob/v1.10.0/doc/70-REST-API.md)
documentation for related details, especially look for --with-services (withServices)
and --allow-overrides (allowOverrides).

CLI now supports **JSON on STDIN**, REST API can request detailed stack traces
in case an error occurs.

### Breaking Changes
* Module and system dependencies have been raised, [Upgrading](05-Upgrading.md)
  and [Installation](02-Installation.md) documentations contain related details

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/27?closed=1)

### User Interface
* FIX: links from Service Previews (Icinga DSL) to templates (#2554)
* FIX: daemon health visualization on systems w/o /proc filesystem (#2544)

### Import and Sync
* FIX: Sync now compares keys in a case-insensitive way (#2598, #2419, #1140)
* FIX: Sync now preserves Self Service API keys in override mode (#2590)
* FEATURE: clone a row for nested Dictionary/Hash entries (#2555)
* FEATURE: Sync in "override" mode now preserves Self Service API keys (#2590)
* FEATURE: split a row in multiple ones, based on a Dictionary (#2555)
* FEATURE: it's now possible to sync to a configuration branch (#2552)
* FEATURE: Sync preview now allows to navigate single changes (#2607)

### Configuration Baskets
* BREAKING: configuration baskets no longer contain originalId (#2549)
* FEATURE: exporting/snapshot-logic has been centralized (#2549)

### Configuration Branches
* FIX: PostgreSQL now allows for the same object in multiple branches (#2605)
* FEATURE: merge comments can now be proposed (#2604)
* FEATURE: activity log now shows author and committer (#2606)

### Integrations
* FIX: Monitoring Hooks are no longer provided with disable Director UI (#2597)
* FIX: cleanup for IcingaDbCube (#2484)

### Kickstart
* FIX: breaking change in ipl/html, affected setups with ro INI files (#2595)
* FEATURE: better explanation for missing DSL bodies fetched from core (#2557)

### REST API
* FIX: addressing service templates by name has been fixed (#2487)
* FIX: allow for object_name in body only (#2576)
* FIX: notice on PHP 8.1 (#2575)
* FEATURE: Stack traces can now be requested (#2570)
* FEATURE: Hosts can now be exported with their services (#2568)
* FEATURE: "magic" variable overrides are now supported (#2569)

### CLI
* FIX: config deploy doesn't try to wait in case of no deployment (#2522)
* FIX: renderer now shows full service sets (#2550)
* FEATURE: improved wording for deployment error messages (#2523)
* FEATURE: JSON can now be shipped via STDIN (#1570)
* FEATURE: improved readability for some error messages (#2567)
* FEATURE: allows showing hosts with their services (#2565)
* FEATURE: allow showing resolved Host services (#2571)
* FEATURE: "magic" variable overrides are now supported (#2560)
* FEATURE: error messages are now friendlier (#2567)
* FEATURE: STDIN support for --json is now available (#1570)

### Activity Log

* FIX: deleted objects might have been missing related properties (#2559)

### Deployment Log
* FEATURE: visualization performance has been improved (#2551)

### Internals

* FEATURE: there is now a centralized Exporter implementation (#2549)

1.9.1
-----

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/28?closed=1)

### User Interface
* FIX: DataList-backed fields failed to validate (#2475)
* FIX: No Host list limit when adding a single service globally (#2481)
* FIX: Cleared activity log caused exception (#2505, #2506)
* FEATURE: Icinga Web 2.10 dark mode support (#2433)

### Configuration Baskets
* FIX: failed to export Baskets with Service Sets (#2488)
* FIX: Sync Rule restore from snapshot on name change (#2467)
* FIX: Do not export UUIDs with Service Sets (#2488)

### CLI
* FEATURE: Allow to define deployment grace period on CLI (#2499)

### Integrations
* FIX: Cleanup IcingaDbCubeLinks (#2484)

### DB Schema
* FIX: applying DB Schema migrations failed on PostgreSQL (#2482)

1.9.0
-----

### Breaking Changes
* Module dependencies have been raised, [Upgrading](05-Upgrading.md) and
  [Installation](02-Installation.md) documentations contain related details

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/25?closed=1)

### Import and Sync
* FIX: string property modifiers now preserve NULL values (#2371)
* FIX: "to int" property modifiers now fails for non-string values (#2372)
* FEATURE: introduce 'disable' as your purge action on Sync (#2285)
* FEATURE: there is now a simple "group by" Property Modifier (#2317)

### Configuration Baskets
* FIX: Notification Apply Rules have not been exported (#2335)
* FIX: Restore now supports the set_if_format switch (#2291)
* FEATURE: it's now possible to purge objects of specific types (#2201)
* FEATURE: exporting Users, User-Templates and -Groups is now possible (#2328)
* FEATURE: Data Field Categories are now supported (#2256)

### Permissions and Restrictions
* FEATURE: allow using monitoring module permissions (#2304)
* FEATURE: it's now possible to grant (global) access to scheduled downtimes (#2086)

### Configuration / Templating
* FEATURE: offering choices based on a specific imports is now possible (#1178)

### User Interface
* FIX: allow switching DB config while connection is failing (#2300)
* FIX: Links to duplicate services in Sets didn't check for deactivation (#2323)
* FIX: SQL error for Data Fields table on PostgreSQL (#2310)
* FIX: SQL error when searching for Data Field Categories (#2367)
* FIX: Icon used for Notifications has been changed (#2455)
* FEATURE: show "deprecated" flag on object attribute inspection (#2312)
* FEATURE: Service Template for single Host services provides auto-completion (#1974)

### CLI
* FEATURE: config deployment now allows to --wait for an Icinga restart (#2314)

### Activity log
* FEATURE: Activity log now allows for remarks (addon module required, #2471)

### Documentation
* FIX: configure the daemon with main setup instructions (#2296, #2320)

### Internals
* FEATURE: PHP 8.1 is now supported, works once available in Icinga Web (#2435)
* FEATURE: Config Branches have been implemented, leveraged via Hook/Addon (#2376)
* FEATURE: UUIDs have been implemented for most Icinga objects, more to come
* FEATURE: new Deployment Hook, triggers onCollect(ing) Icinga startup info (#2315)

1.8.1
-----

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/24?closed=1)

### User Interface
* FIX: show Override button when all Fields belong to Field Categories (#2303)
* FIX: don't fail when showing a Host overriding multiple inherited groups (#2253)
* FIX: deal with inherited values which are invalid for a select box (#2288)
* FIX: Service Set preview inline Service Template links (#2334)
* FIX: show Services applied with Rules involving applied Hostgroups (#2313)
* FIX: show "deactivated" services as such also for read-only users (#2344)
* FIX: Overrides for Services belonging to Sets on root Host Templates (#2333)
* FIX: show no header tabs for search result in web 2.8+ (#2141)
* FIX: show and link dependencies for web 2.9+ (#2354)

### Icinga Configuration
* FIX: rare race condition, where generated config might miss some files (#2351)

### Icinga API
* FIX: use Icinga 2's generate-ticket API, required for v2.13.0 (#2348)

### Import and Sync
* FIX: Purge didn't remove more than 1000 services at once (#2339)

### Automation, User Interface
* FIX: error message wording on failing related (or parent) object ref (#2224)

### REST API
* FIX: creating scheduled downtime via api failed (#1879)

1.8.0
-----

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/21?closed=1)

### User Interface
* FIX: It's now possible to set Endpoint ports > 32767 on PostgreSQL (#928)
* FIX: Group list is no longer prefixed with a comma (#2133)
* FIX: Change wording, avoid black/whitelist (#2134, #2135)
* FIX: Inherited values in sets (arrays) are now shown (#1310)
* FIX: Column layout broke with Web 2.8, has been fixed (#2065)
* FIX: filter suggestion gave wrong values for DataList fields (#1918)
* FIX: clone-related scheduled downtime links have been fixes (#1894)
* FEATURE: Data Fields can now be grouped into categories (#1969)
* FEATURE: Inspect is now available for Packages, Stages and Files (#1995)
* FEATURE: Allow to disable the Director frontend / UI (#2007)
* FEATURE: Endpoints table now shows the object type (e.g. external) (#2050)
* FEATURE: make sure that form label and fields stay close together (#2136)
* FEATURE: show more content, reduce padding (expect on mobile) (#2140)
* FEATURE: location details for non-Director services on "Modify" (#1531)
* FEATURE: Service Set table can now also be searched for Services (#1873)
* FEATURE: Apply-Rule-based Service Sets now show related Hosts (#2081)
* FEATURE: Notification Apply Rules as a DirectorObject DataField (#2199)
* FEATURE: Hint and Error styling has been unified and improved
* FEATURE: Form field rendering for sets now deals with invalid values
* FEATURE: Better descriptions for time-based and other fields (#1897, #1264)
* FEATURE: Daemon tab now gets red instead of yellow when not running (#2238)

### Translations
* FEATURE: Italian translation is now available (#2080)
* FEATURE: German translation has been refreshed (#2240)

### CLI
* FEATURE: Deployment Status and related utilities (#2189)

### Import and Sync
* FEATURE: allow defining update-only Sync Rules (#2059)
* FEATURE: New Property Modifier: ListToObject (#2062)
* FEATURE: Property Modifier: convert binary UUID to HEX presentation (#2138)
* FEATURE: Property Modifier: get Host by Address (#2210)
* FEATURE: Property Modifier: skip duplicates (#2215)
* FEATURE: Property Modifier: trim strings (#1660)
* FEATURE: Property Modifier: negate boolean (#2227)
* FEATURE: Property Modifier Reject/Select: improve usability (#2228)
* FEATURE: Property Modifier: clone rows for every entry of an Array (#2192)
* FEATURE: Property Modifier: unique array values (#2229)
* FEATURE: Property Modifier: allow to rename columns (#2242)
* FEATURE: Import Sources now allows downloading previewed data as JSON (#2096)
* FEATURE: REST API Import now allows custom headers (#2132)
* FEATURE: REST API Import can now extract nested properties (#2132)
* FEATURE: REST API Form remembers passwords without exposing them (#2070)
* FEATURE: UTF8 validation for failed imports gives better error message (#2143)
* FEATURE: ArrayByElementPosition now allows filtering by key name (#1721)
* FEATURE: Use your Director Objects as an Import Source (#2198)
* FEATURE: Property modifiers are now granted access the current Property Name (#2241)
* FIX: Import Source preview now catches all errors
* FIX: Import Source download sends eventual errors as a valid JSON result
* FIX: LDAP Import is now able to paginate limited results (#2019)

### Configuration Baskets
* FIX: Restoring Import Sources creating Modifiers now works (#2053)
* FEATURE: Support Baskets from Icinca for Windows (#2223)
* FEATURE: It's now possible to use Notification Templates in Baskets
* FEATURE: Snapshot status/diff layout has been improved (#2225)

### Authentication and Permissions
* FIX: Users restricted to Hostgroups can now use related Templates (#2020, #2101)
* FEATURE: Optionally, restricted users can be allowed to set Groups (#2252)

### Kickstart
* FEATURE: Friendlier message if object to be removed is still in use (#2206)
* FEATURE: Kickstart now removes obsolete External Commands (#985)

### Icinga Configuration
* FIX: Correctly render Service Dependencies with Array-style parent hosts (#2088)
* FIX: times.begin and times.end are now rendered separately (#2193)
* REMOVED: magic-apply-for (a hidden deprecated feature) has been removed (#1851)

### Icinga Agent handling
* FIX: Linux Agent installer now fails when unable to retrieve a certificate
* FEATURE: Linux Agent installer now supports Alpine Linux (#2216)
* FEATURE: Icinga for Windows support (#2147)

### REST API
* FEATURE: Self Service API ignores empty/missing properties (e.g. no address)
* FEATURE: Search is now also available for the REST API (#1889)
* FEATURE: Deployment Status is now available (#2187)
* FEATURE: UTF-8 characters and slashes are no longer escaped (#2243)

### Self Service API
* FIX: error handling has been fixed (#1728)

### Database Support
* FIX: Added UTF8 to valid PostgreSQL encodings (used to be UTF-8)

### Background Daemon
* FIX: Daemon Logger used to not override the given log level (#2139)
* FEATURE: Daemon: prepare for future reactphp promise versions (#2137)
* FEATURE: Daemon now logs that it is going to reload itself
* FEATURE: Now collects the Deployment status from Icinga (#2045, #1988)

### Documentation
* FEATURE: We now also mention optional/indirect requirements (#2054, #2220)

### Internals
* FEATURE: Property Modifiers are now able to clone rows (#2060)
* FEATURE: URL encoding for the Core API has been unified
* FEATURE: PHP 8.0 has been released and is officially supported (#2233)
* REMOVED: dipl has been dropped, we're using ipl/incubator since v1.7 (#2209)
* FIX: typo in DeploymentHook::onSuccessfulDump() has been fixed (#2069)
* FIX: forms now support dbResourceName (#2064)

1.7.2
-----

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/23?closed=1)

### DB Schema
* FIX: Rolling out new installations on MySQL v5.6 fails (#1993)

### Icinga Configuration
* FIX: Render service\_name for Notifications (#2006)

### User Interface
* FIX: Cloning Import Sources failed since v1.7.0 (#1997)
* FIX: Switching Director DBs was broken since Web 2.6.3 (#2063)

### CLI
* FIX: Importing Import Sources failed since v1.7.0 (#2005)

### Automation
* FIX: Fixing linux install script version check (#2008)
* FIX: Windows Kickstart Script - $GlobalZones was empty (#2002)

### Documentation
* FIX: Missing single quote in mysql example bug (#2003)

1.7.1
-----

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/22?closed=1)

### User Interface
* FIX: Cloning Sync rules failed since v1.7.0 (#1982)
* FIX: It wasn't possible to multi-select Hosts belonging to a Group (#1973)
* FIX: Removed an un-formatted error in case Icinga is unreachable (#1966)
* FIX: Check for broken configs has been extended to Icinga v2.11.* (#1985)
* FEATURE: Show a warning when detecting a downgraded installation (#1992)

### Import and Sync
* FIX: Upper- and Lowercase property modifiers are now multibyte/UTF8-safe (#710)

### Health Check
* FIX: do not complain about no-due newly created jobs (#1994)

### Background Daemon
* FIX: Daemon didn't report DB state to systemd (#1983)

1.7.0
-----
### Breaking Changes
* At least PHP 5.6.3 is now required, Director 1.7.x will refuse to work with
  older versions
* New dependencies have been introduced, [Upgrading](05-Upgrading.md) and
  [Installation](02-Installation.md) documentations contain related details

### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/18?closed=1)

### User Interface
* FIX: Service-related links in Activity Log have been corrected (#1377, #1816)
* FIX: Activity Log now works for Service Sets (#1287, #1786, #1816)
* FIX: Assign Filters are no longer mandatory when modifying Service Groups (#930)
* FIX: Object type for CheckCommands has been corrected in config preview (#1799)
* FIX: Import preview in combination with Black/Whitelisting (#1825)
* FIX: Routing/redirection when working with Data Fields (#1847)
* FIX: Auto-suggestion field was positioned wrongly once scrolled down
* FIX: Timezone inconsistencie have been fixed (#1700)
* FIX: Link-like buttons where shortened on Icinga Web 2.7 (#1928)
* FIX: Search in range-filtered Activity Log no longer fails (#1381)
* FEATURE: It's now possible to clone a Service to a different Host (#1796)
* FEATURE: Scheduled Downtimes for "Hosts AND their services" (#1831)
* FEATURE: Auto-suggestion and more for Fields based on Data Lists (#1846)
* FEATURE: Show missing dependencies (#1938)

### Translations
* FEATURE: German translation has been refreshed (#1951)
* FEATURE: Japanese is now available (#1869)

### Import and Sync
* FIX: Avoid caching between multiple runs of sync (#1836)
* FIX: Imported Rows Table (history) eventually failed on Icinga Web 2 (#1925)
* FIX: Improved error handling on preview (#1941)
* FEATURE: When fetching invalid data, Import refers erroneous rows (#1741)
* FEATURE: Sync now offers a preview, showing what would happen (#1754)
* FEATURE: ParseURL property modifier has been added (#1746)
* FEATURE: There is a new generic REST API Import Source (#1818)
* FEATURE: Sync now supports Notifications and Dependencies (#1212, #925, #1209)
* FEATURE: Limits (memory, execution time) raised for Import runs via UI (#1954)

### Configuration Baskets
* FIX: snapshots do no longer fail for deleted elements on snapshot (#1940)
* FEATURE: baskets now support External Commands (#1854)

### REST API
* FIX: Command Arguments can now be managed via API (#1416)

### CLI
* FIX: importsource fetch did not apply configured property modifiers (#1819)
* FEATURE: Service Groups are now available on CLI (#1745)
* FEATURE: A new background daemon has been introduced (#1905)

### Icinga Configuration
* FIX: Allow to render single configuration files larger than 16MB (#1787)
* FIX: Icinga v2.11 version detection for Agent Installation script (#1957)
* DEPRECATED: magic-apply-for (a hidden feature) is now deprecated (#1850)
* FEATURE: It's now possible to define Scheduled Downtimes (#347, #1828)
* FEATURE: Allow to render command definitions as (v1.x-like) strings (#1809)
* FEATURE: host address now allows 255 characters (#1890)
* FEATURE: Director now assists with Services applied to parent Zones (#1634)
* FEATURE: Warn affected setups when affected by a specific core issue (#1958)

### Documentation
* FIX: Installation instructions have been adjusted to fit MySQL 8

### Internals
* FIX: support different timezones with MySQL (#1332, #1840)
* FIX: support importing DSL-based Command Arguments (#1812)
* FEATURE: a new Hook allows to run custom code at deployment time (#1342, #1843)
* FEATURE: there is a new low-level IcingaObjectFormHook (#1841)

1.6.2
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/20?closed=1)

### Icinga Configuration
* FIX: rendering for Service Sets on single Hosts has been fixed (#1788, #1789)

1.6.1
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/19?closed=1)

### User Interface
* FIX: restoring a basket fails when there is only one configured DB (#1716)
* FIX: creating a new Basket with a "Custom Selection" failed with an error (#1733)
* FIX: some new reserved keywords are now escaped correctly (#1765)
* FIX: correctly render NOT used in apply rules (fixes #1777)
* FIX: Activity Log used to ignore Host filters (#1613)
* FIX: Basket failed to restore depending on PHP version (#1782)
* FIX: Loop detection works again (#1631)
* FIX: Snapshots for Baskets with Dependencies are now possible (#1739)
* FIX: Commands snapshots now carry fields in your Basket (#1747)
* FIX: Cloning services from one Set to another one no longer fails (#1758)
* FIX: Blacklisting a Service from a Set on a Host Template is now possible (#1707)
* FIX: Services from a Set assigned to a single Host can be blacklisted (#1616)
* FEATURE: Add TimePeriod support to Configuration Baskets (#1735)
* FEATURE: RO users could want to see where a configured service originated (#1785)
* FEATURE: introduce director/serviceapplyrules REST API endpoint (#1755)

### REST API
* FIX: Self Service API now ships optional Service User parameter (#1297)

### DB Schema
* FIX: it wasn't possible to use the same custom var in multiple notification
  definitions on PostgreSQL (#1762)

### Icinga Configuration
* FIX: escape newly introduced Icinga 2 keywords (#1765)

1.6.0
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/15?closed=1)

### User Interface
* FIX: link startup log warning even for non-standard package names (#1633)
* FIX: searching for fields assigned to a template was broken (#1670)
* FIX: changing an argument type from String to DSL didn't work (#1640)
* FIX: incorrect links from template-tree to non-template commands (#1544)
* FIX: drop useless object-type field for Time Periods (#788)
* FIX: clean up naming for some tabs (#1312)
* FIX: "remove" now removes the correct Service Set on a Host (#1619)
* FIX: do not fail when "inspecting" a pending service (#1641)
* FIX: a problem when selecting multiple host has been fixed (#1647)
* FIX: allow to remove renamed Service Sets (#1664)
* FIX: resolved a side-effect triggered by hooked Custom Fields (#1667)
* FIX: config diff URL behavior has been corrected (#1704)
* FEATURE: allow to filter templates by usage (#1339)
* FEATURE: allow to show SQL used for template tables
* FEATURE: allow to defined Service Groups for Set members and for Services
  assigned to Host Templates (#619)
* FEATURE: it's now possible to choose another target Service Set when cloning
  a member service (#886)
* FEATURE: Configuration Baskets with snapshot/import/export capabilities (#1630)
* FEATURE: Allow to clone a Service from one Set to another one (#886)
* FEATURE: form descriptions are now shown directly below the field, reverting
  a change from v1.4.0 (#1510)
* FEATURE: show sub-sets in Config Preview (#1623)
* FEATURE: show live Health-Check in the frontend (#1669)

### Import and Sync
* FIX: Core Api imports flapping only for 2.8+ (#1652) 
* FEATURE: new Property Modifier allows to extract specific Array values (#473)

### CLI
* FIX: Director Health Check no longer warns about no Imports/Syncs/Jobs (#1607)
* FEATURE: It's now possible to dump data as fetched by an Import Source (#1626)
* FEATURE: CLI implementation for Configuration Basket features (#1630)
* FEATURE: allow to append to or remove from array properties (#1666)

### Icinga Configuration
* FIX: rendering of disabled objects containing `*/` has been fixed (#1263)
* FEATURE: support for Timeperiod include/exclude (#1639)
* FEATURE: improve legacy v1.x configuration rendering (#1624)

### Icinga API
* FIX: ship workarounds for issues with specific Icinga 2 versions
* FIX: clean up deployed incomplete stages lost by Icinga (#1696)
* FEATURE: allow to behave differently based on Icinga 2 version (#1695)

### Icinga Agent handling
* FEATURE: ship latest PowerShell module (#1632)
* FIX: PowerShell module runs in FIPS enforced mode (#1274)

### DB Schema
* FIX: enforce strict object_name uniqueness on commands (#1496)

### Documentation
* FEATURE: improve installation docs, fix URLs (#1656, #1655)


1.5.2
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/17?closed=1)

### Configuration rendering
* FIX: Fix compatibility with Icinga v2.6, got broken with v1.5.0 (#1614)

### REST API
* FIX: No more invalid JSON in some special circumstances (#1314)

### User Interface
* FIX: Hostgroup assignment cache has been fixed (#1574, #1618)

### DB Schema
* FIX: missing user/timeperiod constraint. We usually do not touch the schema
  in minor versions, this has been cherry-picked by accident. However, don't
  worry - the migration has been tested intensively.

1.5.1
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/16?closed=1)

### Icinga Configuration
* FIX: Switched Variable-Override related constant names broke the feature (#1601)

### User Interface
* FIX: Custom Fields attached to a Service Template have not been shown for Apply
  Rules whose name matched the Template Name (#1602)

### Import and Sync
* FIX: There was an issue with specific binary checksums on MySQL (#1556)

1.5.0
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/11?closed=1)

### Security Fixes
* FIX: users with `director/audit` permission had the possibility to inject SQL.
  Thanks to Boyd Ansems for reporting this.

### Permissions and Restrictions
* FEATURE: Showing the executed SQL query now requires the `showsql` permission
* FEATURE: Grant access to Service Set in a controlled way
* FIX: do not allow a user to create hosts he wouldn't be allowed to see #1451
* FIX: Hostgroup-based restrictions worked fine when applied, bug was buggy in
  combination with directly assigned or inherited groups (#1464)

### Icinga Configuration
* FEATURE: Add 'is false (or not set)' condition for apply rules (#1436)
* FEATURE: support flapping settings for Icinga &gt;= 2.8.0 (#330)
* FEATURE: include all itl packages in Linux Agent sample config (#1450)
* FEATURE: it's now possible to blacklist inherited or applied Services on
  single hosts (#907)
* FEATURE: timestamped startup log rendering for upcoming Icinga v2.9.0 (#1478)
* FEATURE: allow to switch between multiple Director databases (#1498)
* FEATURE: it's now possible to specify Zones for UserGroups (#1163)
* FEATURE: dependencies are no longer considered experimental

### User Interface
* FEATURE: Admins have now access to JSON download links in many places
* FEATURE: Users equipped with related permissions can toggle "Show SQL" in the GUI
* FEATURE: A Service Set can now be assigned to multiple hosts at once #1281
* FEATURE: Commands can now be filtered by usage (#1480)
* FEATURE: Show usage of Commands over templates and objects (#335)
* FEATURE: Allow horizontal size increase of Import Source DB Query field (#299)
* FEATURE: Small UI improvements like #1308
* FEATURE: Data Lists can be chosen by name in Sync rules (#1048)
* FEATURE: Inspect feature got refactored, also for Services (#264, #689, #1396, #1397)
* FEATURE: The "Modify" hook is now available for Services (#689), regardless
  of whether they have been directly assigned, inherited or applied
* FEATURE: Config preview links imports, hosts and commands to related objects (#1521)
* FEATURE: German translation has been refreshed (#1599)
* FEATURE: Apply Rule editor shows suggestions for Data-List vars (#1588)
* FIX: Don't suggest Command templates where Commands are required (#1414)
* FIX: Do not allow to delete Commands being used by other objects (#1443)
* FIX: Show 'Inspect' tab only for Endpoints with an ApiUser (#1293)
* FIX: It's now possible to specify TimePeriods for single Users #944
* FIX: Redirect after not modifying a Command Argument failed on some RHEL 7
  setups (#1512)
* FIX: click on Service Set titles no longer removes them from their host (#1560)
* FIX: Restoring objects based on compound keys has been fixed (#1597)
* FIX: Linux Agent kickstart script improved and tweaked for Icinga 2.9 (#1596)

### CLI
* FEATURE: Director Health Check Plugin (#1278)
* FEATURE: Show and trigger Import Sources (#1474)
* FEATURE: Show and trigger Sync Rules ( #1476)

### Import and Sync
* FIX: Sync is very powerful and allows for actions not available in the GUI. It
  however allowed to store invalid single Service Objects with no Host. This is
  now illegal, as it never makes any sense
* FIX: Performance boost for "purge" on older MySQL/MariaDB systems (#1475)
* FEATURE: new Property Modifier for IPs formatted as number in Excel files (#1296)
* FEATURE: new Property Modifier to url-encode values
* FEATURE: new Property Modifier: uppercase the first character of each word
* FEATURE: Kickstart Helper now also imports Event Commands (#1389)
* FEATURE: Preserve _override_servicevars on sync, even when replacing vars (#1307)

### Internals
* FIX: problems related to users working from different time zones have been
  fixed (#1270, #1332)
* FEATURE: Html/Attribute now allows boolean properties
* FEATURE: Html/Attribute allows colons in attribute names (required for SVGs)
* FEATURE: Html/Attributes can be prefixed (helps with data-*)
* FEATURE: Html/Img data:-urls are now supported
* FEATURE: ipl has been aligned with the upcoming ipl-html library
* FEATURE: Director now supports multiple Databases, allows to switch between
  them and to deploy different Config Packages. Other features based on this
  combined with related documentation will follow.

1.4.3
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/13?closed=1)

### User Interface
* FIX: Pagination used to be broken for some tables (#1273)

### Automation
* FIX: API calls changing only object relations and no "real" property resulted
  in no change at all (#1315)

1.4.2
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/13?closed=1)

### Configuration rendering
* FIX: Caching had an influence on context-specific Custom Variable rendering
  when those variables contained macros (#1257)

### Sync
* FIX: The fix for #1223 caused a regression and broke Sync for objects without
  a 'disabled' property (Sets, List members) (#1279)

1.4.1
-----
### Fixed issues
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/12?closed=1)

### Automation
* FIX: A Sync Rule with `merge` policy used to re-enable manually disabled objects,
  even when no Sync Property `disabled` has been defined (#1223)
* FIX: Fix SQL error on PostgreSQL when inspecting Template-Choice (#1242)

### Large environments
* FIX: Director tries to raise it's memory limit for certain memory-intensive
  tasks. When granted more (but not infinite) memory however this had the effect
  that he self-restricted himself to a lower limit (#1222)

### User Interface
* FIX: Assignment filters suggested only Host properties, you have been required
  to manually type Service property names (#1207)
* FIX: Hostgroups Dashlet has been shown to users with restricted permissions,
  clicking it used to throw an error (#1237)

1.4.0
-----
### New requirements
* Icinga Director now requires PHP 5.4, support for 5.3 has been dropped
* For best performance we strongly suggest PHP 7
* When using MySQL, please consider slowly moving to at least version 5.5. One
  of our next versions will introduce official Emoji support 😱😱😱! That's not
  possible with older MySQL versions. However, 1.4.x still supports 5.1.x

### Fixed issues and related features
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/6?closed=1)

### Dashboard and Dashlets
* Multiple new Dashboards have been introduced, their layout has been optimized
* Dashboards are made aware of newly introduced permissions and try to provide
  useful hints

### GUI, UX and Responsiveness
* Many little improvements related to mobile devices have been applied to
  Dashboards, Forms and Tables
* Search has been both improved and simplified. On most tables search spawns
  multiple columns, visible and invisible ones. Multiple search terms are
  combined in an intuitive way.
* Pagination (and search) has been added to those tables where it was still
  missing
* Some form fields referencing related objects are no longer static drop-down
  selection elements but offer suggestions as you type. This makes forms faster,
  especially in larger environments
* Navigation has been simplified, redirects after form submissions have been
  improved, more possibilities to jump to related objects have been added
* Form field description has been moved to the bottom of the screen. Might be
  easier to overlook this way, but while the former implementation was great
  for people navigating forms with their Keyboard, it was annoying for Mouse
  lovers
* Double-Click a Tab to enlarge it to full width
* Action Link bar has been unified, all links should now respect permissions
* All tables showing historic data are now grouped by day
* Property Modifiers, Sync Rules, Import Sources and more objects now offer
  description fields. This allows you to explain your colleagues all the magic
  going on behind the scenes

### Object Types
* Service Sets got quite some tweaking and bug fixing
* Groups of all kinds are now able to list their members, even when being
  applied based on filters
* Command Argument handling has been improved
* It is now possible to configure Dependencies through the Icinga Director
* Cloning Hosts now allows to also optionally clone their Services and Service
  Sets

### Templates
* The template resolver has been rewritten, is now easier to test, strict and
  faster
* Template Tree has been re-written and now also immediately shows whether a
  template is in use
* When navigating to a Template you'll notice a new usage summary page showing
  you where and how that specific template is being used. Therefor, many tables
  are now internally able to filter by inheritance

### Template Choices
* While Host- and Service-Templates are powerful building blocks, having to choose
  from a single long list might become unintuitive as this list starts growing.
  That's where Template Choices jump in. They allow you to bundle related Templates
  together and offer your users to choose amongst them in a meaningful way.

### Apply rules
* Various related issues have been addressed
* A new virtual "is true / is set" operator is now available

### Permissions and Restrictions
* It is now possible to limit access to Hosts belonging to a a list of Hostgroups.
  This works also for Hostgroups assigned through Apply Rules.
* Data List entries can be made available based on Roles

### Data Types
* SQL Query and Data List based Data Fields can now both be offered as Array fields,
  so that you can choose among specific options when filling such
* New overview tables give admins a deep look into used Custom Variables, their
  distinct values and usage
* Various issues related to Boolean values have been fixed

### Import and Synchronization
* Many issues have been addressed. Merge behavior, handling of special fields and
  data types
* Problems with Import Source deletion on PostgreSQL have been addressed
* New Property Modifiers are available. When importing single Services you might
  love the "Combine" modifier
* It is now possible to re-arrange execution order of Property Modifiers and
  Sync Properties
* Preview rendering got some improvements
* "Replace" policy on Custom Vars is now always respected
* Using VMware/vSphere/ESX? There is now a new powerful module providing a
  dedicated Import Source

### REST API
* A new Self Service API now allows to completely automate your Icinga Agent
  roll-out, especially (but not only) for Microsoft Windows
* List views are now officially available. They are very fast and stream the
  result in a memory-efficient way
* Documentation better explains how to deal with various objects, especially
  with different types of Services (!!!!!)

### Internal architecture
* Many base components have been completely replaced and re-written, based on
  and early prototype of our upcoming Icinga PHP Library (ipl)

1.3.2
-----

### Fixed issues and related features
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/10?closed=1)

### Apply Rules
* Slashes in Apply Rules have not been correctly escaped
* Services applied based on Arrays (contains) did not show up in the Hosts
  Services list, and therefor it was not possible to override their vars
* Some magic has been introduced to detect numbers in apply rules - not perfect
  yet

### Host Groups
* It has not been possible to modify Host Groups without defining an apply rule
* Hostgroups have not been sorted
* It is now legal to have `external` HostGroup objects

### Rendered Config
* Custom Endpoint objects are now rendered to their parent zone
* (Rendering) issues with the `in` operator have been fixed
* You are now allowed to put Notifications into specific Zones

### Usability and UI
* Selecting multiple hosts at once and deleting them had no effect
* Documentation got some little improvements
* German translation has been refreshed
* Header alignment has been improved
* Escaping issues with the Inspect feature have been addressed

### Kickstart

* Kickstart is more robust and now able to deal with renamed Icinga Masters and
  more

### CLI
* It is not possible to list and show Service Sets on the CLI

### Import and Sync
* Synchronizing Data List entries caused problems
* A new Import Modifier has been added to deal with LConf specialities
* Issues with special characters like spaces used in column names shipped by
  Import Sources have been addressed
* A new Property Modifier allows to filter Arrays based on wildcards or regular
  expressions
* A new Property Modifier allowing to "Combine multiple properties" has been
  introduced. It's main purpose is to provide reliable unique keys when importing
  single service objects.
* A new warning hint informs you in case you created a Sync Rule without related
  properties
* Synchronization filters failed when built with columns not used in any property
  mapping

### Auditing
* The audit log now also carries IP address and username

### Generic bug fixes
* Fixed erraneous loop detection under certain (rare) conditions
* Various issues with PHP 5.3 have been fixed
* Combination of multiple table filters might have failed (in very rare conditions)

1.3.1
-----

### Fixed issues and related features
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/8?closed=1)

### Service Sets
* Various little issues have been fixed. You can now remove Sets from hosts,
  even when being empty. Services from Sets assigned to parents or via apply
  rule are now shown for every single host, and their custom vars can be
  overridden at a single host level
* Sets assigned to single hosts have been shown, variable overrides have been
  offered - but rendering did not include the Director-generated template
  necessary to really put them into place. This has been fixed

### Usability
* A nasty bug hindered fields inherited from Commands from being shown ad a
  Service level - works fine right now
* There is now a pagination for Zones
* Multiedit no longer showed custom fields, now it works again as it should

### Rendering
* Disabling a host now also disables rendering of related objects (Endpoint,
  Zone) for hosts using the Icinga Agent

### REST API
* Ticket creation through the REST API has been broken, is now fixed

### Performance, Internals
* A data encoding inconsistency slowed down apply rule editing where a lot of
  host custom vars exists
* Some internal changes have been made to make parts of the code easier to be
  used by other modules

1.3.0
-----

### Fixed issues and related features
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/7?closed=1)

### Service Sets
* You are now allowed to create sets of services and assign all of them at
  once with an apply rule
* Sets can be assigned to host templates or directly to single hosts

### Service Variable Overrides
* When switching to a host view's services tab, you'll now not only see its
  very own services, but also ones that result from an apply rule
* You can override those services custom field values for every single host
* Same goes for services belonging to Service Sets

### Apply rules
* A new "contains" operator gives more possibilities when working with arrays
* Service vars are now also offered in the apply rule form wizard

### Custom Variables and Fields
* Issues with special characters in custom variables have been fixed
* In case mandatory fields should not have been enforced, this should work
  fine right now
* Fields can now be shown based on filter rules. Example use case: show a
  `Community String` field in case `SNMPv2` has been selected, but show
  five other fields for `SNMPv3`. This allows one to build powerful little
  wizard-like forms like shown [here](16-Fields-example-SNMP.md)

### Agents and Satellites
* It is now possible to set Agent and Zone settings on every single host. This
  means that you no longer need to provide dedicated Templates for Satellite
  nodes
* The proposed Agent Deployment script has been improved for Windows and Linux
* Infrastructure management got a dedicated dashboard
* Kickstart Wizard helps when working with Satellites. This has formerly been
  a hidden, now it can be accessed through the Infrastructure dashboard

### Commands
* Command arguments are now always appended when inheriting a template. This
  slightly changes the former behavior, but should mostly be what one would
  expect anyways.

### Testing
* [Testing instructions](93-Testing.md) have been improved
* Running the test suite has been simplified
* While we keep running our own [tests](93-Testing.md) on software platforms, tests
  are now also visible on Travis-CI and triggered for all pull requests

### Compatibility
* We worked around a bug in very old PHP 5.3 versions on CentOS 6

### Activity log
* You can now search and filter in the Activity log
* In case you have hundreds of thousands of changes you'll notice that pagination
  performance improve a lot
* A quick-filter allows you to see just your very own changes with a single click

### Deployment
* More performance tweaking took place. 1.2.0 was already very fast, 1.3.0 should
  beat it
* Deployment log got better at detecting files and linking them directly from the
  log output, in case any error occured

### Work related to Icinga 1.x
* Deploying to Icinga 1.x is completely unsupported. However, it works and a
  lot of effort has been put into this feature, so it should be mentioned here
* Please note that the Icinga Director has not been designed to deploy legacy
  1.x configuration. This is a sponsored feature for a larger migration project
  and has therefore been built in a very opinionated way. You shouldn't even
  try to use it. And if so, you're on your own. Nobody will help you when
  running into trouble

### Translation
* German translation is now again at 100%

### REST API
* Issues related to fetching object lists have been fixed

### Integrations
* We now hook into the [Cube](https://github.com/icinga/icingaweb2-module-cube)
  module, this gives one more possibility to benefit from our multi-edit feature
* Icinga Web 2.4 caused some minor issues for 1.2.0. It works, but an upgrade to
  Director 1.3.0 is strongly suggested

1.2.0
-----

### Fixed a lot of issues and related features
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/5?closed=1)

### Permissions and restrictions
* Permissions are now enforced. Please check your role definitions, permission
  names have changed and are now enforced everywhere
* Configuration preview, Inspect action, Deployment and others can be granted
  independently

### Auditing
* Director provides a nice activity log. Now it is also possible to additionally
  log to Syslog or File in case you want to archive all actions elsewhere. Access
  to the audit log in the Director can be controlled with a new permission

### Configuration kickstart
* Now imports also existing notification commands
* Kickstart can be re-triggered on demand at any time

### Performance
* Config rendering got a huge performance boost. In large environments we
  managed it to deploy a real-world configuration 5 times as fast as before

### Import / Sync
* Various improvements have been applied, mostly hidden small features that should
  make work easier. Better form field descriptions, more possibilities when it
  goes to syncing special fields like "imports"
* Property modifiers can now generate new modified columns at import time
* New property modifiers are available. There is a pretty flexible DNS lookup, you
  can cast to Integer or Boolean, JSON decoding and more is offered
* Datalist entries can now be imported and synchronized, this was broken in 1.1

### Configuration possibilities
* You can now define assign rules nested as deep as you want, based on all host
  and/or service properties
* It is now possible to define "assign for" constructs, looping over hashes or
  dictionaries
* Improved Icinga 2 DSL support in commands, implicit support for skip\_key
* More and more developers are contributing code. We therefore simplified the
  way to launch our unit tests and provided related documentation
* Other objects can be referred as a dropdown or similar in custom variables

### GUI and usability
* Form error handling got a lot of tweaking, eventual exceptions are caught in
  various places and presented in a readable way
* The deployment button is now easier to find
* Configuration preview has been improved and allows a full config diff even
  before deploying the configuration
* Inheritance loops are now shown in a nice way and can be resolved in the GUI
* A new hidden gem is the multiedit functionality. Press SHIFT/CTRL while
  selecting multiple hosts and modify imports, custom vars and other properties
  for all of them at once
* Errors or warnings in all historic startup logs now link directly to the
  related config file at the time being, pointing to the referred line

### Agent setup
* The Windows kickstart script got some small improvements and now enables all
  related ITL commands per default

### CLI
* You can find a few new commands, with the ability to list or fetch all hosts
  at once in various ways being the most prominent one

### Related modules
* There are now more additional modules implementing Director Hooks. AWS import
  for EC2 instances, ELBs and Autoscaling Groups. File import for CSV, JSON,
  YAML and XML. We heard from various successful Import source implementations
  in custom projects and would love to see more of those being publicly available!

1.1.0
-----

### Fixed a lot of issues and related features
* You can find issues and feature requests related to this release on our
  [roadmap](https://github.com/Icinga/icingaweb2-module-director/milestone/4?closed=1)

### Icinga Agent handling
* A lot of effort has been put into making config deployment easier for
  environments with lots of Icinga Agents
* Related bugs have been fixed, the generated configuration should now work fine
  in distributed environments
* A customized Powershell Script for automatic Windows Agent setup is provided

### Apply Rules
* It's now possible to work with apply rules in various places

### Notifications
* All components required to deploy notifications are now available. ENV for
  commands is still missing, however it's pretty easy to work around this

### Automation
* Job Scheduler and Job Runner have been introduced. Import, Sync, Deploy and
  run Housekeeping in the background with full control and feedback in the GUI
* There is a new intelligent `purge` option allowing one to purge only those
  objects that vanished at involved Import Sources between multiple Import and
  Sync Runs.

### Data Types
* Booleans, Integers and Arrays are now first-class citizens when dealing with
  custom variables