Metadata-Version: 2.4
Name: slashdb
Version: 2.2.0
Summary: RESTful API for databases
Author-email: VT Enterprise <contact@slashdb.com>
Keywords: SlashDB,REST,DB,API
Classifier: Programming Language :: Python
Classifier: Framework :: Pyramid
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/x-rst
Requires-Dist: alchemyjsonschema==0.8.0
Requires-Dist: attrs==25.4.0
Requires-Dist: beaker==1.13.0
Requires-Dist: boltons==25.0.0
Requires-Dist: certifi==2025.11.12
Requires-Dist: cffi==2.0.0
Requires-Dist: charset-normalizer==2.1.1
Requires-Dist: click==8.3.3
Requires-Dist: colorama==0.4.6
Requires-Dist: concurrent-log-handler==0.9.29
Requires-Dist: cryptography==48.0.0
Requires-Dist: dictknife==0.14.1
Requires-Dist: greenlet==3.2.4
Requires-Dist: hupper==1.12.1
Requires-Dist: idna==3.11
Requires-Dist: isodate==0.7.2
Requires-Dist: jsonschema==4.26.0
Requires-Dist: jsonschema-specifications==2025.9.1
Requires-Dist: jwcrypto==1.5.7
Requires-Dist: lxml==6.0.2; platform_system == "Windows"
Requires-Dist: lz4==4.4.5
Requires-Dist: magicalimport==0.9.1
Requires-Dist: mako==1.3.10
Requires-Dist: markupsafe==3.0.3
Requires-Dist: packaging==26.2
Requires-Dist: passlib==1.7.4
Requires-Dist: paste==3.10.1
Requires-Dist: pastedeploy==3.1.0
Requires-Dist: pastescript==3.7.0
Requires-Dist: plaster==1.1.2
Requires-Dist: plaster-pastedeploy==1.0.1
Requires-Dist: platformdirs==4.9.6
Requires-Dist: portalocker==3.2.0
Requires-Dist: pycparser==2.23
Requires-Dist: pyjwt==2.12.1
Requires-Dist: pyramid==1.10.8
Requires-Dist: pyramid-beaker==0.9
Requires-Dist: pyramid-exclog==1.1
Requires-Dist: pyramid-mako==1.1.0
Requires-Dist: pyramid-multiauth==0.9.0
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-memcached==1.62
Requires-Dist: pytz==2025.2
Requires-Dist: pywin32==311
Requires-Dist: pyyaml==6.0.3
Requires-Dist: referencing==0.36.2
Requires-Dist: requests==2.34.2
Requires-Dist: rpds-py==0.27.1
Requires-Dist: simplejson==4.1.1
Requires-Dist: six==1.17.0
Requires-Dist: sqlalchemy==2.0.49
Requires-Dist: sqlparse==0.5.5
Requires-Dist: strict-rfc3339==0.7
Requires-Dist: translationstring==1.4
Requires-Dist: typing-extensions==4.15.0
Requires-Dist: urllib3==1.26.20
Requires-Dist: venusian==3.1.1
Requires-Dist: waitress==3.0.2
Requires-Dist: webob==1.8.9
Requires-Dist: wsgicors==0.7.0
Requires-Dist: zope-deprecation==6.0
Requires-Dist: zope-interface==8.0.1
Requires-Dist: zxcvbn==4.4.28
Requires-Dist: setuptools==80.9.0
Provides-Extra: databricks
Requires-Dist: slashdb-databricks~=1.5.0; extra == "databricks"
Provides-Extra: db2
Requires-Dist: slashdb-db2~=1.2.0; extra == "db2"
Provides-Extra: duckdb
Requires-Dist: slashdb-duckdb~=1.0.0; extra == "duckdb"
Provides-Extra: diag
Requires-Dist: slashdb-diag~=1.3.0; extra == "diag"
Provides-Extra: mssql
Requires-Dist: slashdb-mssql~=1.2.0; extra == "mssql"
Provides-Extra: mysql
Requires-Dist: slashdb-mysql~=1.2.0; extra == "mysql"
Provides-Extra: oracle
Requires-Dist: slashdb-oracle~=1.5.0; extra == "oracle"
Provides-Extra: postgresql
Requires-Dist: slashdb-postgresql~=1.2.0; extra == "postgresql"
Provides-Extra: saml
Requires-Dist: slashdb-saml~=1.4.0; extra == "saml"
Provides-Extra: jwt
Requires-Dist: slashdb-jwt~=1.2.0; extra == "jwt"
Provides-Extra: snowflake
Requires-Dist: slashdb-snowflake~=1.5.0; extra == "snowflake"
Provides-Extra: sqlcipher
Requires-Dist: slashdb-sqlcipher~=1.2.0; extra == "sqlcipher"
Provides-Extra: trino
Requires-Dist: slashdb-trino~=1.2.0; extra == "trino"
Provides-Extra: uwsgi
Requires-Dist: uwsgi==2.0.29; extra == "uwsgi"
Dynamic: requires-dist

