Skip to content

Releases: vrana/adminer

v6.0.1

Choose a tag to compare

@vrana vrana released this 14 Aug 14:58
  • Run the development version from the adminer/ directory alone, copied anywhere and under any name
  • Send the session cookie with SameSite=lax, the browsers not defaulting to it sent it also cross-site
  • Send the cookies set by JavaScript with the same attributes as the other cookies
  • Do not redirect outside Adminer after saving a row
  • Do not count a request without credentials as an unsuccessful login
  • Report a server accepting any password by its own message instead of the one about a missing password (bug #1318)
  • Print the configuration of Adminer\Password when the database can be accessed without a password
  • Print the help as a text, not HTML
  • Verify the CSRF token also when logging in
  • Verify the CSRF token before killing a query timed out on the client
  • Send an error HTTP status on an invalid CSRF token and too large POST data
  • Use the same font in <textarea> as in <input>, keep monospace in the SQL command and JSON values
  • Autocomplete: Disable in the drivers not using SQL, e.g. Redis
  • Autocomplete: Offer only the statements allowed in a trigger and no statement in a check constraint
  • Create table: Print the success message in drivers not using SQL, e.g. Elasticsearch (regression from 6.0.0)
  • Database schema: Arrange the tables in a grid by their foreign keys instead of in one column
  • Database schema: Do not display the tables hidden by tableName() and the references to them
  • Select: Search only the columns which can hold the searched value, convert the other types to text (bug #1216)
  • Select: Modify or delete several rows in a transaction
  • Edit: Keep the JSON value entered by the user after an error, it was replaced by null if it was invalid
  • Edit: Print the query fetching the row, the same as in Select
  • Import: Display the progress of the file upload
  • MySQL: Support collation of routine parameters and return values
  • MariaDB 12: Support triggers for multiple events and for UPDATE OF (bug #1306)
  • PostgreSQL: Edit and delete rows identified by a column of a composite type (bug #1217)
  • MS SQL: Display all result sets of a procedure, a message from the server stopped the iteration (bug #1180)
  • MS SQL: Display the messages printed by the server as warnings, e.g. by PRINT
  • MS SQL: Fix importing a CSV file to a table with an identity column through PDO, it silently did nothing
  • Elasticsearch: Rename the database from elastic to data
  • Elasticsearch: Redirect to the only database
  • Elasticsearch: Print the executed commands in the messages
  • Elasticsearch: Highlight the printed queries
  • OpenSearch: Add support via Elasticsearch driver
  • Redis: Redirect to the only table
  • Editor: Do not access a database without a password, the same as Adminer

Plugins

  • Method error() to modify the printed database error messages (bug #1249)
  • Method dumpPrint() to print HTML code in the export form
  • Method editRowPrint() receives the query which got the edited row and the time it took
  • Plugin config: Save the settings by POST so that the CSRF token can be verified
  • Plugin file-upload: Do not let the column name escape the upload directory
  • Plugin login-otp: Do not create a permanent login without a valid OTP
  • Plugin login-password-less: Moved to Adminer as the Adminer\Password class, the plugin only extends it
  • Plugin login-reverse-proxy: Group the invalid logins also by the address of the proxy
  • Plugin login-servers: Allow server description with special characters (bug #1320)
  • Plugin login-ssl: Use also in the pdo_sqlsrv extension (bug #1324)
  • Plugin login-table: Verify the password from column password_hash
  • Plugin slugify: Print only a numeric maxlength
  • Plugin sql-log: Write the log to the temp directory by default
  • Driver plugins: Driver::select() assigns the executed query to $this->query
  • Driver plugins: Bundle the syntax highlighter in the plugin file, adminer-plugins/jush-<driver>.js is not loaded anymore
  • Driver plugins: Method jushAutocomplete() to disable or replace the autocomplete of the query <textarea>

Internal

  • Move the submodules from externals/ to where they are used: adminer/static/jush, conf/JsShrink and conf/PhpShrink
  • Tests: Cover the CSV import and export, pagination, modifying a value by Ctrl+click, the bulk table operations and the SQL file import in every driver
  • Tests: Cover the bundled plugins by plugins.spec.js, which loads them from a fixed set in tests/plugins.php
  • Tests: Move the entry points to tests/, they are fixtures and not examples to deploy
  • Check the code style also by Slevomat Coding Standard and the compiled files by PHPCompatibility (composer compat)
  • Enable the PHPStan strict rules which report no error
  • Install PHPCS and PHPStan by composer install, like ESLint
  • Skip all the linters in composer install --no-dev, it only initializes the submodules

v6.0.0

Choose a tag to compare

@vrana vrana released this 07 Aug 14:46
  • Escape index type, algorithm and length in table structure (XSS)
  • Escape event schedule and non-numeric table status values (XSS)
  • Fix translations containing an apostrophe in single language versions
  • Escape < in strings printed to JavaScript, a name containing <!--<script> broke the page
  • Login: Disallow accessing servers which accept any password (e.g. PostgreSQL with trust authentication)
  • Login: Suggest the login-reverse-proxy plugin when throttling logins of a proxied request
  • Select: Disallow modifying data by the SQL operator (CSRF)
  • Check for a new version even without JavaScript
  • Fix JavaScript in Safari < 11 and Firefox < 52 (regression from 5.5.0)
  • Fix showing and hiding elements in Chrome < 61 and Edge < 17 (regression from 5.1.0)
  • Send the JSON responses of AJAX requests as application/json instead of text/javascript
  • Sort languages by their translated name
  • Fix the copy to clipboard icon not displayed on Apple systems
  • Close the menu on small screens by Esc
  • Drop compatibility with IIS 5 and with IIS 7.0 before its 2008 FastCGI update
  • Shorten URLs by escaping only the necessary characters, e.g. where[0][col] instead of where%5B0%5D%5Bcol%5D
  • Send GET forms by JavaScript to shorten their URLs too
  • Tables overview: speed up, show totals in SQLite, real size in MS SQL, Oracle
  • Table structure: Shorten long checks and generated columns
  • SQL command: Show column type in result table header
  • SQL command: Show number of rows in all drivers
  • SQL command: Export result to CSV by JavaScript without re-running the query (bug #1108, SF-760)
  • SQL command: Rollback an unfinished transaction so that it doesn't break the following queries
  • Alter table: Add next column without page reload
  • Alter table: Do not highlight other move handles while dragging a column
  • Alter table: Move columns on touch screens
  • Alter table: Edit multiline column comments in a textarea
  • Alter table, Privileges: Do not print a success message if nothing was changed
  • Alter table, Select: Warn if the number of fields can exceed max_input_vars
  • Alter view, routine and type: Use a transaction instead of a temporary object in PostgreSQL, SQLite, MS SQL
  • Alter routine: Fix altering a routine with a name longer than 42 characters
  • Select: Remove asking for the page number after clicking the Page legend
  • Select: Highlight the current page in the pagination
  • Select: Fix the number of selected rows after going back in history
  • Select: Keep sorting by an aggregation function in the Sort fieldset
  • Select: Show the edit link before the row checkbox and align the column to the right
  • Select: Move the Modify link to the Modify fieldset, disable Save until a value is modified
  • Select: Disable inline edit of binary values
  • Select: Clear the search field and its column by Esc in Firefox
  • Select: Import CSV in all drivers, not only in those with their own way to insert or update a row
  • Select: Fix Load more data in drivers paginating by a cursor (Redis, SimpleDB)
  • Select: Prefill New item with the values of all columns searched by equality, not only foreign keys
  • Edit: Keep values of columns with special characters in name after error
  • Edit: Fix switching function to SQL with the edit-foreign plugin (bug #1254)
  • Edit: Hide the value field for functions without arguments (e.g. now, uuid)
  • Edit: Fix editing rows with binary columns in tables without a unique key
  • Edit: Disable Save and continue edit after changing a value identifying the row
  • Select, Edit: Highlight JSON by a dedicated highlighter instead of the JavaScript one
  • Export: Fix the TAR archive of multiple tables in CSV, it contained SQL of views and foreign keys
  • Export: Export data in all drivers, not only in those able to run the generated SELECT
  • Export: Fix importing a dump with data only, the tables were truncated one by one and their foreign keys were re-created
  • MySQL: Do not use SSL if the login-ssl plugin is configured only for other drivers
  • MySQL: Cache the list of databases only if getting it is slow
  • MySQL: Link performance_schema and sys tables to their documentation
  • MySQL: Fix length of routine parameters with unsigned or zerofill, support MySQL < 8 again (bug #1312, regression from 5.4.4)
  • MySQL: Fix a warning on the Create table page with the PDO extension
  • PostgreSQL: Support operator classes in indexes
  • PostgreSQL: Do not show functions and types created by extensions
  • PostgreSQL: Create routines with a dollar quoted body so that it is not escaped
  • PostgreSQL: Fix altering functions with parameters of array or user-defined types
  • PostgreSQL: Hide table actions and row editing in pg_catalog and pg_toast
  • PostgreSQL: Support range types (bug #1308)
  • PostgreSQL: Show composite, domain and range types next to enums
  • PostgreSQL: Alter and rename user defined types
  • PostgreSQL: Add values to an enum type without re-creating it
  • PostgreSQL: Export all user defined types, fix exporting enum values containing an apostrophe
  • PostgreSQL: Drop all tables at once in export so that foreign keys, views and types don't prevent the drop
  • PostgreSQL: Drop the selected tables at once so that foreign keys don't prevent the drop
  • PostgreSQL: Export materialized views with their indexes, they were exported as plain views
  • PostgreSQL: Import CSV by INSERT ... ON CONFLICT instead of two queries for each row
  • PostgreSQL: Show, alter and export Auto Increment, only sequences with an unusual name were exported
  • PostgreSQL PDO: Fix the number of affected rows in COPY ... FROM stdin
  • PostgreSQL, MS SQL: Show two columns in select COUNT(*), COUNT(DISTINCT id)
  • PostgreSQL, MS SQL: Highlight primary keys in the database schema (regression from 5.1.0)
  • CockroachDB: Do not offer deferrable foreign keys, they are not supported
  • SQLite: Fix working with binary data through PDO
  • MS SQL: Treat binary fields as blob (bug SF-369)
  • MS SQL: Hide table actions and row editing in the sys schema
  • MS SQL: Fix cloning and inserting a row with an identity column, the form offered the original value
  • MS SQL: Fix error on the databases overview if a database has no collation
  • Elasticsearch, ClickHouse: Use default port
  • Elasticsearch: The driver is no longer beta, it works with Elasticsearch 7, 8 and 9
  • ClickHouse: Fix nullable columns, fix default values, show server version
  • ClickHouse: Support schema management, introspection and administration
  • MongoDB: Authenticate against the database used in login
  • MongoDB: Do not treat the string NULL as the NULL value
  • MongoDB: Show the primary key column when altering indexes (regression from 5.4.0)
  • Redis: SQL command in the redis-cli syntax, print executed commands
  • Redis: Print binary keys and values in the redis-cli syntax
  • Redis: Display the type of keys
  • SimpleDB: Use default server
  • CSS: Improve contrast of query time and dark mode
  • CSS: Display the repeated links and row checkboxes outside the table, designs/adminer-border keeps them inside
  • Editor: Display all images recognized by PHP, set their size, load them lazily
  • Editor: Fix a fatal error in select with an empty foreign key value (regression from 5.1.1)
  • Editor: Don't offer an empty option in a select of a not null foreign key, saving it failed in the database
  • Designs: Show version of Adminer next to a used design not matching this version
  • Plugins: dumpData() gets the parts of the select instead of a query, it selects the rows by Driver::select()
  • Plugins: Methods importPrint() and importProcess()
  • Plugins: Method verifyVersion()
  • Plugins: Methods commentValue() and commentInput() (bug #1233)
  • Plugins: Show driver plugins in the list of loaded plugins
  • Plugins: Show version of Adminer next to plugins not matching this version
  • Plugins: Remove edit-calendar, tinymce, json-column, pretty-json-column, translation, email-table, dump-php, master-slave
  • Plugins: Do not fail with a fatal error when a plugin is not an object (bug TimWolla/docker-adminer#211)
  • Plugins: Fix missing translations in the compiled version
  • Driver plugins: Do not bundle the syntax highlighter of igdb and simpledb, load it from adminer-plugins/jush-<driver>.js
  • Plugin login-ip: Allow localhost by default, require the request to not be proxied if X-Forwarded-For prefixes are not specified
  • Plugin login-password-less: Allow the plugin password to be also the password of some server
  • Plugin menu-links: Add option to show the select link and other repeated links only on hover
  • New plugin: Create a table from an imported CSV file
  • New plugin: Display images in select, same as in Adminer Editor
  • New plugin: Log in only by a passkey holding the passwords
  • New plugin: Warn by a red strip if Adminer or the database doesn't run on the local machine

Internal

  • Register JavaScript event handlers by a data attribute instead of a script element
  • Register the event handlers in functions.js instead of an inline script
  • Composer: Initialize submodules on install
  • Remove the Makefile, Composer scripts cover compiling and cleaning
  • Move documentation to docs/, linter configuration to conf/, coverage.php to tests/
  • Add docs/versions.php measuring the size of all releases
  • Coding style: Wrap lines to 200 characters
  • Cache PHP_CodeSniffer results in the system temp directory
  • PHPStan: Check the Editor, more checks which the code already passes
  • Add type declarations to all drivers and the Editor
  • Use named constants instead of their values
  • Compile: Exit if a replacement doesn't match
  • Compile: Fix compiling a driver without support for the SQL command
  • Compile: Compress translations with the English translation as a dictionary, it saves 21 kB
  • Require ES6 in JavaScript, remove old browser workarounds
  • Use standard JSDoc @PARAM and @return syntax
  • ESLint: Install it by composer install, ...
Read more

v5.5.1

Choose a tag to compare

@vrana vrana released this 21 Jul 17:08
  • Ignore invalid X-Forwarded-Prefix (GHSA-fr74-9mf9-gf44)
  • Login: Allow :/_ in server (bug #1305, regression from 5.5.0)
  • Compile: Valid UTF-8 (bug #1113, #1213)
  • Compile: Replace LZW with deflate compression
  • Add missing translations
  • Syntax highlighting: Update MySQL, MariaDB, SQLite, PostgreSQL
  • Support disabled set_time_limit() and ini_set() (bug #1288)
  • PostgreSQL: Log in with empty server (bug #1304, regression from 5.5.0)

v5.5.0

Choose a tag to compare

@vrana vrana released this 17 Jul 13:03
  • Disallow invalid port or socket (GHSA-58cq-mgw2-38m5)
  • Ignore invalid X-Forwarded-Prefix (GHSA-8478-xrj3-h9c2)
  • Hide copy to clipboard in insecure contexts
  • Process list: Copy query to clipboard
  • Wrap uneditable values in edit form
  • Syntax highlighting: Speed up
  • Allow connecting to socket without hostname (bug #1199, regression from 5.4.0)
  • MySQL: Do not export IN in FUNCTION parameters (regression from 5.4.2)
  • MySQL: Convert vector columns to text in select and edit
  • MySQL: Unsupport MySQL < 5.1
  • MySQL, SQLite: Draggable columns in alter table
  • MariaDB: Support inet4 and inet6 types
  • MariaDB: Allow setting password with password validation plugin (bug SF-814)
  • MariaDB 11.7+: Support vector columns and indexes
  • PostgreSQL 9.2+: Highlight queries in process list
  • SQLite: Support ANY type
  • SQLite: Support STRICT and WITHOUT ROWID tables
  • SQLite: Do not treat INTEGER PRIMARY KEY without AUTOINCREMENT as auto increment
  • SQLite: Disable editing of sqlite_schema
  • MS SQL: Fix multiple result sets (bug #1180)
  • New plugin: Redis driver
  • New plugin: Login behind a reverse proxy

v5.4.4

Choose a tag to compare

@vrana vrana released this 11 Jul 18:36
  • Fix blob editing (bug #1251, regression from 5.4.2)
  • Speed up HTML escaping (bug #1147)
  • MySQL: Fix routine fields length (bug #1267, regression from 5.4.2)
  • MySQL: Preserve DETERMINISTIC and DATA ACCESS in routine definition (regression from 5.4.2)
  • MySQL: Export binary data as hex (bug #1123)
  • MariaDB: Hash password in privileges (bug #1166, regression from 4.7.2)
  • MariaDB: Speed up getting checks (bug #1245, regression from 5.4.2)
  • MariaDB, PostgreSQL: Use CREATE OR REPLACE FUNCTION if possible
  • PostgreSQL: Allow exporting more schemas at once (bug #1243)
  • PostgreSQL: Fix editing jsonb[] columns (bug #1300, regression from 5.4.2)
  • PostgreSQL: Fix displayed size of bytea
  • PostgreSQL 18: Support VIRTUAL generated columns (bug #1286)
  • MS SQL: Fix table status (bug #1146)
  • PDO: Increase precision of double (bug #1214)
  • Editor PDO: Fix foreign key value in edit (bug #1242)
  • Editor PostgreSQL: Fix enums (bug #1241)
  • Plugins: Method menuActions() (bug #1303)

v5.4.3

Choose a tag to compare

@vrana vrana released this 09 Jul 11:21
  • Check Sec-Fetch-Site header (GHSA-33j4-hc95-pggg)
  • Escape REQUEST_URI (GHSA-c533-9qwm-8w5h, bug #1298)
  • Validate server (GHSA-r4x9-5m63-3vxw)
  • Validate server version (GHSA-h6jr-7pr6-grgj)
  • SQLite: Disallow ATTACH commands (GHSA-q4f2-39gr-45jh)
  • SQLite: Disallow VACUUM INTO commands (GHSA-gmx3-g29w-77wf)
  • SQLite: Check filename before deleting (GHSA-6pg3-chwq-wgqc)
  • Avoid unserialize() in brute force protection (bug #1289)
  • Tables overview: allow sorting (bug #1231)
  • Select: Disable Ctrl+click inline edit without UPDATE privilege
  • Select: Display NULL in column title
  • Export: Remember unchecked objects (regression from 5.0.6)
  • Foreign key: Display new field in case of an error
  • PostgreSQL: Order NULL last
  • PostgreSQL: Display all SQL command warnings and only once
  • PostgreSQL: Export serial as serial, not nextval()
  • PostgreSQL: Fix GENERATED AS IDENTITY export (bug #1260)
  • PostgreSQL: Export schema in nextval()
  • PostgreSQL: Export schema in REFERENCES
  • PostgreSQL: Add ~* operator (bug #1271)
  • Editor: Display tinyint(1) as checkbox (bug #1246, regression from 5.4.2)
  • Croatian translation

v5.4.2

Choose a tag to compare

@vrana vrana released this 08 Feb 15:51
  • Avoid denial-of-service via version check (GHSA-q4f2-39gr-45jh, regression from 4.6.2)
  • Pretty print JSON in edit
  • Support multiline generated values in alter table
  • Link //domain.tld values
  • Improve print of nested tables
  • Hide sort links on unsortable columns
  • Display uneditable fields in edit form
  • Shorten all but numeric and date types in select
  • Fix escaping spaces in cookie value (bug #1208)
  • Don't quote comma in TSV export (bug #1238)
  • Autocomplete: fix in empty textarea (bug #1173)
  • Prolong printed SQL query to 10000 characters (bug #1186)
  • MySQL: Use information_schema to get routine definition (bug #1179)
  • MariaDB: Don't display checks with the same name from another table (bug #1135)
  • PostgreSQL: Offer foreign keys in create table
  • PostgreSQL: Add missing parentheses to CHECK export
  • PostgreSQL: Allow creating NOT DEFERRABLE foreign keys
  • PostgreSQL: Remove duplicate DEFERRABLE in foreign key export
  • PostgreSQL: Add schema to sequence and view export
  • PostgreSQL: Fix definition of complex generated columns
  • PostgreSQL: Mark unique partial indexes as unique (bug #1172)
  • PostgreSQL: Fix namespace in inheritance links (bug #1221)
  • non-PostgreSQL: Display NOT NULL checks (bug #1237)
  • ClickHouse: Fix offset (bug #1188)
  • ClickHouse: Fix list of tables (bug #1176)
  • Plugins: Methods showVariables() and showStatus() (bug #1157)
  • Plugins: Allow to be in any namespace
  • New plugin: IGDB driver

v5.4.1

Choose a tag to compare

@vrana vrana released this 26 Sep 15:48
  • SQL command: Unlink NULL primary keys
  • Do not quote 0 in CSV export
  • Warn about exceeded upload_max_filesize in imports
  • Prolong queries saved from SQL command to URL (bug #1154)
  • MySQL: Fix displaying routine definition (bug #1156, regression from 5.4.0)

https://www.adminer.org/#download

v5.4.0

Choose a tag to compare

@vrana vrana released this 08 Sep 09:48
  • Allow specifying operator in search anywhere
  • Do not order descending in GROUP BY select
  • Allow exporting SQL in SQL command (bug #1092)
  • Add section links in database overview
  • Warn about exceeded max_file_uploads in import
  • Display @ after username without server in existing logins
  • Display data length and index length for materialized views
  • Link routines from syntax highlighting
  • Autofocus added field in alter table
  • Executed SQL commands: Add button for copy to clipboard
  • Load more: run syntax highlighter
  • Allow connecting to IPv6 (bug #1095)
  • MySQL: Fix saving empty enum (bug #1152)
  • MySQL 5.0-: Do not load partitioning info in alter table (bug #1099)
  • MariaDB: Parse COLLATE in routine definition (bug #1104)
  • PostgreSQL: Show structure of inherited tables
  • PostgreSQL: Display index expressions
  • PostgreSQL: Add SQL operator to select
  • PostgreSQL: Hide only partitions, not all inherited tables from menu
  • PostgreSQL: Allow comparing json columns (bug #1107)
  • PostgreSQL: Shorten values in hstore columns
  • PostgreSQL: Quote edit value with interval operator
  • PostgreSQL: Fix calling functions with name-less parameters
  • PostgreSQL: Fix calling functions returing table
  • PostgreSQL: Don't treat user types containing 'file' as blobs (bug #1118)
  • PostgreSQL: Export DROP and CREATE DATABASE (bug #1140)
  • PostgreSQL 11-: Avoid duplicate oid in table status (bug #1089)
  • Elasticsearch: Support dropping aliases
  • Plugins: Methods afterConnect(), processList() and killProcess()
  • New plugin: Display row numbers in select (bug #1106)
  • New plugin: Specify query timeout

https://www.adminer.org/#download

v5.3.0

Choose a tag to compare

@vrana vrana released this 04 May 16:31
  • Align numeric functions right
  • Autocomplete: Support table aliases
  • Fix type error in Create function (bug #1053, regression from 5.1.1)
  • Add border to column actions (bug #1072)
  • Align money values right (bug #1071)
  • MySQL: Avoid warning on selecting tables with fulltext indexes (bug #1036)
  • MySQL, PostgreSQL: Support index algorithms (bug #1030)
  • MySQL: Fix connecting to localhost:3306 (bug #1057, regression from 5.1.1)
  • PostgreSQL, CockroachDB: Creating partitioned tables (bug #1031)
  • PostgreSQL: Move partitioned tables from table list to parent table
  • PostgreSQL: Support partial indices (bug #1048)
  • PostgreSQL: Support calling functions returning table (bug #1040)
  • PostgreSQL: Add NOT ILIKE operator (bug #1066)
  • Editor: Fix bit and enum search (bug #1062)
  • Designs: adminer.css with 'prefers-color-scheme: dark' doesn't disable dark mode
  • Plugins: Method bodyClass() to add <body class>
  • Plugins: Allow setting dark mode in css()
  • Hindi translation

https://www.adminer.org/#download