Commit Graph

134 Commits (74af8976c9029b7ea79a564e1c6c319630d3cef1)

Author SHA1 Message Date
Dave Page 4b5b3195c4 Bump the build suffix in preparation for release. 2017-09-11 10:04:20 +01:00
Teng Zhang 46c5df4e7b Greenplum specific DDL and Dashboard display changes.
Initial patch by Sarah McAlear<smcalear@pivotal.io>.
2017-08-25 17:53:03 +05:30
Dave Page f195b18f2d Ship with pre-configured paths that can work in both Server and Desktop modes out of the box. Fixes #2662
Ship the web code using server mode with appropriate paths by default and enable the runtime to override the mode, and force into desktop changing the appropriate paths to user-specific ones.

Note that this change will likely cause more advanced users to have to tweak configs.

RPMs will also need changes to create /var/lib/pgadmin and /var/log/pgadmin, owned by the webserver account.
2017-08-25 10:54:28 +01:00
Dave Page fb9eee47bd Bump the version number for 2.0. Let's get testing started ASAP! 2017-08-25 10:18:42 +01:00
Dave Page ea5dfe23a0 Bump version numbers prior to release. 2017-07-10 14:56:20 +01:00
Harshal Dhumal c65158312d Use on-demand loading for results in the query tool. Fixes #2137
With a 27420 row query, pgAdmin III runs the query in 5.873s on my laptop. pgAdmin 4 now takes ~1s.
2017-06-27 09:03:04 -04:00
Khushboo Vashi 1ee555e468 Ensure the feature tests use the correct test settings database. Fixes #2486 2017-06-16 10:17:38 +01:00
Johan Van de Wauw 827aa72e99 Fix a typo in the config file 2017-06-15 15:18:59 +01:00
Dave Page f0d287588a Couple of minor performance tweaks. Tests on my Windows VM show a consistent 30% startup time reduction. 2017-06-11 13:56:49 +01:00
Dave Page f0e78309cb Bump version in preparation for release. 2017-05-15 12:25:28 +01:00
Dave Page fdf292964b Bump version numbers for release. 2017-04-10 14:24:46 +01:00
Jonas Thelemann e66616b1d8 Add German translation Fixes #2323 2017-04-05 14:02:46 +01:00
Akshay Joshi 6a861f7a91 Add the config option ALLOW_SAVE_PASSWORD to allow admins to disable saving of passwords. Fixes #2232 2017-03-31 20:14:37 -04:00
Dave Page 670c8a2cc1 Disable HTMLMIN with Python 2.6 as it doesn't work on that older version. 2017-03-09 15:21:52 +00:00
Dave Page fb44ffffa0 Fix a couple of translation issues, and remove the test French translation files. 2017-03-08 10:13:15 +00:00
Ashesh Vashi 41e0a73ea6 Adding the directory containing 'config.py' in to the sys.path variable,
so that - when config.py refered from outside the pgAdmin itself (i.e.
during building the pip).
2017-03-07 17:10:34 +05:30
Ashesh Vashi f2fc1ceba8 Resolved quite a few file-system encoding/decoding related cases.
In order to resolve the non-ascii characters in path (in user directory,
storage path, etc) on windows, we have converted the path into the
short-path, so that - we don't need to deal with the encoding issues
(specially with Python 2).

We've resolved majority of the issues with this patch.
We still need couple issues to resolve after this in the same area.

TODO
* Add better support for non-ascii characters in the database name on
  windows with Python 3
* Improve the messages created after the background processes by
  different modules (such as Backup, Restore, Import/Export, etc.),
  which does not show short-paths, and xml representable characters for
  non-ascii characters, when found in the database objects, and the file
  PATH.

Fixes #2174, #1797, #2166, #1940