Commit in github

[GUI]  - user interface
[DD]   - Data Discovery
[SPT]  - SQL Pass-Thru
[DDEF] - Database definitions
[UDEF] - User definitions
[QDEF] - Query definitions
[CODE] - strictly code changes
[DOC]  - documentation

1.4.0

1.3.0

1.0.40

#463 [GUI] url lacks separator/wildcard query parameter when filtering by value containing either configuration
#581 [GUI] Populate fields on back history button
#564 [GUI] (wontfix) clear sort makes default sort in dbdef
#638 [SPT] fix bit again
#488 [DD,SPT] upper case extensions malfunctions
#567 [DD,SPT] unknown url extension got interpreted as column
#491 [DD] problem with filtering on multiple ranges
#573 [DD,SPT] unicode in query string parameters
#570 [SPT] sql with unicode fails on execute due to decoding error
#577 [DD] range filtering over limit of column type
#635 [DD,SPT] incorrect behavior of url substitution
#629 [DD] problem of threads with SQLite objects
#208 Userdef PUT should not require user_id in body

1.0.28

#560 [GUI] Number formatting in Query Studio - this was supposed to be fixed
#593 [GUI] Fix missing query description in Execute-Only Query Studio
#554 [GUI] Improve visibility for edit and clear sort buttons in dbdef and userdef
#627 [GUI] Link to chat room on Gitter
#444 [DD] Fix DB2 sample database reflection - check if still a problem
#600 [XML,XSD] XML and XSD error encoding
#540 [SPT] HTTP 500, if SQL Pass-thru returns no records, but sorting was used
#591 [DD,SPT] Support database connections, which do not require password
#610 [SPT] Colon in string literal tricks Query Studio and backend into prompting for parameter
#615 [XSD] maxOccurs attribute misspelled in XSD
#616 cookie httpOnly and secure
#576 wildcard on numeric
#313 Test environment with all supported databases
#611 Fix mssql northwind tests
#612 Fix sqlite tests for docker
#613 Make script to build images for chinookdb
#587 Add mysql specific test for BIT columns

1.0.11

Fixed bugs:
#601 [GUI] Query studio unresponsive for 35 seconds. Resolved by postponing rendering until user clearly needs that. Still not perfect but prevents blocking use of query studio.
#604 [CODE] logging levels
#595 [CODE] Resolver does not work on Azure instance. Updated Azure build scripts to recover resolv.conf file.
#594 [GUI] motd shows ver. 0.9.x instead of 1.0.x.
#140 [GUI,DD,SPT] messages from databases in foreign languages
#471 [DDEF] sqlite creates dbconfig creates empty file. Now exception is raised if sqlite file doesn't exists, is wrong type or file system permissions don't allow to read file.
#472 [GUI] browser cache serves old version of static files and possibly generated html too. Resolved by adding "no-cache" header to responses with static files. This forces browser to always check if newer file is available using ETag.
#485 [CODE] generated dev license should contain host-fqdn. Production licenses take all data license detail for hash ingredients.
#538 [DD,SPT] Fix nginx cache config to match slashdb.ini

1.0.0

Fixed bugs:
#558 [GUI] Renaming a query in the query studio does not reload to new end point
#550 [GUI] new button in query studio
#560 [GUI] Number formatting in QueryStudio, also date and time everywhere pulled right
#562 [GUI] In querystudio select http method
#552 [GUI] query studio: play on create
#559 [GUI] SQL highlighting does not recognize certain keywords
#549 [GUI] small change to StackOverflow link
#551 [GUI] query studio; play button links cause popup warning
#539 [GUI] other smaller issues discovered while testing v1.0.0
#514 [GUI] Query studio - result columns in mixed order
#513 [GUI] "New" button doesn't open empty Query Studio form
#511 [GUI] Results table not cleared when response without data
#518 [GUI] Breadcrumbs
#517 [GUI] Fields Query ID, Database, HTTP Methods, SQL in querydef should be obligatory
#442 [GUI] Don't add admin to permissions on POST or PUT because admin has full control anyway
#421 [SPT] Allow sqlpass-thru parameters in body for POST, PUT, DELETE
#492 [DD] Data discovery root page - different content in HTML vs other formats
#493 [DD] headers=False does not work on database resource
#482 [DD, SPT] MySQL 8.0 compatibility
#478 [DD, SPT] wrong HTTP responses for database errors
#544 [DD, SPT] query string lost when xsd redirected
#510 [DD, SPT] Undexpected redirect in SQL Pass-thru (max_limit)
#563 [DD, SPT] make JSON pretty by default
#512 [DD, SPT] None in place of zero length string in CSV
#486 [DDEF] vague reflect error messages
#565 [DDEF] User with only execute permission on database can view full-detail list of dbdefs
#541 [CODE] Test init data gets overwritten
#543 [CODE] move tests from __init__.py files to separate modules so they are discovered by pytest

