github vrana/adminer v6.0.1

3 hours ago
  • 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

Don't miss a new adminer release

NewReleases is sending notifications on new releases.