From 833778f0dfd491297e3dba96f444481dce1415c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kr=C3=B6ger?= Date: Thu, 26 Feb 2026 20:40:05 +0100 Subject: [PATCH] Add CHANGELOG.md --- CHANGELOG.md | 3595 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3595 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..6a0a8b64 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3595 @@ +# Changelog + +## Unreleased + +- Allow a selection of target servertypes for attributes (#427) (dd50bb87) +- Update test configuration and environment (#430) (85e603b4) +- servershell: Add regexp() support to multidel command (#429) (81900f18) + +## v4.24.0 (2026-02-10) + +- servershell: improve checkboxes (#426) (e5526def) +- graphs bug: all rows are multiplied by the number of selected objects (#425) (2077eb5d) +- Update Pipfile.lock (dependencies) (#424) (1e7c8a23) +- Polish changes page (#421) (67163cb4) +- parse_query: strip query (#414) (39aeac98) +- Bump urllib3 from 2.5.0 to 2.6.3 (#423) (5aeecdc1) +- Bump pynacl from 1.6.1 to 1.6.2 (#422) (844ab2e0) +- Support netaddr >=0.8.0 to < 1.4.0 (#418) (a021edeb) +- Upgrade psycopg2-binary to 2.9.x (#417) (a9b19e36) +- Remove obsolete imports (eb626cdc) +- Remove redundant template for igrestlogin (#416) (b195ad0e) + +## v4.23.0 (2025-10-24) + +- adminapi: Support JSON as output format (#415) (48e240da) +- Refuse to change multi to single attribute if there are values (#411) (85900db8) +- Return commit id on successful commit (#408) (d705b0ff) +- inspect: Add keyboard shortcut for edit, Create extra set of buttons (#412) (ba7c0b33) +- Validate inet attributes are not multi attributes (#410) (ba5c5b6e) +- Servershell: More graceful error handling (#407) (3d6f5b67) +- Validate attribute type for type relation (#409) (c77de0ab) +- Update docs and docker compose setup (#406) (26591fc3) +- Fix Servershell search fails silently (#405) (f1d20291) + +## v4.22.1 (2025-07-22) + +- Fix UnicodeDecorError on HTTP status code 4xx (#404) (35efa024) + +## v4.22.0 (2025-07-04) + +- Hide legacy attribute inter_ip and introduce new signal (#396) (f363c62a) +- Increase performance for inet related queries (#403) (be475e58) +- Update dependencies (#402) (4ec20dde) +- Update PostgreSQL version to 17 (f9b59704) +- Bump urllib3 from 2.3.0 to 2.5.0 (#401) (eed22a45) +- Bump setuptools from 76.1.0 to 78.1.1 (#399) (8b7dcdab) +- Print hostname in commit error for duplicate host. (19990c4c) +- Return HTTP status code 400 on ApiError (#397) (ffeb479d) + +## v4.21.0 (2025-04-28) + +- Make the IP Address Chooser configurable (#395) (1772a35a) + +## v4.20.1 (2025-04-10) + +- servershell: Trim prefix/suffix whitespace on queries (#393) (9d002887) +- Fix querying supernet attributes (#394) (9b0503cf) + +## v4.20.0 (2025-04-01) + +- Remove intern_ip support from supernet calculation (#392) (5b8170ae) +- Add sphinx_rtd_theme as dependency (7ca186f7) +- Update Sphinx version to 7.0.0 (6b057b03) +- Add missing build section .reathedocs.yml (1737367e) +- Merge pull request #391 from innogames/dk_update_dependencies (ac176ecc) +- Update dependencies to fix security vulnerabilities (aa614fc0) + +## v4.19.0 (2025-03-19) + +- Merge pull request #389 from innogames/k_af_aware_supernet (b26ba895) +- Fix supernet calculation, the network can also equal (5f184d4d) +- Add tests for supernet calculation (f429854b) +- Calculate supernets separately per address family (bfd11614) +- Reformat using black (0b0a824e) +- Support gzip compression for adminapi requests (#390) (4f61f231) + +## v4.17.1 (2025-03-10) + +- Merge pull request #388 from innogames/k_fix_is_unique_ip_logic (2673d85f) +- Fix is_unique_ip() logic (6ea732e3) +- Reformat using black (a497a90f) +- Reformat using black (83758ca6) +- Update DNS views to match PowerDNS schema (#385) (08df6926) +- Use current year in documentation copyright notice (#386) (c50c69e0) + +## v4.17.0 (2025-01-03) + +- Allow latest paramiko version (#383) (3fe48a03) +- servershell: Make column buttons only visible on hover (#382) (27c292cb) +- [fix] servershell: Do not wrap table headers (#381) (f1f5c414) +- servershell: Add column helper buttons (#380) (c031c011) +- Render HTML contained in messages (#379) (c4d64664) +- Bump cryptography from 43.0.0 to 43.0.1 (#377) (6714b245) +- Fix pagination does not work on history page (#378) (1752b07a) + +## v4.16.2 (2024-09-02) + +- Downgrade minimum version for netaddr (#376) (c36baa7b) + +## v4.16.1 (2024-08-29) + + +## v4.16.0 (2024-08-29) + +- Fix minimum dependencies not specified (#375) (501d51ab) +- admintpi: fix python 3.12 support, due to removed "distutils" (#373) (1f0d0919) +- Update dependencies to latest version (#374) (89181816) +- Drop obsolete constraint on server table (#371) (3efb012b) +- servershell: add autocompletion for "new" command (#366) (6463de54) +- Bump certifi from 2024.2.2 to 2024.7.4 (#368) (b9ba50a5) +- Bump setuptools from 69.5.1 to 70.0.0 (#370) (bf0362a4) + +## v4.15.0 (2024-07-11) + +- Bump zipp from 3.18.1 to 3.19.1 (#369) (531291ba) +- Fix hijacking of object possible (#364) (1d5518ee) +- Retry signing the request if too slow (#363) (f09d43a3) +- Allow changes if permitted by app or user (#362) (0572250b) +- Allow history to be queried via hostname (#361) (dc0e2499) +- Bump urllib3 from 2.2.1 to 2.2.2 (#360) (89749219) +- --- (#359) (bc32d2ea) + +## v4.14.1 (2024-05-15) + +- Allow trailing "_" in hostname attribute. (#354) (4c055ac2) +- Bump jinja2 from 3.1.3 to 3.1.4 (#358) (0e053d19) +- Remove no longer used information about ajax call (#357) (96eba419) +- Upgrade to Django 4.2 LTS (#355) (32c164a9) +- Bump sqlparse from 0.4.4 to 0.5.0 (#353) (ae6eb080) +- Bump idna from 3.6 to 3.7 (#352) (7099fc45) + +## v4.14.0 (2024-04-10) + +- Skip check for permission to change for related_via attrs (#351) (2120f7b3) +- Update dependencies (#350) (a3020806) +- Support pagination with multiple forms (#349) (8cc5b085) +- Allow Serveradmin apps to extend the Servershell (Javascript) (#348) (2e3ac307) + +## v4.13.0 (2024-02-23) + +- Extend inet attributes and improve ip address type validation (2c95e5c3) +- Bump cryptography from 42.0.2 to 42.0.4 (#347) (d169d5c2) +- Support prefilled values for new objects (#344) (54cba35c) + +## v4.12.0 (2024-02-09) + +- Double signing speed by signing optimistically (#343) (4ca71539) + +## v4.11.1 (2024-02-01) + +- Fix /changes breaks due to multiple rows returned (#341) (7f5a3f8d) +- Update sphinx version to latest (#342) (0faca473) +- Bump jinja2 from 3.1.2 to 3.1.3 (#339) (8aec944d) +- Bump cryptography from 41.0.5 to 41.0.6 (#336) (f060aa7c) + +## v4.11.0 (2023-11-10) + +- Make target servertype optional for relation attributes (#335) (78cbe1f5) +- Update all dependencies (#334) (04350bdd) +- Bump werkzeug from 2.3.6 to 3.0.1 (#333) (b2bb39c7) +- Bump urllib3 from 2.0.5 to 2.0.7 (#332) (984c877f) +- Bump pillow from 9.5.0 to 10.0.1 (#331) (df49704b) +- Remove powerdns app left overs (d1b13bf3) +- Bump cryptography from 41.0.3 to 41.0.4 (#329) (b28b715a) +- Bump cryptography from 41.0.2 to 41.0.3 (#328) (f5975503) + +## v4.10.0 (2023-07-27) + +- Bump certifi from 2023.5.7 to 2023.7.22 (#326) (fef05fd8) +- Click on Graphite graph to refresh (#327) (bf85bbbd) +- Show hourly, daily, weekly if no time range (#325) (0b417460) +- Improve graphite cache generation (#323) (035afe13) +- Fix minor UI bugs for resources page (#324) (f1b57353) +- Don't allow zero servers per page (#322) (90ed8d82) +- Update development and test setup (#321) (837b1809) +- Bump cryptography from 41.0.1 to 41.0.2 (#320) (2b900ac8) +- Bump django from 3.2.19 to 3.2.20 (#319) (967007cd) +- Update depenencies (#317) (b141b7e1) +- Bump cryptography from 40.0.2 to 41.0.0 (#316) (8de3069d) +- Bump django from 3.2.18 to 3.2.19 (#313) (e53df365) +- Bump sqlparse from 0.4.3 to 0.4.4 (#312) (ac6b718a) + +## v4.9.0 (2023-04-04) + +- Fix hostname for created objects deleted is None (#309) (98b4ecdb) +- Rename restore view to recreate for clarity (#308) (00e4de0e) +- Display filter for commit_id in changes page (#307) (48ef5860) +- Restoring an object with "computed" attributes fails (#306) (dbf83336) +- Fix not all attributes restored (#305) (74935740) +- Improve performance to fetch hostname for changes (#304) (a2d88ef1) +- Reset values for single attribute from CLI (#303) (c3bc6abb) +- Fix empty commits are created (#302) (e1d776d2) +- Display attributes with no history (#301) (54bd54be) +- Display history attribute in admin panel (#300) (57c061de) +- Link commit to changes page in history page (#299) (50f024f4) + +## v4.8.0 (2023-03-16) + +- Allow to disable change log (history) for attributes (#298) (68e4e1e3) +- Improve change logs aka history (#294) (e7329d29) +- Use internal_domain attribute to generate A, AAAA records (#297) (b71f4179) + +## v4.7.1 (2023-03-08) + +- Focus command input only when user submits search (#296) (de556d71) +- Update dependencies (a0021d69) + +## v4.7.0 (2023-02-20) + +- Suggest command as first match at auto completion (#292) (1b65f6f6) +- Do not search on page load (#291) (3d6ce099) +- Bump werkzeug from 2.2.2 to 2.2.3 (#290) (3f26285e) +- Bump django from 3.2.17 to 3.2.18 (#289) (9ce27411) +- Bump cryptography from 39.0.0 to 39.0.1 (#288) (9257daf7) +- Bump django from 3.2.16 to 3.2.17 (#287) (36cddbc4) +- Use same names for actions as in Servershell (#286) (79ff78c1) +- Display clone column on Admin attribute listing (#285) (ddf2c570) +- Remove no longer existing filter "between" from examples (#284) (24c76289) +- Bump certifi from 2022.9.24 to 2022.12.7 (#283) (6b3069f6) +- Improve common pagination (#282) (30664378) +- Update dateparser library and usage (#273) (aab1e3ae) +- Ignore requirements.txt (#281) (b58dac32) +- Add incomplete tests for all attribute types (#279) (64df03e2) + +## v4.6.0 (2022-11-22) + +- Add color for state cold standby (#280) (ee873c6e) +- Update dependencies (#278) (264b6f65) +- Make Multi Attribute textarea sizeable (#277) (09efe510) +- Add missing "s" to doe not exist (#276) (2d3de802) + +## v4.5.2 (2022-11-11) + +- Add command to sum numeric attributes (#275) (6d68d6f8) + +## v4.5.1 (2022-11-10) + +- inspection: add links to related objects (#274) (5decde11) +- Delete obsolete model serverdb.Change (06de9f37) + +## v4.5.0 (2022-10-12) + +- Introduce description field to AccessControlGroup (#271) (d04ba761) +- Fix graph_table variable overridden (#270) (f6d65dec) + +## v4.4.5 (2022-10-11) + +- Fix ProgrammingError: syntax error near "AND" (#269) (94f78cec) +- Update Django and dependencies (#268) (408abe5c) +- Bump django from 3.2.14 to 3.2.15 (#267) (8f5021bf) + +## v4.4.4 (2022-07-11) + +- Display related as disabled in edit mode (#266) (41698a00) +- Disable row if object does not have attribute (#265) (cc184841) +- Merge pull request #264 from innogames/dependabot/pip/django-3.2.14 (e59c71ca) +- Bump django from 3.2.13 to 3.2.14 (91ed30d0) +- Merge pull request #263 from innogames/powerdns_46_schema (ccd4f240) +- Apply changes to views necessary for 4.6 schema (25109540) + +## v4.4.3 (2022-06-16) + +- Merge pull request #262 from innogames/graphite_unbound_local_error (39e78b89) +- Merge pull request #261 from innogames/serverdb_history_show_deletion (7f3b43d2) +- Merge pull request #260 from innogames/servershell_inspect_display_related (a278fb60) +- Ensure graph_table variable is defined (88c484f4) +- Fix grammar and typos (345c71ed) +- Display deletion of object in history (9f1d7009) +- Display related attributes in inspect view (88c2198d) + +## v4.4.2 (2022-06-09) + +- Merge pull request #258 from innogames/servershell_orderby_add_attribute (139d9d57) +- Merge pull request #259 from innogames/serverdb_history_wrap_long_lines (4b19cbca) +- Merge pull request #257 from innogames/serverdb_update_attribute_readonly (391e65d7) +- Wrap long lines but ensure column is at least 125px (85a80d03) +- Avoid reload when already ordered by attribute (7e75b9d8) +- Order by object_id if current attribute is removed (e488eeb7) +- Ensure attribute is visible before ordering by it (d014089f) +- Deny changing some Attribute fields (88f0f73e) +- Merge pull request #255 from innogames/adminapi_ignore_newlines (655bab67) +- Merge pull request #256 from innogames/dependabot/pip/pillow-9.1.1 (40adc32c) +- Bump pillow from 9.1.0 to 9.1.1 (517b00e5) +- Ignore newlines in query string (2d134f89) +- Merge pull request #254 from innogames/docker_compose_fixes (5b78c249) +- Fix and improve docker compose setup (25e9df2b) +- Merge pull request #253 from innogames/powerdns_domain_improvements (05f1f96f) +- Ensure only one domain setting is applied (4d15a19d) +- Add explanatory comment how we manage the schema (6fefad39) +- Ensure tblib is installed in --dev (90ce92c3) + +## v4.4.1 (2022-05-04) + +- Merge pull request #252 from innogames/servershell_fix_changes_still_visible (fa12c683) +- Fix changes remain visible after commit (7b3d464c) +- Merge pull request #251 from innogames/pin_and_cleanup_dependencies (980d4100) +- Remove obsolete jinja2 template engine (39d1fb09) +- Generate Pipfile.lock (d28c4d89) +- Ensure Faker version < 14.0.0 (09b18ad4) +- Ensure requests version < 3.0.0 (b6e52d5c) +- Ensure pex version < 3.0.0 (cbaee6cf) +- Ensure Werkzeug version < 3.0.0 (3e8c0622) +- Ensure django-extensions version < 4.0.0 (d66625b9) +- Ensure sphinx 4.3.x and sphinx-rtd-them < 2.0.0 (43052ddb) +- Ensure pexpect version < 5.0.0 (69e18a6b) +- Ensure jinja version 2.10.x (63b7102e) +- Ensure paramiko version 2.10.x (c43ac60b) +- Ensure django_compressor version < 3.0.0 (cb582884) +- Ensure django-environ version < 1.0.0 (9d9621da) +- Ensure dateparser version < 1.0.0 (1a45efa9) +- Ensure Pillow version 9.1.x (8e0b598b) +- Ensure django-netfields version < 2.0.0 (5a73f5e6) +- Remove dependency of gunicorn (cef75c27) +- Ensure netaddr version < 1.0.0 (a47274dc) +- Merge pull request #232 from innogames/powerdns_fix_test_cleanup (4c5ec39f) +- Fix created objects not deleted between test cases (2e6b1a81) + +## v4.4.0 (2022-04-07) + +- Fix function name conflict when minifying (c8648570) +- Merge pull request #241 from innogames/k_duplicateip (3f024be6) +- Reduce display number of free ip addresses (72611e9d) +- Prevent duplicate address in choose_ip_addr (752e24e4) +- Merge pull request #248 from YannikSc/y_pinned_entries (384f8c72) +- Remove blue highlight for changed rows (c678836d) +- Merge pull request #237 from YannikSc/y_implicit_attr (6da2d340) +- Merge pull request #242 from innogames/graphite_collection_params (d9f8e4ba) +- Move validator to graphite models (564bd3ff) +- Check if other form fields are valid (0af7e66c) +- Add validation for Numerics and Variations (04082c13) +- Forbid creating graphite collections with dublicated params (9ed603d2) +- Merge pull request #250 from innogames/fix_permission_denied_for_unmodified_attribute (a5290041) +- Unify comment style (31981297) +- Add todo to improve ACL evaluation (6b9483df) +- Add todo to check if we can use "read committed" (bb91f896) +- Update Copyright (e9603a31) +- Optimize imports and ordering (a89979dc) +- Fix AttributeError: 'int' object has no attribute 'as_tuple' (a761d71d) +- Fix Attribute was modified despite being whitelisted (4cb3d062) +- Cleanup code (f170a8d8) +- servershell: Improve highlights for changes (5efe9545) +- implicit attr: Implement autocomplete (b6708c14) +- commands: Fix indentation, Add documentation (abea8be9) +- servershell: Add implicit attr/setattr/multiadd (aad4cdac) + +## v4.3.0 (2022-03-30) + +- Merge pull request #236 from YannikSc/y_ip_search (9441707f) +- Merge pull request #243 from innogames/meik_DOS_7057_ipaddress_containedby (78a69647) +- Merge pull request #249 from innogames/dependabot/pip/paramiko-2.10.1 (bf1b7bd8) +- Bump paramiko from 2.8.0 to 2.10.1 (2f9f0f47) +- Fix clearing the search shows all values now (5f722fdf) +- Expect that ContainedBy raises a ValueError (9c66531d) +- Merge pull request #247 from seqizz/g_hidelist (bbb7f066) +- Merge pull request #246 from innogames/export_description (acc21c2e) +- Remember attribute list status (d2c29bfa) +- Merge pull request #238 from innogames/meik_DOS_4385_multidel (6d4b07cd) +- Merge pull request #240 from innogames/opensearch (5a5b6515) +- opensearch.xml: add "title" attribute (3975fd3d) +- Add missing newline at end of file (03236333) +- implement opensearch.xml to support SA search via browser search (35d23646) +- Merge pull request #239 from innogames/improve_spinner (ed1ccf1b) +- Merge pull request #245 from innogames/common_pagination (fa58af4d) +- "export" command: use all selected attributes by default (2f1a76d0) +- Change render to search (56d6ec72) +- Use common paginator on leftover pages (48fa2e4f) +- Merge pull request #244 from innogames/docker_remove_tty (d10d5f3d) +- Remove tty: true for services (5a86de70) +- Fix ContainedBy filter for IP networks (c1acc112) +- Merge pull request #235 from innogames/sort_attributes (c52ad807) +- Merge pull request #234 from innogames/persist_postgres_volume (dc8b867f) +- Split spinner/timers for different ajax actions (40c9d0f0) +- Fix multidel visualization (45175608) +- Docker: persist database volume (02dcf54e) +- intern_ip modal: Add search for intern_ip modal (748dd4fb) +- Servershell: sort multi attributes alphabetically (17bb58a4) +- Merge pull request #233 from innogames/fix_createapp_default_token (e2099ba6) +- Fix passed token is ignored and always generated (d3b8cfca) +- Merge pull request #231 from innogames/fix_env_path (91bafa4b) +- Fix path to load .env in settings.py (a96c90cb) + +## v4.2.1 (2022-03-15) + +- Merge pull request #229 from innogames/safe_connect_signals (c87bd517) +- Move pre-/post_commit signals to dedicated module (e024f4c4) +- Connect signals using Signal.connect (a10f9240) +- Merge pull request #230 from innogames/dependabot/pip/pillow-9.0.1 (2e3589b1) +- Bump pillow from 9.0.0 to 9.0.1 (cd27c1be) +- Merge pull request #227 from innogames/powerdns_update_domains (54106cfa) +- Update PowerDNS domain data via post_commit signal (e2718dae) +- Add tests to verify PowerDNS domain updates (fd996d64) +- Merge pull request #228 from innogames/configurable_powerdns_integration (ccc07a75) +- Make PowerDNS integration optional (0a3899bc) +- Merge pull request #226 from innogames/powerdns_schema_and_unittest_improvements (b7cc51a7) +- Fix contents (swapped) of database fixtures (ed7b9d5a) +- Remove test dependency to database name (56933465) +- Test PowerDNS signal functions directly (7355fe24) +- Combine Domain tests into one Test class (b9248df9) +- Create PowerDNS schema via Django migrations (67e9b6a6) +- Merge pull request #225 from innogames/common_pagination (5b0ab51c) +- Alter style for common pagination (3404e9fc) + +## v4.2.0 (2022-03-07) + +- Merge pull request #224 from innogames/feature/improve-admin-lists (e9ed35b8) +- Show truncated hovertext for Attribute admin (045e51f6) +- Add search fields and list filters for Attribute (52618cf8) +- Add more display fields to Attribute admin list (6d61b6f4) +- Add search fields and list filters for Server (91c01a11) +- Add more display fields to Server admin list (4db60258) +- Add display and search fields to Servertype admin (7f3bae9c) +- Add search fields and filters for AccessControl (977c4fd5) +- Add more display fields to AccessControl admin (e48d4e30) +- Add search fields and list filters for Graphite (5b151626) +- Add more display fields to Graphite admin list (499d3008) +- Prefetch the owner relation for applications (f542cc93) +- Add search fields and list filters for Application (cb94ec11) +- Add autocomplete for owner form field (1f941986) +- Prefetch public keys in the Application admin list (4b450c74) +- Use display decorator to set attributes (d3ba5b03) + +## v4.1.2 (2022-02-28) + +- Fix restrict parameter of Query changed (#223) (28b0c2f6) +- Add test case to delete PowerDNS domain (#222) (cc49531c) +- Delete PowerDNS domains on object deletion (#221) (8c05eef2) +- Display workflow status instead of travis ci one (#220) (160f3201) +- Merge pull request #215 from innogames/create_pdns_domains (efc87f64) +- Setup github workflows to run PowerDNS tests (6b99bbe5) +- Ensure PowerDNS schema is present for tests (01b16c46) +- Test PowerDNS domain creation on post_commit (cdc8613a) +- Remove master attribute from Domain model (29941819) +- Create PowerDNS domain on post_commit signal (7ee7235b) +- Add default PowerDNS domain mapping config (397bad9f) +- Setup signals module for powerdns app (55725804) +- Rename domain_id to domain (db1d073e) +- Merge pull request #219 from innogames/fix_serverdb_tests (dbc0ffb3) +- Add missing class and method super calls (0cbad845) +- Merge pull request #218 from dreis2211/fix-master-references (4884e38c) +- Fix references to master branch (6fa7aba8) +- Merge pull request #217 from innogames/docker_compose_fixes (1fba366a) +- Let docker-compose services listen to localhost only (cb86729b) +- Disable default sqlite backend in pdns-auth (f8434a93) +- Merge pull request #216 from innogames/smaller_webui_fixes (4a83f74d) +- Delete unused paginagion templatetag (89e9e9d6) +- Include base.html in empty.html (26a30f87) +- Allow all menu entries to be dropdowns (2ab1aea1) +- Remove Show/Hide prefix for dropdowns in menu (4b72f731) +- Merge pull request #212 from innogames/dependabot/pip/django-3.2.12 (3ba79ef1) +- Bump django from 3.2.11 to 3.2.12 (2d3fa2c5) +- Merge pull request #210 from innogames/synchronise_migrations (54cf6a0b) +- Add migrations for (datetime) attribute, servertype (7a4aaaa8) +- Merge pull request #209 from innogames/powerdns_migrations (faf45738) +- Add missing powerdns migrations (bde58ff4) + +## v4.1.1 (2022-01-20) + +- Merge pull request #208 from innogames/revert-207-update_bootrap (b5b03927) +- Revert "Update Bootstrap to 4.6.x" (4a297e45) + +## v4.1.0 (2022-01-20) + +- Merge pull request #205 from innogames/servershell_diff_objects (db6f0d26) +- Merge pull request #207 from innogames/update_bootrap (43403a57) +- Merge pull request #206 from innogames/fix_navigation_resize (b1871d06) +- Use .table-responsive instead of custom CSS (a9e8d1e6) +- Fix version and spinner break nav on small screens (695b3367) +- Update Bootstrap to 4.6.x (a29068d9) +- Use hostname instead of object_id as column header (60cda406) +- Don't diff object_id and hostname only if requested (647ece32) +- Add diff command to servershell (3c2d397c) +- Mark PowerDNS extension as "under development" (03c370fe) +- Merge pull request #203 from innogames/dependabot/pip/django-3.2.11 (431ff159) +- Bump django from 3.2.9 to 3.2.11 (0248cfa1) +- Merge pull request #202 from innogames/dependabot/pip/pillow-9.0.0 (a6b88e83) +- Bump pillow from 8.4.0 to 9.0.0 (b9390dd6) +- Merge pull request #201 from innogames/powerdns_managed_models (665cbe41) +- Document link to PowerDNS PostgreSQL schema (985211f6) +- Set connect timeout for pdns db to 1 second (2b520c1d) +- Enable database router for powerdns models (8014615b) +- Add database router for powerdns models (cf32fd9c) +- Add Record model to access PowerDNS records (e69bb0ae) +- Add Domain model to access PowerDNS domains (922052f2) +- Merge pull request #200 from innogames/powerdns_app_packaging (4b17abb9) +- Include powerdns templates in package_data (307a58b4) +- Merge pull request #199 from innogames/powerdns_app (58bc004e) +- Add menu entry for DNS (6adb568a) +- Register powerdns app in INSTALLED_APPS (7cae73c9) +- Create Django powerdns app (22e9045f) +- Merge pull request #198 from innogames/powerdns_documentation (31652f2d) +- Merge pull request #197 from innogames/powerdns_database_connection (0362fc83) +- Add PowerDNS extension documentation (a3bc1dd3) +- Show page index up to 2nd level on index.rst (433982d3) +- Add optional configurable PowerDNS db settings (3d91d54e) + +## v4.0.0 (2021-11-23) + +- Merge pull request #194 from innogames/django_3.2.x (57ab0151) +- Merge pull request #196 from innogames/docker_compose_powerdns (8109f759) +- Update Django to 3.2.x (94405919) +- Explicitly set DEFAULT_AUTO_FIELD to AutoField (bb405d6c) +- Remove obsolete default_app_config for Django 3.2 (5504d44f) +- Apply PowerDNS schema to pdns-db service on start (ee6af519) +- Make web service depend on pdns-db (1bca1cec) +- Add pdns-auth service (99ae008f) +- Add pdns-db service (b996782e) +- Update database engine module name (8942aaa8) + +## v3.10.0 (2021-11-15) + +- Merge pull request #193 from innogames/fix_django_environ_deps (a50d127a) +- django-environ must be a dependency (8146befc) +- Merge pull request #191 from innogames/servershell_dismiss_by_esc (ef5aa73c) +- Merge pull request #189 from innogames/serverdb_history_exclude (04565ab9) +- Dismiss alerts by keyboard shortcut (d55f3e21) +- Merge pull request #192 from innogames/update_workflow_settings (e7ef1850) +- Use PostgreSQL 14 for tests (eb6aa3eb) +- Add Python 3.10 test support (2f3e1cee) +- Drop Python 3.6 tests (d2ef18df) +- Merge pull request #190 from innogames/servershell_alert_position (a53e9568) +- Merge pull request #184 from innogames/docker_compose (e94b3dda) +- Move alert box to the top right of the Servershell (f5d7fa4a) +- Be able to exclude changes matching a string (e86b0a75) +- Merge pull request #188 from innogames/fix_docs (4924fc7e) +- Update Spinx to version 4.2.0 (7aac92e6) +- Update copyright (a4e79dcb) +- Use more pythonic way to check if string is empty (5d120f9a) +- Rename variable PRODUCTION_DB to REMOTE_DB (ebc79070) +- Fix typo in example email address (c8b92bcf) +- Update instructions to setup development environment (2232884a) +- Update instructions to setup development environment (cfc71853) +- Setup ALLOWED_HOSTS settings for development (86c4c64a) +- Create default application in dev environment (3a2e94ca) +- Add management command to default application (417cf9cd) +- Create default user in development setup on start (e199ca4e) +- Add management command to create default user (49167757) +- Ensure backwards compability by defaulting to None (a2a29c41) +- Use django-environ to configure local environment (ed856137) +- Provide script to dump production database (a5e04c40) +- Make settings configurable via .env file (449c6d2e) +- Start Django development server on web service start (680db0d9) +- Add docker-compose.yml with web and db service (37ee9a9d) +- Merge pull request #187 from innogames/fix_doc_tests (6b0af837) +- Fix /bin/sh: 1: sphinx-build: not found (7c81b4d7) +- Merge pull request #185 from innogames/docs_new_tab (09aff784) +- Merge pull request #186 from innogames/pipfile_lock (61bc0bd8) +- Update Pipfile dependencies to latest versions (e00fe851) +- Open documentation in a new tab (398858d9) + +## v3.9.1 (2021-11-02) + +- Merge pull request #183 from innogames/can_sign (88939f25) +- Check signing capability using non-empty data (2b5cf828) +- Merge pull request #182 from innogames/g_bitmoredetail (93524ee5) +- dataset: Add some verbosity to exception (2a18ddad) +- Merge pull request #181 from innogames/dependabot/pip/sqlparse-0.4.2 (12444a34) +- Bump sqlparse from 0.4.1 to 0.4.2 (4d4db43c) +- Merge pull request #180 from innogames/dependabot/pip/pillow-8.3.2 (51053e6a) +- Bump pillow from 8.2.0 to 8.3.2 (b154bfa7) + +## v3.9.0 (2021-08-03) + +- Merge pull request #179 from innogames/fix_alerts_move_table (a5437b38) +- Fix alerts move result table up and down (60e07806) +- Merge pull request #178 from innogames/fix_alert_hides_previous (069aac48) +- Group alerts in div, use id for template alert (eb644076) +- Fix new alert toggles previous one (ccebdb96) +- Merge pull request #177 from innogames/servershell_autocomplete_remove_attr_completion (00e45df4) +- Remove obsolete autocompletion for attribute ids (e210bb65) +- Merge pull request #176 from innogames/servershell_remove_value_completion (520758dd) +- Remove auto completion for attribute values (87c8672a) +- Merge pull request #175 from innogames/servershell_add_pagination_buttons (54cd8264) +- Add Next, Prev links to control pagination (a58e4661) +- Merge pull request #174 from innogames/fix_servershell_perpage (d19d7bd5) +- Fix pagination shows fraction after using perpage (4f849e89) +- Merge pull request #173 from innogames/servershell_cleanup (028374d2) +- Merge pull request #172 from innogames/jquery_update (bd0544d9) +- Update jQuery from 3.4.1 to 3.6.0 (ea48576e) +- Ensure browser autocomplete is off (17959fa6) +- Update jQuery from 3.4.1 to 3.6.0 (cb5c2a65) +- Remove unused variable (1ba5cad6) + +## v3.8.0 (2021-07-21) + +- Fix auto completion triggered after submit (b55ffd17) +- Fix cannot select objects on pages other than first (efdd346d) +- Fix style issues - terminate statements (0239f75d) +- Set browser URL to latest Query (a1cea3e1) +- Update serveradmin/servershell/static/js/servershell/autocomplete/command.js (db6f8dbf) +- Allow bookmark, loadbookmark, delbookmar commands (92e8c06b) +- Add test cases: overlapping values for networks (6ab2c695) +- Make type read-only for editing existing attributes (de71f842) +- Update serveradmin/serverdb/admin.py (dd3940f3) +- Display ip_addr_type as read-only when editing (1c90deb9) +- Open source the hosts autocompletion (a076f717) + +## v3.7.1 (2021-06-18) + +- Merge pull request #162 from innogames/fix_inet_attr_overlaps (0c7d6584) +- Fix inet attribute overlaps with itself (015c354e) +- Merge pull request #163 from innogames/fix_psycopg2_utc_connection_issue (65dd01bb) +- Mitigate database connect isn't set to UTC (184440f5) +- Merge pull request #161 from innogames/dependabot/pip/django-2.2.24 (607e7cff) +- Bump django from 2.2.23 to 2.2.24 (8cff5308) + +## v3.7.0 (2021-06-08) + +- Update copyright date (f790a464) +- Merge pull request #159 from innogames/servershell_fix_quoting (90a407e3) +- Merge pull request #160 from innogames/fix_wrong_block (fb74461a) +- Fix additional stylesheets in wrong template block (7cae31b6) +- Fix quotes in search term are HTML escaped (e4689c7a) +- Merge pull request #158 from innogames/pipfile_update (4c2aa478) +- Use latest PostgreSQL version 13 (fe1f763e) +- Drop Python 3.5 support (e2cc9fec) +- Update Django, Jinja2 and some other libraries (4c13f962) +- Merge pull request #157 from innogames/dependabot/pip/urllib3-1.26.5 (bf36a423) +- Bump urllib3 from 1.26.4 to 1.26.5 (cc002456) +- Merge pull request #156 from innogames/servershell_export_only_selected (3c7d2409) +- Merge pull request #155 from innogames/grafana_link (d5dad600) +- Display links to Grafana dashboard in graph page (e9265aa7) +- Fix export command does not abide selected servers (c8e48299) +- Fix typos (01a00900) + +## v3.6.4 (2021-05-19) + +- Merge pull request #154 from innogames/fix_new_server_form (3ce88b9d) +- Fix PR number in comment (bf363b5d) +- Fix FilterValueError when creating new object (8cf46036) +- Merge pull request #152 from innogames/submit_only_changes_on_edit (95958263) +- Do not commit object if there are no changes (c9b93eee) +- Remove extra import (10ed75c3) +- Fix all attribute values submitted (even unchanged) (a2266921) +- Merge pull request #151 from innogames/timeout-float (ce86f009) +- Prevent warnings for timeouts with decimal part (4103ea31) + +## v3.6.3 (2021-05-03) + +- Merge pull request #150 from innogames/fix_ip_addr_type_rename_object (030a925d) +- Fix changing hostname raises ip_addr_type ValidationError (5a92cf6c) +- Add test case to change hostname (6b547408) + +## v3.6.2 (2021-04-27) + +- Merge pull request #149 from innogames/fix_attr_inet_validation (697f3172) +- Document how to run the tests (e6d26af4) +- Add most important tests for ip_addr_type validation (7365241e) +- Ensure intern_ip and inet attrs are transformed (d17b3e5c) +- Add faker library to development environment (f4d0cb21) +- Remove no longer required validation methods (cfe18693) +- Deny adding inet attribute to ip_addr_type null (157c29a6) +- Exclude ip_addr_type from change form in admin (7fd0b6c1) +- Adjust description for ip_addr_type selection (8bf330aa) +- Remove no longer used methods (6573350a) +- Add comment to clean up duplicate logic later (75e5cd90) +- Refactor validation for intern_ip and inet attributes (db330893) +- Add a todo to refactor the validation (74918063) +- Update copyright (1d612847) +- Remove extra import for utc (173bcdad) +- Sanitize clean method and its super call (899e892e) +- Merge pull request #148 from innogames/dependabot/pip/django-2.2.20 (42757993) +- Bump django from 2.2.19 to 2.2.20 (5145b73a) + +## v3.6.1 (2021-04-09) + +- Merge pull request #147 from innogames/more_xss_prevention (daef82f4) +- Update parameter doc string for alert (ff957bdb) +- Prevent XSS by appending results as text (18072a43) +- Do not allow HTML in alert messages to preven XSS (1988cd7d) +- Merge pull request #146 from innogames/fix_profile_format (44ac815c) +- Remove no longer used function (1fb1aab8) +- Use let instead of var for variables (2704e24e) +- Add duration as text, it contains no html (da611984) +- Log profile time in ms and fixed format (6e873122) +- Merge pull request #145 from innogames/duplicate_violation (8e203acf) +- Remove duplicate violation message (67f753af) +- Merge pull request #144 from innogames/servershell_escape_attr_values (b07f5c1b) +- Use shorthand of jQuery to create HTML tags (9cf8beb1) +- Merge pull request #143 from innogames/explain_ip_addr_types (9d9a3bae) +- Safely add attribute values to prevent XSS (f1d3cbb9) +- Add curly brackets for conditions everywhere (e40bfe9a) +- Add better explanation to ip_addr_type choices (801f3d7a) + +## v3.6.0 (2021-03-22) + +- Merge pull request #141 from innogames/compress_js_css (aba99dbc) +- Merge pull request #140 from innogames/configurable_auto_completion_delay (17c32d5e) +- Concatentate and compress JS/CSS on the fly (dfbcb826) +- Merge pull request #142 from innogames/pipfile_update (5f654284) +- Ensure latest Django 2.2.x is installed, update deps (8b53c291) +- Make auto completion delay configurable per user (ef27c636) + +## v3.5.0 (2021-03-12) + +- Merge pull request #136 from innogames/autocomplete_show_exact_match (2ebc8944) +- Merge pull request #138 from innogames/servershell_display_version (1f835883) +- Merge pull request #135 from innogames/fix_cursor_pos_change (bbeaa532) +- Show current version in Servershell (a5ff2857) +- Merge pull request #139 from innogames/add_spinner_runtime (36e32cc8) +- Fix auto completion overrides (similar) previous attrs (10abcac5) +- Include entered attribute in autocompletion for attr commands (c5e5a43e) +- Use curly brackets for if conditions (c7e1f08a) +- Make sure spinner is always (only once) disabled (cf61714b) +- Add simple version of the spinner timer (6483190c) +- Merge pull request #137 from innogames/remove_spinner_timer (85daab58) +- Simplify spinner by removing (wrong) progress timer (534384ff) +- Use curly brackets for if conditions (d4f02200) + +## v3.4.1 (2021-02-26) + +- Merge pull request #132 from innogames/several_quick_performance_improvements (80406712) +- Cleanup unused imports (b2c1ab9c) +- Prefetch all many relations instead of FULL JOIN (a05fd9ce) +- Optimize the way history data is loaded (cd9c4e4f) +- Defer some special attributes in queries (1602c008) +- Merge pull request #133 from innogames/fix_autocomplete_in_safari_webkit (92a3e6e5) +- Merge pull request #134 from innogames/remove_travis_ci (cf05e290) +- Remove Travis CI integration (227cf1b4) +- Merge pull request #131 from innogames/actions (3040ee49) +- Use brackets for if statement (7b436a67) +- Add explainatory comment to maybe not so obvious statement (419fa5c8) +- Fix command input not working in Safari/Webkit (b8702159) +- Implement testing with github actions (a27cb549) + +## v3.4.0 (2021-02-19) + +- Merge pull request #129 from innogames/multiattr_inline_edit_conflict (a6eedd7a) +- Use consistent if/else format everywhere (ae2f3256) +- Make delete_attribute more readable (d8c5a5c0) +- Fix multiadd, multidel ignore previous changes (d9dc1f06) +- Check for duplicate values once (55070f96) +- Add missing comma (3b1d93e1) +- Do not set before possible removal (da99ff57) +- Remove extra assignment we are working with refs (bd241c9f) +- Remove meaningless concat (42a30095) +- Fix removal of staged changes for attr not working (2852fd2c) +- Merge pull request #130 from innogames/inspect_by_hostname (03ca122a) +- Minor code style improvments (7d25a0e4) +- Allow to inspect by hostname and check if object exists (ba8598a9) +- Fix inspect crashes with HTTP 500 on Bad Request (7c71c9bb) + +## v3.3.1 (2021-01-29) + +- Merge pull request #126 from innogames/ssh_wrong_keys (2ef51abe) +- Add install_requires (f453c19c) +- Filter out bad keys from ssh agent (e5c9ae2b) + +## v3.3.0 (2020-12-21) + +- Merge pull request #125 from innogames/history_show_app_and_owner (da012c4c) +- Show app and owner in Servershell history (e909b490) + +## v3.2.0 (2020-12-04) + +- Merge pull request #124 from innogames/profile_signals (f3cf26dd) +- Add decorator to log function execution time (14222008) +- Merge pull request #123 from innogames/consistent_string_represantation (c5d6393f) +- Use consistent string representation in views (ec119977) + +## v3.1.0 (2020-11-04) + +- Merge pull request #121 from innogames/get_exclusive_ip_address (8b08523d) +- Merge pull request #120 from innogames/adminapi_lock (327ea8cb) +- Provide API endpoint to lock something for n secs (88a396fa) +- Add method to get exclusive free ip address (1a29fd0f) +- Update serveradmin/api/api.py (de09aae1) +- Provide API endpoint to lock something for n secs (08a0599e) + +## v3.0.1 (2020-10-27) + +- Merge pull request #118 from innogames/fix_supernet_validation (b4580238) +- Merge pull request #119 from innogames/fix_http_500_if_duplicate_intern_ip (edd91699) +- Fix HTTP 500 when commiting new object with same IP (18776694) +- Do not clone intern_ip it is usually unique (f542e2cd) +- Fix ServertypeAttribute has no attribute (80974840) + +## v3.0.0 (2020-10-14) + +- Merge pull request #117 from innogames/fix_supernet_attributes (60937feb) +- Deny wrong setup for supernet attributes and ip_addr_type (256cac47) +- Fix supernet attribute breaks optional intern_ip (b2b1e964) +- Merge pull request #116 from innogames/object_creation_without_hostname (c9c2a246) +- Fix missing special attributes lead to server error (874148d4) +- Merge pull request #114 from innogames/hostname_length (3402f3e3) +- Merge pull request #115 from innogames/r_ressourcehvlink (4f59cef0) +- Update serveradmin/resources/templates/resources/index.html (ebce54de) +- Resources have graph link for hypervisor (f1569bee) +- Increase hostname length to 254 characters (546b4724) +- Merge pull request #10 from innogames/filter_removal (32ac357c) +- Validate filter value datatypes (b8aeaa80) +- Remove deprecated filters (232e5a9d) +- Remove deprecated adminapi modules (2711e07e) +- Merge pull request #113 from innogames/remove_query (53ac1f88) +- Remove deprecated query function (c98815de) +- Merge pull request #112 from innogames/remove_dataset_create (00c75c17) +- Remove deprecated dataset_create function (1ef17938) +- Create codeql-analysis.yml (bc19f23f) +- Merge pull request #111 from innogames/setuptools (d1b9bc2d) +- Install setuptools for packaing in dev environments (76251b4c) +- Update Django to 2.2.15 (aa99c263) +- Merge pull request #110 from innogames/r_addquotes (cefef937) +- Missing quotes on additional attributes (15fca7c5) + +## v2.0.2 (2020-08-06) + +- Merge pull request #109 from innogames/grapite_cron_logging (9d27a1aa) +- Improve logging of cache_graphite command (3559e7db) + +## v2.0.1 (2020-07-08) + +- Merge pull request #106 from innogames/fix_graph_url (fe604f7f) +- Merge pull request #107 from innogames/update_dependecies (883d4b0d) +- fix(graphite): render url not dispatched (b605b652) +- task: Update Pipfile.lock (0b90a16b) + +## v2.0.0 (2020-07-06) + +- Merge pull request #105 from innogames/django_2 (f9ebf16b) +- task: Add testing for Python 3.8 (070ed08e) +- fix: Fix LANGUAGE_CODE value for Django 2.2.x (8d076dd8) +- task: Update to Django 2.2.13 (b7a77f8b) +- cleanup(adminapi): Delete obsolete interactive module (02a1894e) +- cleanup(servershell): Remove obsolete export view (caae2757) +- task(servershell): Update urls to Django 2.x (11315962) +- task(serverdb): Update urls for Django 2.x (cea3f3ea) +- task(resources): Update urls for Django 2.x (71fdb31f) +- task(graphite): Update urls for Django 2.x (d5948743) +- cleanup(api): Remove obsolete functions view (7ad7f3f9) +- task(api): Update urls for Django 2.x (135d883b) +- task: Update serveradmin urls.py to Django 2.x (c074a763) +- task: Update to Django 2.0.19 (855c8749) +- Merge pull request #103 from innogames/adminapi_dependency (b8efa839) +- fix: Move VERSION from serveradmin to adminapi (c1370978) +- cleanup(adminapi): Remove deprecated functions (1720c05f) +- Merge pull request #102 from innogames/adminapi_timeout (653101f5) +- fix(adminapi): No retry at timeout or abortion (df792ab9) +- Merge pull request #101 from innogames/postgresql_11 (679dd01b) +- task: Update Travis CI to use Postgresql 11 (9061fcb3) +- Merge pull request #100 from innogames/django_1_11 (85ac7d94) +- task: Require Django 1.11 minium and Python 3.7 as default (e7f1bf3d) +- Merge pull request #97 from innogames/serveradmin_dataset_object (6c94f070) +- Merge pull request #99 from innogames/hotfix_templatetag_common_group (48fb6c98) +- fix(common): Zero columns make range function fail (1ff35f47) +- Merge pull request #98 from innogames/migration_log_cleanup (6bda4634) +- fix(clear_migration_log): add missing __init__ files (72fce5c0) +- Merge pull request #96 from innogames/migration_log_cleanup (3aade24d) +- feature: Provide server side DatasetObject (4eb4ecd8) +- serveradmin(resources): add management command for migration log cleanup (c8107153) +- Merge pull request #90 from innogames/travis_python_versions (f29c8b6a) +- task: Update distribute and python versions for tests (cbee905f) +- Merge pull request #95 from innogames/automatic_urls_include_bugfix (e7c86dc9) +- fix: Skip app if urls module does not exist (da8172f0) +- Merge pull request #94 from innogames/automatic_urls_include (d8795a9b) +- Merge pull request #93 from innogames/more_tests (73126c62) +- feat(adminapi): Add unittests for commandline interface (f6f536f2) +- fix: Support automatic url inclusion for AppConfig (618166e2) +- feat: Run tests in parallel (33568ce3) +- fix: Remove left over databases if necessary (ddbdcca5) +- Merge pull request #92 from innogames/fix_detault_attributes_shown_twice (a64d5f80) +- fix(servershell): Sort default attribute alphabetically (241ff624) +- fix(servershell): Default attributes show twice (ae6caeb9) +- Merge pull request #91 from innogames/hotfix_servershell_multiattr_submit (4563c226) +- fix(servershell): Cannot submit multi values of int and bool (72b7cb61) +- Merge pull request #88 from innogames/fix_servershell_default_visible (9ad824fb) +- Merge pull request #89 from innogames/kofrezo_adminapi_version (cc117e29) +- fix(servershell): Use ServertypeAttribute default visible (c9ea3c3a) +- feature(adminapi): Send version with each request (c22725de) +- Merge pull request #87 from innogames/catch_suspicious_operation (3161d704) +- Merge pull request #86 from innogames/adminapi_request_expired (e724e128) +- fix(api) Catch SuspiciousOperation to ensure JSON response (4047860e) +- fix(adminapi): Do not sent already expired request (86546d7f) +- Merge pull request #83 from innogames/adminapi_403 (5f0cdd06) +- Merge pull request #85 from innogames/api_improve_error_message (a5923450) +- task(api): Improve error logging for api views (1a639b4b) +- task(api): Add user or application id to error (52f14e71) +- Merge pull request #84 from innogames/common_cleanup (106224a2) +- task(common): Delete unused templatetags (e59dcb18) +- Merge pull request #82 from innogames/servershell_hotfixes (a80cd8d8) +- style(resources): Make PEP8 happy and use two spaces (6a76cc02) +- style(servershell): Return early for sake of readability (51a0885b) +- style(servershell): Don't abbrevate variable to sinlge letter (d7d94770) +- style(servershell): Put brackets and else into oneline (103a3fc1) +- fix(resources): Use page 1 if page exceeds available ones (36282a14) +- style(resources): Remove obsolete imports (f6f365c8) +- task(servershell): Improve auto completion for search (26210960) +- style(servershell): Fix grammar of comment (362d79c6) +- fix(servershell): Don't allow invalid page values (e182ff94) +- fix(resources): Submitting filter again overrides page (ac41d8c7) +- fix(servershell): Typing too fast omits characters (96683bc7) +- fix(servershell): Search term not saved in session (fb0be42d) +- fix(servershell): Fix per_page value not submitted (c39f9f23) +- fix(resources): Fix pagination (94fdd53b) +- task: Explain why we need dateparser module (c9ffdac7) +- Merge pull request #81 from innogames/bootstrap_bugfixes (2db8f4cc) +- style(servershell): Fix doc string indention (c4143b4c) +- style(servershell): Use curly braces for if conditions (fe9ca2b1) +- fix(resources): Include CSS and JS into packaing (9a9605a7) +- style(servershell): Move return to an extra line (180effe4) +- style(servershell): Improve readability of condition (1b4a79c8) +- style(common): Add missing doc for parameter (c4957d91) +- style(common): Improve wording in doc string (3ffc7e51) +- style(common): Append semicolon at end of style attribute value (ede6bf82) +- fix(servershell): Changes page not accessible without selection (3fc19c81) +- fix(servershell): Autocomplete overrides user input (a4675acf) +- fix(servershell): Can not got further than first page (bbf85944) +- fix(resources): Add pagination to resources page (89a02c6b) +- fix(serverdb): Columns in history do not have the same width (8a4a0652) +- fix(common): Minor spinner bug fixes (e03e58ef) +- fix(servershell): Close auto complete on exact match (4b58d8f6) +- fix(servershell): Search error not displayed (a96507df) +- fix(servershell): Fix bugs related to auto complete (53b264c7) +- fix(common): Messages show status string (67411b57) +- feature(servershell): Make save shown attributes optional (9b88bd5a) +- fix(servershell): Second multiadd overwrites previous changes (ea9d328c) +- fix(servershell): Servertype attribute is editable (b07a7fa8) +- fix(serverhell): Regexp hint show null for special attributes (daccb663) +- fix(servershell): Allow manual entering of IPv4 address (790cc18e) +- servershell(task): Add multi attribute indicator to attributes list (6ee31657) +- fix(servershell): Fix attribute marked as changed without change (fd28c59e) +- fix(common): Spinner counter too fast due to missing reset (d6b0ab81) +- fix(servershell): Attributes list selection not removed (db0c4d70) +- servershell(fix): User types to fast for auto completion (e036bce3) +- fix(servershell): setattr with empty does not delete attribute (55ff9891) +- fix(servershell): Setting boolean to 0 becomes true (1ff73f99) +- fix(servershell): Boolean attribute displays Empty at inspect page (7199eeea) +- fix(resources): Bring back graphes for resouces page (e53d78c3) +- fix(servershell): Multiple searches possible (5d507cbc) +- Merge pull request #80 from innogames/bootstrap (15bd9420) +- fix(servershell): order by fails due to wrong attribute comparison (45f2d697) +- fix(resources): graphite.js not loaded (bc17e511) +- style(servershell): Remove extra border from result table (385618ec) +- fix(servershell): Long cells not breaking on screen end (529139d8) +- fix(common): Wrong path for javascript plugins (1e4d8c8d) +- fix(servershell): Treat 'false' as '' (false) for setattr command (4cc6194e) +- task(common): Bring back favicon (86da92f0) +- fix(common): plugins javascript not packaged (3944cbd0) +- task(servershell): Reword description for search settings (18294843) +- fix(servershell): Object selection toggled on reload (be9825a1) +- fix(servershell): Fix type in legend for keyboard shortcuts (e22ca270) +- fix(servershell): Auto dismiss alert visible again (d513e4b7) +- fix(servershell): Fix inline editing for boolean value (8b8557ac) +- feat(servershell): Save search settings in session (6299bf0a) +- feat(common): Allow ALT + BACKSPACE to delete words in input (4429c1d1) +- fix(graphite): Minor bugs in graph_table page (cd257fba) +- task(servershell): Show description of commands in auto complete (c37e8443) +- task(servershell): Show attribute type in attribute list (fbfc41a3) +- feat(servershell): Provide inline validation for inline editing (edfed156) +- fix(serverhsell): On-the-fly validation not working (9445c378) +- fix(servershell): Minor fixes for auto complete (dec2c524) +- fix(servershell): 1 and 0 not converted for boolean attributes (ce8245f5) +- fix(servershell): Spinner not disabled after successful commit (8f823c1d) +- fix(servershell) Sort command auto complete from a-z (377f53c1) +- fix(servershell): Result page indicator fixes (e256ffee) +- fix(servershell): perpage autocomplete forces user to pick (3ce678ba) +- fix(servershell): Object not having attribute shows null (6de5a279) +- task(servershell): Use kbd tag to show keyboard shortcuts (e16cbc61) +- feat(common): Add time elapsed to spinner (fd0b86db) +- feat(servershell): Reload search if tab to command (7b449619) +- fix(servershell): Exit auto complete on ESC key (95385c42) +- feat(servershell): Only export selected hosts (3b2fcd7d) +- fix(servershell): Minor bugs in attr command (f6b4a051) +- fix(servershell): Warning shows select at most -1 objects (057b257e) +- fix(servershell): Save perpage value in session (7f9e0874) +- feat(servershell): Select first element if there is only one (4308bc9e) +- fix(servershell): Focus command input after successful search (0cc1333c) +- feat(servershell): Allow to filter history for attribute (0222b46f) +- feat(serverdb): Allow to search in history of objects (89575a80) +- task(servershell): Bring back history command (4e237004) +- fix(serverdb): Make restore work again and minor bugs (118d89f8) +- fix(servershell): Double click on inline edit closes inline edit (f6d5a35e) +- fix(servershell): Numeric attributes not casted to integer (4feee4cb) +- fix(servershell): Not editable attribute values missing (e39596f7) +- fix(servershell): object_id marked as editable (3c9778ea) +- fix(servershell): Can not click value to inline edit (618d3254) +- fix(servershell): Autocomplete for hostname has empty value (c76aa2af) +- feat(servershell): Retry search and commit after 5 seconds (7907358a) +- fix(servershell): No error message shown on backend error (6328f2ee) +- fix(servershell): Empty attributes not inline editable (f4e15ac3) +- fix(servershell): All attributes queried for objects (c1659e72) +- fix(servershell): Fix can not delete attribute with inline editing (94600d44) +- fix(servershell): Fix inline editing bugs (6cad7480) +- task(servershell): Remove hover function from tables (cda6be95) +- fix(servershell): Search command does not focus search input (c094d38f) +- fix(common): Icon does not link to root page (366505ac) +- fix(servershell): shown attributes not at end of list (b1e81a81) +- fix(serverdb): Open links to history of objects in new tab (6d5a0d98) +- feature(servershell): Save shown attributes choice (33ffaffa) +- fix(servershell): Empty command raises warning (917bf7d8) +- fix(graphite): Unknown hostname or object_id throws 500 (0950bba2) +- style(servershell): Use component color for auto complete (e8b58fa8) +- task: Unify colors using bootstrap themes (6e44878f) +- fix(servershell): Auto focus first elment of auto complete (871012f5) +- task(servershell): Show alerts for 5 seconds (b86eff81) +- fix(servershell): Don't show object_id by default (f02e1d80) +- fix(servershell): Restore tab order for input fields (9365a7f8) +- task(servershell): Bring back auto complete for command (999484a9) +- task(servershell): Bring back inline editing command (2656f1de) +- task(servershell): Make change to_commit visible (b9e0a219) +- style(servershell): Use precise terminology and scope (d87f7d9f) +- task(servershell): Rewrite commands for editing (0d621093) +- fix(serverdb+servershell): Fix minor bugs in changes.html (35cada78) +- task(serverdb): Require dateparser module (00eb938e) +- task(servershell): Bring back changes command (02858247) +- task(servershell): Bring back clone command (78756df3) +- task(servershell): Bring back new command (b88ba8a6) +- feat(servershell): Add javascript alerts on error (e6d0ee29) +- fix(servershell): Keep selected servers on search reload (ae4d643f) +- task+feat(servershell): Bring back commands part 1 (067c1730) +- task: Fix typo in function name (0c8322a0) +- fix(serverhell): Fix javascript errors on load (186466be) +- feat(servershell): Add options menu to disable auto complete (acbaaddd) +- task(servershell): Adjust CSS to align labels for input (43a0b594) +- style(servershell): Reformat Code (9cf5493c) +- feat(servershell): Autocomplete for search term (82e00c45) +- feat(servershell): Remove tailing whitespace from term (db36455c) +- task(servershell): Use 25 object per default per page (38ae44d1) +- feat(common): Use bootstrap alerts for django messages (3a1548a7) +- feat(serverhsell): Rewrite Servershell JS part 1 (ea7a97cf) +- task(servershell): Delete obsolete files for JS rewrite (e34b3682) +- task(servershell): Adjust serverhshell for boostrap (9fcade2c) +- task(servershell): Move js and css to correct folder (b0003cf6) +- task(servershell): Use full jQuery for Ajax support (2591a821) +- task(servershell): Move templatetags for servershell (c8373939) +- task: Adjust menu.html entry for bootstrap (4079d69e) +- feature(common): spinner, messages and docs in base.html (e8496853) +- task(servershell): Use menu template mechanism to add entry in nav (26e90209) +- task(common): Change base.html template to twitter boostrap (9cb285a1) +- task(common): Remove InnoGames name from logo (308a2ea8) +- task(common): Add js/css/icons for twitter bootstrap (c600fb01) +- task(common): Delete static data not used by bootstrap (9d7f2b4f) +- Merge pull request #79 from innogames/kofrezo_fix_hostname_regex (31a99f63) +- fix(serverdb): Allow two or more hyphens in hostname (743def13) +- Allow the logo filename to be customized via settings.py (ec540ae1) +- adminapi: Drop python2 support (7165f1db) +- docs: Update documentation links (4bf03f0c) +- docs: Host docs on read the docs (83c9b1ed) +- docs: Test docs build via travis ci (0951ff5e) +- docs: Add initial sphinx work (4d7074df) +- Merge pull request #76 from innogames/bugfix/regenerate-link-after-attr-refresh (cb10dad4) +- Regenerate link after attr refresh (e4ba787e) +- Bump copyright notice year to 2019 (407aadce) +- Merge pull request #74 from innogames/fix_graphite_validator (ded743ad) +- Update graphite cache only for non-retired servers (679d23c5) +- graphite: Remove validator from Template and Variation names (1e92f272) +- Merge pull request #71 from innogames/app_last_used_tracking (707a2a2e) +- apps: Show some read only fields in detail admin interface (59c66010) +- apps: Show last_login in admin apps list (c899372e) +- api: Update app.last_login field in api decorator (edde32e7) +- api: Use proper datetimes in api decorator (66d7ef97) +- api: Stop passing unused attribute around (c62e86ed) +- access_control: Unify models.py style (5a2b394b) +- apps: Add last_login field (7c7121a7) +- dns: Return internal NS servers from internal DNS servers (ae6451ec) +- Merge pull request #70 from innogames/return_403_message (2e1442a7) +- api: Handle PermissionDenied Exception in api_view (85ded658) +- Merge pull request #69 from innogames/fix_acls (118e1c1a) +- acl: Fix vulnerability allowing the change of non-whitelisted attributes (f2784d47) +- acl: Add option to use attributes list as blacklist (4d512022) +- api: Improve ACL checker docs and error messages (d7900ab9) +- Merge pull request #66 from innogames/remove_default_api_url (a167941b) +- Merge pull request #68 from innogames/remove_markup_deprecated (44f815db) +- Drop requirements.txt (4bec4147) +- api: Drop django-markup-deprecated requirement (9a76e159) +- Merge pull request #54 from innogames/django2_support (98d3fa05) +- Point travis status image to travis-ci.com (6e65d79c) +- urls: Switch to new django admin include style (6b070020) +- settings: Update name of postgresql DB engine (e5beb694) +- settings: Rename MIDDLEWARE_CLASSES to MIDDLEWARE (df651891) +- Import reverse from django.urls (df307088) +- Fix delete_selected action removal for django2 (026464a5) +- Improve url import error handling (82ba0058) +- Drop empty boilerplate django app files (dd41c5a6) +- Merge pull request #67 from innogames/rip_out_api_loader (1182c530) +- Rip out the serveradmin API function loader middleware (24bbe1e4) +- adminapi: Remove default API URL (58bb11b4) +- Merge pull request #65 from innogames/key_length_problem (17328059) +- apps: Make 8192bit RSA keys fit in PublicKeys (8ba923ca) +- api: Fix ssh authentication for object creation (b6b95262) +- api, adminapi: Fix version compatibility regression (7ab78597) +- Merge pull request #63 from innogames/ancient_paramiko_support (40c45cbc) +- apps, adminapi: Make parmiko > 2.0 features optional (dc2b836f) +- Merge pull request #62 from innogames/ssh_api_auth (4e5c6f56) +- api: Change acceptable timestamp offset to +-16s (2e3230af) +- api: Allow authenticating with multiple keys of the same app (ae78dbf1) +- docs: Add doc strings to ssh auth functions (1e2434bd) +- docs: Explain ssh based authentication usage (6b7f932a) +- apps, api, adminapi: Support multiple keys per app (c81ae038) +- adminapi: Fix ApiErrors for non json encoded repsonses (20c07acf) +- adminapi: Support loading keys directly from files (a2144ee5) +- adminapi: Improve ssh agent error handling (9ec3518b) +- api, adminapi: Stop using json in headers for ssh auth (0732b53f) +- api, adminapi: Don't use security_token for ssh auth (9e351b4c) +- apps, api, adminapi: Don't use app_id for ssh auth (1f5c29c3) +- apps, api, adminapi: Initial ssh based api authentication (84cd2281) +- adminapi: Define exceptions in a central place (9122391f) +- apps: Remove unused templates (559f9d99) +- linter: Ignore flake8 error W504 (b3cd29c3) +- Merge pull request #61 from innogames/datetime (27629c06) +- dataset: Add datetime attribute tests (74859736) +- adminapi: Fix timezone aware datetime deserialization on py2.7 (5ea161b3) +- adminapi: Fix timezone aware datetime serialization on py2.7 (a10bbc7b) +- serverdb, adminapi: Expose timezone on datetime objects (b119e9f6) +- serverdb, adminapi: Add datetime attribute datatype (a18e24aa) +- Drop simplejson import fallback (af8f3614) +- Revert "Improve uniq ip constraints" (dd61f2bc) +- Merge pull request #60 from innogames/fix_migrations (4df133ea) +- Fix testing fixture (eb6cbda5) +- Downgrade django to 1.10.x as used in production (16642d14) +- Improve uniq ip constraints (963274a7) +- Add explanations to hand written migrations (79a57589) +- Regenerate initial serveradmin migrations once (f03e63ab) +- Make the Collection.overview fields help setting independent (030424b1) +- Set on_delete=CASCADE where on_delete is undefined (a21a20da) +- Merge pull request #59 from nijel/exception (9bfb25e0) +- Avoid throwing non exception (742f2cd7) +- Merge pull request #58 from nijel/patch-1 (c57cdbd4) +- Update README.rst (8d5dafc5) +- servershell: Fix history and changes (241d43aa) +- Merge pull request #56 from innogames/deployment (de54ddf8) +- graphite: Fix cache_graphite command on django 1.10+ (dde602ba) +- api: Add health_check view (00ef1296) +- Simplify default logging config (2d95580c) +- Load user config from /etc/serveradmin/settings.py (d8ef6979) +- Split settings.py into default and user settings (679487ba) +- Remove custom jinja2 Environment settings (fec803f3) +- Add serveradmin modules to setup.py (95cfc848) +- Move serveradmin manage.py to serveradmin.__main__.py (30db3c2a) +- Move adminapi run.py to adminapi.__main__.py (38b43664) +- Use APP_DIRS for jinja2 loader (c7840e7d) +- Generate requirements.txt via pipenv (6014e361) +- Merge pull request #55 from innogames/kofrezo_update_adminapi_docs (ce6f84fd) +- Use key, value example for showing object attributes (6f3b4fd0) +- Update Adminapi documentation (45255385) +- Make edit form submit button say 'save' (5725236e) +- Merge pull request #53 from innogames/fix_joins (7610110d) +- adminapi: Fix restricts of type set - again (36a7914c) +- Revert "adminapi: Fix restricts of type set" (d09d0b70) +- query_materializer: Re-add cidr hostmask to all networks (59c941b9) +- adminapi: Fix restricts of type set (b1ac84ad) +- Merge pull request #51 from innogames/rework_object_id_patch (63a2a12a) +- DatasetObject: Pass object_id as a separate parameter (2fe1f441) +- BaseQuery: Raise TypeError if restrict isn't a list or None (d59909f1) +- Fix Any() queries with sub-filters (cc66c99d) +- servershell: Handle users not passing a servertype (bcbbe821) +- servershell: Fix clone (cf6fbe51) +- Fix serverside regexp validation on booleans (4a10d60e) +- Fix boolean representation on servershell edit (2c3ff0e9) +- Make the regexp column not null (1c52ab18) +- Increase the size of the new regexp column (d5bb0c7a) +- Add db check constraint for the new regexp column (05c0fd05) +- adminapi: Get auth_token via SERVERADMIN_TOKEN env variable (8a351cbf) +- Merge pull request #47 from innogames/attribute_regexp (9175760f) +- Put whole regexp to database (753ec22b) +- servershell: Get regexp from available_attributes, flatten editable_attributes (c531335a) +- Move regexp from ServertypeAttribute to Attribute (1a09aed8) +- servershell: Don't let readonly attributes to be edited (c210124b) +- servershell: Rename avail_attributes (447070ef) +- query_executer: Fix related_vias by not re-using drained generator (c8224ad8) +- adminapi: Bugfix for queries with restrict=None (a157ba55) +- Merge pull request #50 from innogames/bugfix_recursive_objectid (db51b55a) +- adminapi: Ensure object_id in BaseQuery._restrict setter (4d80fa66) +- servershell: Disable editing related via attributes (8fb4f9be) +- Optimize away fetching attributes from SQL generator (21a4d7a6) +- Avoid querying related via reverse attribute (80c24cf1) +- servershell: Fix typo on help (54887166) +- Fix false positives caused by related via attributes (b428c3f5) +- Fix repeated SQL where conditions (b101e35a) +- db: Remove DNS tables (076ea02d) +- Merge pull request #49 from innogames/bugfix_adminapi_objectid (9b30ba06) +- adminapi: Ensure legacy Query.restrict() asks for object_id (d17a2c5d) +- adminapi: Don't depend on object_id in DatasetObject constructor (c61be017) +- Merge pull request #48 from innogames/post_commit_signal (30e86181) +- Add post_commit django signal (68083157) +- db: Trim dns_public.extra_record privilege (81f0ebf3) +- db: Don't provide domain_ids (52bb4329) +- Merge pull request #45 from innogames/adminapifix (afad31a3) +- adminapi: Fix querying all attributes (47cb7675) +- Merge pull request #39 from innogames/domain (a3b3f366) +- servershell: Fix undefined variable after recent renaming (0231b71b) +- domain: No longer tolerate extra periods in hostname part of fqdn (e0a0a62c) +- domain: Implement new attribute type domain (7327bc1d) +- Merge pull request #44 from innogames/object_id (e76a56fc) +- Don't materialize object_id when not requested (d4ef32e5) +- Merge pull request #43 from innogames/input_pattern (0b606c8f) +- Fix Attribute queries after removing caching (1f909154) +- edit: Use regexp as pattern for client site validation (6caefc1b) +- edit: Reorder type and regexp columns after the value (d3fce812) +- edit: Order fields by required, name (8fa08066) +- edit: Mark fields as required for client site validation (da64969f) +- edit: Drop ' + ' from the end of all