Initial patch by: Surinder Kumar
Reviewed by: Murtuza Zabuawala
2017-03-07 15:31:03 +05:30
Dave Page 063177155e Bump version prior to release. 2017-03-06 15:35:08 +00:00
Atira Odhner 5fa1e83f0a Ensure feature tests use the TEST_SQLITE_PATH, not SQLITE_PATH. 2017-02-28 17:09:32 +00:00
Dave Page 24a3f3ab42 Reduce the default log level to something more sensible. 2017-02-10 21:33:57 +00:00
Dave Page d3232b2449 Fix runtime version number. 2017-02-10 12:02:42 +00:00
Dave Page 5abd62389d Bump version for release. 2017-02-06 15:45:14 +00:00
Dave Page f221194bcc Update copyright notices for 2017. 2017-01-04 13:33:32 +00:00
Dave Page 1a18e07329 Allow a placeholder ($DIR) to be used in utility paths to make it easier to use relative paths. 2016-11-23 13:35:27 +00:00
Dave Page 08396ce861 Allow default binary paths to be set in the config for each database driver. 2016-11-23 12:44:13 +00:00
Dave Page 020bf1d532 Minify HTML with Flask-HTMLMIN 2016-11-18 16:42:38 +00:00
Dave Page d5351ad657 Add file resources to the windows runtime. Fixes #1874 2016-11-18 15:46:39 +00:00
lambda 3e541ecb41 Add a Chinese (Simplified) translation. Fixes #1963 2016-11-16 09:40:56 +00:00
Dave Page 517a85866b Update version number for release. 2016-10-24 16:30:37 +01:00
Dave Page bc5cc964a3 Move security keys into the SQLite database, and auto-generate them.
This avoids packagers having to deal with the issue, which can be
difficult if they need to cater for both server and desktop modes.

Fixes #1849
2016-10-19 09:22:38 +01:00
Dave Page e06fd21f3c Bump version for release 2016-09-26 16:16:13 +01:00
Navnath Gadakh d3d8836f61 Introduce a test config database for the regression tests, and track/remove objects that are created during testing. 2016-09-14 16:26:12 +01:00
Ashesh Vashi f7dd8cbab4 Bump version for RC1 release 2016-08-29 20:37:44 +05:30
Dave Page 0ce8b031f8 More sensible defaults for the mail server settings. 2016-08-23 11:41:45 +01:00
Dave Page 050937a32a Fix WSGI support. 2016-08-18 13:43:00 +01:00
Dave Page 48384cd6cd Bump version. 2016-08-08 16:48:10 +01:00
Murtuza Zabuawala d3d96d5c05 Disable SQLALCHEMY track modification feature as it puts overhead on system, and if not set, now emits a warning. 2016-07-26 13:01:56 +01:00
Dave Page a014cf82a1 Use a numeric version check for upgrades. 2016-07-22 16:14:57 +01:00
Dave Page 8e29d16eec Beta 3 version bump 2016-07-18 16:34:00 +01:00
Dave Page c45960df5e Beta 2.1 - a favour for our friends in QA. 2016-06-30 16:05:23 +01:00
Dave Page d63b54610b Move the config database schema version out of the configuration file and into the model class.
Turns out using the config file isn't a good idea if users copy config.py to config_local.py, as it prevents upgrades to the database. This has the added side-effect of simplifying future changes, as you only need to edit 2 files to modify the config DB now, not 3.
2016-06-24 12:50:52 +01:00
Dave Page 1acc1a7678 Auto-discover locally installed servers at login. Fixes #1389 2016-06-23 16:27:06 +01:00
Murtuza Zabuawala 97d49af43a Fix constraint on server table to allow port 65535 to be used. Fixes #1388 2016-06-23 11:43:50 +01:00
Dave Page 7d0fe669ca Code tidy. 2016-06-21 14:21:06 +01:00
Dave Page 3026b470e9 Optimise Python imports. 2016-06-21 14:12:14 +01:00
Dave Page 648eebd230 Bump version for beta 2. 2016-06-21 12:20:01 +01:00
Ashesh Vashi f1eca516f0 Adding comment about setting some higher value for SQLITE_TIMEOUT, on
slower system - user may need to set the value to some higher value.

This value decide - for how long SQLITE operation will wait, before
throwing an operation timeout error because of the locked database.