New features:
[GUI] Query Studio meets current query config and execution
#561 [GUI] Tooltip change for all access control lists
#487 [GUI] Rich sql editor for sqlpass-thru
#515 [GUI] Button-like multiselect in configs
#516 [GUI] Unified config lists layout
#520 [GUI] User config change label
#430 [DD, SPT] Add a query string switch to disable __href for JSON and XML
#500 [QDEF] Ship with SQL Pass-thru examples

0.9.57

Fixed bugs:
#502 [DD] Error 500 complaining about ambiguous columns was raised when requested full objects in CSV with depth > 0.
#501 [DD] Header in CSV was missing columns from related tables when request on object width depth > 0.

0.9.56

New features:
[GUI] amazon instance id verification

Fixed bugs:
[DD,SPT] Problem of JSON being cut off in non streaming responses.

0.9.54

Fixed bugs:
[SPT] Closing connection after sqlpassthru requests.
[SPT] Commits for all sqlpassthru requests at final moment (normal and streaming responses).
[GUI,DD,SPT] General DBAPI Errors mappings to HTTP error responses.
#406. [GUI,DBDEF] Can't override connection string. Checkbox gets unchecked and field is disabled immediately on keyup.

0.9.51

New features:
#724. Synchronization between multiple processes and instances which improves performance on multicore system.
#393. [DD] filtering by multiple values e.g. /db/Chinook/Customer/FirstName/Astrid,Frank or /db/Chinook/Customer/FirstName/A*,F*
#277. [DD] parsing CSV now can set NULL value in database if csvNullStr is defined in url e.g. /db/Chinook/Invoice.csv?csvNullStr=myNull
#450. [DDEF,UDEF,QDEF] updating only selected fields of certain configuration instead of sending whole configuration.  *Have in mind that GET of specific field is not possible, must GET the whole config.
#358. [DD,GUI] removing objects
#439. [DD,GUI] editing objects
#398. [SPT,GUI] executing defined query on preferred method. Used to be only GET, now user can trigger query also with PUT, POST or DELETE.
#408. [DDEF,UDEF,QDEF,GUI] sorting Configuration List
#158. [DD] max_limit parameter in ini that prevents overloading database e.g. db.Chinook.max_limit = 10000

Improvements:
#458, #168, #437. [GUI] better and meaningful copy in Database Configuration Modal and simplified user mapping when adding new database.
#448. [GUI] removed schema field for MySQL
#330, #392, #389, #250. [CODE] better separation of plugin components (DataProxies, Parsers and Renderers) and code reformatting.
#443. better error explanation when parsing error occurs.
#447. [GUI] more intuitive user mapping in User Configuration Modal - no duplicate entries, dropdown has only unmapped databases.
#456. [GUI] added JSON link of Database Configuration List.
#406. [DD,SPT,GUI] display message "No resources found" when database doesn't return any data. Like empty lis in other formats. 404 still shows up if filtering by PK.
#408. [QDEF] removed owners list from Query Definition Modal. Use View, Edit and Execute instead.
#428. [GUI] new layout of the main menu, link to "Ask on StackOverflow".
#426. [DD,GUI] clicking on the title of Many Resources page resets all filtering and sorting. 
# New documentation

