* added PyMYSQL instead mysqlclient-python
* added pymysql import
* fixed db module import
* foxed self._conn wrapper
* updated cursor migration
* removed existent converters
* some more fixes towards API port
* modified travis
* updated doctype and revereted yml
* modified travis
* refreshed logging
* raw fix
* moved from hard coded constants to declarable instances
* moved from hard coded constants to declarable instances
* refactoring and logging
* moved to global import declaration
* fixed codacy
* unfixed codacy
* minor fix
* binary_type has a single
* deprecated alternative
* merged with latest
* fixed merge conflicts
* using deprecated alternative
* raw fix
* stupid fix
* using StringTypes instead
* brutal hack
* log
* tundebazy to the rescue
* fixed content_hash error
* frappe/database.py
* frappe/database.py
* updated database.py
* updated requirements
* updated requirements
* fixed codacy
* fixed codacy
* moved from DatabaseOperationalError to pymysql.InternalError
* moved from DatabaseOperationalError to pymysql.InternalError
* fixed codacy
* empty commit
* fixed codacy
* fixed codacy
* Add get_source_value to utils, and use it to get value from object or dict
* GitHub connector
* fix codacy
* remove print statement
* Remove Github Connector
* Data Migration Connector
- Create new connection with boilerplate
- Add Run button in Data Migration Plan
* minor
* fix codacy
* remove pygithub
* Minor
- Remove button from form and add to custom button
- Remove is_custom field
- Add Connector Type 'Custom'
- Show New Connection button only in developer mode
* [fix] logging
- only store the name, not the whole json
* [fix] tests
* - trigger new "cron" event
- check cron string syntax
- added croniter to requirements
* - run scheduler ever 60 sec
- trigger all enabled events
- enqueue if now >= next time execution since last one
* Update task-runner.md
* fixed tests
* fix triggering with now = True
* modified sobstitution to cron_map
modified annually label to annual
* ability to use labels defined in cron_map in cron string definition
* Added S3 Integration, need to add backup limit
* Fix validation in s3 doctype
* Added auto-deletion of old backups and backup_limit usage
* Fixes for codacy PR review
* Improved exception handling.
* Update s3_backup_settings.py
* migration tool
* custom field for primary key added
* foreign key and multiple linking F_key issue resolved
* refined code
* many-to-one mapping temp fix
* added support for pre-process + cleaned up code
* [various] fixes to setup wizard for developer mode, frappe.enqueue_doc, share with assign
* Refactor data migration module
* added migration for hub
* Add "Skip errors" in data import tool
* move db_set to document.py
* Add Data Migration Run
* Dynamic Migration ID
* move run() from Mapping to Run
* Push Deleted Documents
* fixes
* [migration] doc operation counts
* insert and update instead of push in connection
* fix count and total_pages, skip sync if total_pages is 0
* [migration] child tables
* fix complete()
* [page] remove required libs
* Add sidebar.js, rename old sidebar.js to form_sidebar.js
* [minor] get_empty_state fixes
* svg in icon
* remove image check
* fix codacy
* fix is_child_table check
* [connector] add get_list()
* Add test for Data Migration Run
* fix test
* truncate tabNote
* fix test
* sync todo with event to fix test
* fix db count
* [mapping] export Mapping to json
* Add docs for Data Migration Tool
* [migration] pull data as list, test case
* [hub] remove mapping export to files
* Pull refactor
* [test]
* Add comments
* [mapping] exec in mapping formula
* fix codacy
* fix codacy
* Remove exec for pre-process and post-process
* Add pre and post process for Push
* Remove formula
* fixes
* [refactor] add failed_log to pull, handle error in pull
* [test] Push, pull, update
* Fix codacy, fix insert_doc for pull
* Set migration id on successful insert
* fix update_doc
* fix update_doc
* method is a function
* child table mapping
* Refactor logging
* fix update_doc again
* fix hostname, password
* update docs, minors
* Remove assign_if_none
* Remove error handling from connection methods
* [refactor] Data migration run
* Break push stages into methods
* Migration run refactor
- fix test
- add separate fields for logging
* fix codacy
* fix hostname password
* fix test
* DRY font-family declarations
* Add email.less, inline styles using premailer
* min-width 100% for mobile email clients
* Emails without header have default 100% width (like before)
* Include email.css for all apps
* Keep !important declarations
* Add test case for inlining css
* Ignore important rules in css
* minor
* Add field for client_secret in Oauth Client Doctype
* openid_profile endpoint in oauth2.py
* added stub methods for OpenID Connect in RequestValidator
* [Fix] using werkzeug url_fix on uri
* added 3 oidc methods in RequestValidator
* Added Frappe Section in Social Login Keys
Add section in `Social Login Keys` for fields `Frappe Client ID` and `Frappe Client Secret` and additional field Frappe OAuth 2 Server because github, facebook and google have fixed urls, Frappe server URL can change as per the hosting domain/server/company
* [Fix] accept code id_token param for oidc
* generate id_token jwt alg HS256
* Updates to OAuth 2 and OIDC
`OAuth Authorization Code` and `OAuth Bearer Token` DocType made RO
Delete Invalid Codes and Revoked Tokens periodically
generate and send `id_token` only if scope of token is `openid`
* [Fix] Periodically delete revoked tokens
* Social Logins untested
* Enabled Frappe social login
* [Docs] OpenID Connect and Frappe social login
* [Fix] Allow multiple scopes for OAuth 2
* [Docs] Added screenshot steps to configure openid and frappe social login
* saved doctype to solve merge conflict
* [fix] re-added client_secret after resolving merge conlict
* [Fix] frappe_userid and default scope
* OAuth 2.0 Classes Added
Added oauthlib in requirement.txt
Added class WebApplicationServer for Authorization code grant and Bearer tokens.
Added class OAuthWebRequestValidator for Validating Oauth Request for Web Application
* copied code from mnt_oauth needs review
* [New] OAuth2 Doctypes and endpoints added
Integrations > OAuth Provider Settings
Integration Broker > OAuth Bearer Token
Integration Broker > OAuth Authorization Code
Integration Broker > OAuth Client
endpoints for authorize, approve, get_token, revoke_token and test_resource
* oauth2.py: renamed skipauth to skip_auth
* [Fix] Parse URL instead of storing it in settings
* [Fix] get skip_auth from OAuth Provider Settings
* Success URL format. Failure URL added. Confirmation dialog layout changed.
* Validate access token if passed during use of REST API
* OAuth Confirmation colours fixed
* Multiple Changes
Added links for OAuth under Integrations in Module list.
Updated permissions on OAuth doctypes.
Updated layout of OAuth Client doctype.
* [Docs] Integrations > How to setup OAuth
* [Docs] Integration > Using OAuth
* [Fix] get_token endpoint must to handle POST request
* [Fix] http verbs and responses for OAuth 2.0 Endpoints
* [Fix] accept oauth2 access_token from headers
* Removed unused imports from api.py
* [fix] refactor integration services
* [fix] patch fix
* [fix] added redirect url.
* [fix] custom redirect to and reditect message for paypal and service setup information
* [minor][fix] remove ldap dependancy from requirements