Fixes #1329
2016-06-20 15:55:00 +05:30
Dave Page 5f3511ce39 Figure out storage paths in a more Windows friendly way. Fixes #1369 2016-06-16 20:11:43 +01:00
Dave Page 17b6053f45 Support distro-specific configs, and include docs in the PIP wheel.
A distro can now install a config_distro.py file alongside config.py
in which distro-specific configuration settings can be set, overriding
those in config.py. User settings in config_local.py will override
all other settings. This is useful to allow packagers to config
settings like the doc path, that may be specific to RPMs or Wheels
etc.
2016-06-15 20:56:27 +01:00
Harshal Dhumal e3ab4501d5 User management. 2016-06-06 13:34:08 +01:00
Dave Page fc654a0934 Let's make it Beta 1 2016-06-03 11:19:57 +01:00
Murtuza Zabuawala d202366a5d Fixes #1185 - While connecting to the server, application becomes almost
inaccessible.

In stand (without threaded) mode, flask application is not able to
process more than one request at a time. Hence - even the client
(browser) send multiple request, when connecting the server (which is
inaccessible), rest of operations get blocked, as making the connection
with the database server is blocking operation.

In order to fix the issue, we're starting the application with thread
support, in which it will create a separate thread of each request.
2016-06-02 14:51:33 +05:30
Dave Page 1724787f2a www.pgadmin.org now supports https. 2016-05-21 13:54:22 -04:00
Dave Page 50c134c4f1 Use a 2 part version number. We never used the first digit in 13 years of pgAdmin 3. 2016-05-17 13:10:18 -04:00
Ashesh Vashi f682f06c94 Adding a background process executor, and observer.
We will be using the external utilities like pg_dump, pg_dumpall,
pg_restore in background. pgAdmin 4 can be run as a CGI script, hence -
it is not good idea to run those utility in a controlled environment.
The process executor will run them in background, and we will execute
the process executor in detached mode.

Now that - the process executor runs in detached mode, we need an
observer, which will look at the status of the processes. It also reads
output, and error logs on demand.

Thanks - Surinder for helping in some of the UI changes.
2016-05-13 08:49:51 +05:30
Ashesh Vashi 9cdd1f8098 Added support for the server side file manager, which will be useful in
selection, creation, upload/download files/directories resides on the
server side.

This will be useful for file selection/creation for different server
side utilites like pg_dump, pg_dumpall, pg_restore.
2016-05-13 00:04:32 +05:30
Ashesh Vashi d8cbee3850 Adding the timeout for the connection on the configuration database.
While accessing the configuration database from multiple session, it
results in to the error - OperationError, because - sqlite locks all the
database, and does not allow to access it simultaneously. We added the
timeout to give some time window for accessing it simultaneously.
2016-05-10 15:59:04 +05:30
Ashesh Vashi e8b4bb909b Do not honour the session-id, longer than 40 characters, instead create
new session-id in that case.
2016-05-09 00:04:37 +05:30
Murtuza Zabuawala 3eb51e93e7 Allow Werkzeug to be configured to bind to adaptors other than localhost for testing. 2016-05-06 15:25:52 +01:00
Neel Patel 12ae40fe62 Procedural language debugger. 2016-04-14 21:36:04 +01:00
Ashesh Vashi 3c366fafe7 Server side session management support. 2016-03-22 15:05:43 +00:00
Dave Page 5ea822f33e Preferences dialogue. Patch by Ashesh and Khushboo Vashi. 2016-03-07 11:48:53 +00:00
Dave Page 2a52462dbf Add a simple version check mechanism to warn the user if a new release is available. 2016-02-08 16:28:20 +00:00
Dave Page 694506453b Copyright updates for 2016. 2016-01-18 14:48:14 +00:00
Ashesh Vashi a0cfddffdf Adding maximum session idle time in the config.py file 2015-10-22 11:49:53 +05:30
Ashesh Vashi e27e39a8f3 Added support for the infrastructure for on demand access/create the
server connection.