Fixed bugs:
#469, #470. [GUI] doesn't respect filters when clicking sorting links.
#468. [GUI] can't edit field that has no value.
#82. [DD] limit on joins (relation many-to-one) returns wrong number of objects.
#453. [GUI] wrong links on date/datetime filters
#465, #433. [DD] autoreflect does not factor in database schema
$466. [DBDEF] can't connect to MS SQL if port is not provided in database config.
#460. [DD] PUT fails if using sort parameter in URL
#429. License validation doesn't block in certain situations.
#325. [GUI,UDEF] faulty parsing list of users in fiels on User Config Modal
#451. [DDEF,UDEF,QDEF] responses don't match request format for POST/PUT/DELETE. They always return HTML.
#449. [SPT] query fails to execute on database in case of queries which are not expected to return data like DELETE FROM.
#452. [SPT] misleading 403 Forbidden when there is error in query
#360. [DD] patched SQLAlchemy bug on default datetime value in SQLite database which caused problem of generation location URL for response to POST request.
#236. [DD] can't create new row in database if user has only SELECT privilege. Implemented a fallback that tries to generate location if it's possible.
#441. [DD,UDEF] few HTTP Error Responses are missing few explanations when parsing JSON fails.
#435. [SPT] can't execute SQL Pass-Thru if it's execute url has url-unsafe characters. URL encoding causes errors in parsing the url into query_id and parameters.
#434. Anyone can generate development license when SlashDB is in initial state. This should be allowed only to admin and only in initial state.
#407. [DD] xml error when space in tag name
#205. [DD] column names are not fixed when reflecting database model


0.9.23
- Bug fixes
- Incremental performance improvement
- Added a way to filter by multiple values
- Added to the GUI, a way to execute a given Sql-Passthru query with a method other than GET
- Added sorting by column for config list views

0.9.22
- Bug fixes
- Faster JSON rendering

0.9.21
- Bug fixes
- Fixes for performance issues

0.9.20
- Bug fixes
- Resolved stability issues
- Added sorting by multiple columns
- Reflected sorting ability in Data Discovery GUI
- Added a way to filter by partial values
- Added a way to select only a subset of columns in a Sql-Passthru query
- Added a way to restrict HTTP methods for Sql-Passthru queries
- Added suggestions for the HTTP methods when entering SQL sting in Sql-Passthru query definition
- Simplified Sql-Passthru query definition GUI
- Added a way to generate a random API Key for the user

0.9.15
- new stable release

0.9.6
- Fixed parsing CSV, made header required for scalar update
- New Feature: excluded_columns, configurable in databases.cfg

0.9.5
- Fixed issue with too eager slash escaping in HTML Renderer - #265
- Fixed issue with wrong top button url-s for multiple resources - #268
- Fixed issue with wrong top button url-s for database view - #270
- More uniform encoder/decoder error handling changes for CSV/JSON/XML
- CSV/JSON/XML decoder Unit Tests

0.9.4
- Fixed maxOccurs="unbounded" for cardinality=1 - #255.
- Fixed SQLAlchemyDataProxy respects ordering of columns/fields requested by the user (XML, XSD, CSV) - #255.
- Added Tests for order sensitive emitters/encoders - #255.

0.9.3
- Fixed sort, distinct url query string for array or vector.
- Fixed filtering by clicking on va.

0.9.2
- Fixed exceptions not being caught in sqlpassthru views
- Fixes SQLAlchemy raw SQL executing with missing parameters in URL. SlashDB sets missing parameters to None.

0.9.1
- Fixed compiler

0.9.0
- Refactored to modular version with plugins support


0.8.20
- Fixed problem with parsing boolean in JSON


0.8.19
- Fixed #245 - problem with exceptions leaving open sessions to database


0.8.17
- Fixed #237 - offset didn't work in mssql dialect due to missing order_by for that database type.
- Fixed #238 - HTTP 500 for SQL Pass-thru if no rows matching.
- Fixed #239 - problem with limit for SQL Pass-thru streamed json.

- Reopened and fixed problem with slow sqlpassthru queries with unicode parameters for indexed varchar2 and nvarchar2 columns. For Oracle parameters are now encoded to database charset.
- Fixed problem with slow data discovery filtering on oracle on index varchar fields.
- Improved feature - Streaming JSON in SQLPass-Thru.


0.8.15
- Fixed #232 - bad columns in array output for html or csv
- Fixed #225 - changed clicking on cell in scalar/vector/array in html
- Fixed #235 - 404 when non existing column in array request
- Fixed #169 - better message when ajax timeout
- Fixed #231 - bad format in filtering segments
- Fixed #220 - nginx 500, 502, 503 and 504 page layout same as in app errors
- Fixed #117 - no duplicates in sqlpassthru run form
- Fixed #236 - POST when no SELECT privilege on database


0.8.14
Azure Release Version


0.8.13
- Fixed #214 - opening /query.html without url_substitution defined in ini file
- Fixed #206 - dbdef alternate key got overwritten by GUI save.


0.8.12
- Fixed #224 - filtering by date in sqlite
- Removed default order by on primary key


0.7.29
New features:
- authentication via query string (for integration with 3scale)

Fixes:
- basic authentication
- upgraded to pyramid 1.4.3, webtest


0.7.13
- Fixed #128 - mapping oracle db type to xsd type
- Refactoring