The BaseDriver and BaseConnection are two abstract classes, which allows
us to replace the existing driver with the currently used. The current
implementation supports to connect the PostgreSQL and Postgres Plus
Advanced Server using the psycopg2 driver.
2015-10-20 12:33:29 +05:30
Ashesh Vashi aa150030eb Introduced a mechanism to load required javascripts at runtime
(lazy loading) using the require.js. This allows us to load the
javascript required for any node, only when it was loaded in the browser
tree. Also, introduced the mechanism to show/edit/create of any node in
a tab panel (wcDocker.Panel).
2015-06-30 11:21:57 +05:30
Dave Page 7f68d6fced Update the setup script and config database to handle versioning.
This allows us to update the configuration database schema as needed,
and use the setup script to update it to the current version.

NOTE: Existing databases will need to be recreated once following
this commit. It doesn't seem worth handling the "upgrade from v0"
case when I'm probably the only active developer right now.
2015-03-09 15:06:10 +00:00
Dave Page 613df8b596 Copyright year fixes and doc tweaks. 2015-02-25 20:25:41 +00:00
Dave Page 83cbe87040 i18n support. 2015-02-25 17:06:00 +00:00
Dave Page 39089cca21 Add a Sphinx based help system, and include some initial docs on development. 2015-02-23 10:51:47 +00:00
Dave Page 89cc11fb80 This is a big one campers; Add initial support for treeview nodes.
This commit adds the following:

- Storage of server groups in the configuration database
- Creation of a default server group on in the database
- A mechanism for plugging in treeview node types
- A node type for server groups with:
  - Treeview display
  - Custom per-node javascript implementing a menu option/dialogue to add new groups
  - Custom per-node CSS to style the treeview node
- JSON formatted data in response to AJAX requests, including:
  - Success/failure indication
  - Error message
  - Extra info (e.g. stack trace)
  - The original request data
  - Additional return data, e.g. node ID and label etc.
2015-02-15 17:10:53 -05:00
Dave Page bb6a3f9b5b Use minified output when not in debug mode, and non-minified when debugging.
Update jQuery while we're at it.
2015-02-12 10:28:15 +00:00
Dave Page 53d649de70 Add support for creating dialogs, and add an About dialog.
This adds bootstrap-dialog to help with creation of nice dialogs,
and adds the ability for modules to render Javascript into the
browser, and specify onclick handlers in the menu system.

Also add a basic About dialog, using the new infrastructure and
showing some useful info about the application.
2015-01-27 16:54:39 +00:00
Dave Page d86c90fa73 Blacklist the test module by default. 2015-01-27 14:25:40 +00:00
Dave Page 7c60fb3377 Support a desktop authentication mode.
This uses a single default user in the config database, which is
auto-logged into the app when SERVER_MODE = False. In this mode we
also hide/remove user-related functions in the UI.
2015-01-26 15:20:28 +00:00
Dave Page 10515431c7 Add authentication and the basis of the browser module.
A user authentication module based on flask-security is added, which
allows users to login and change/recover passwords etc. Custom templates
are included for the user/password UIs.

A new setup script will initialise the user (and later settings) DB,
adding the first user and granting them an Administrator role.

A redirects blueprint module is added to handle simple URL redirects.

A browser module is added and currently renders a skeleton page with
a menu bar, gravatar and jumbotron.

NOTE FOR LATER: Currently this code might make the nice basis for any
web app that needs user management and plugins. Hmmm....
2015-01-22 15:56:23 +00:00
Dave Page 7b8cb207ab Support dynamically loaded modules. 2015-01-20 12:32:06 +00:00
Dave Page b9bf6d9aa3 Restructure to enable use of modules for different components of pgAdmin. 2014-12-18 17:49:09 +00:00
Dave Page 417ad2c6ee Make the application name and version details configurable. 2014-12-17 12:52:43 +00:00
Dave Page cdcafa66f2 Fix typo. 2014-12-16 17:47:33 +00:00
Dave Page a1a6e5356f More basic setup. 2014-12-16 17:37:53 +00:00
Dave Page ba939f27d7 Use multiple logging handlers so we can have messages going to both
the console and a file, with differing formats and levels.
2014-12-16 17:14:48 +00:00
Dave Page 2d21ea059b Add a basic logging system. 2014-12-16 15:54:29 +00:00