* change has_access and require_access signatures to work with the objects that require access, instead of their groups
* change has_access and require_access signatures to work with the objects that require access, instead of their groups
* use the textless endpoint (/api/queries/:id/results) for pristine
queriest
* Revert "use the textless endpoint (/api/queries/:id/results) for pristine"
This reverts commit cd2cee7738.
* go to textless /api/queries/:id/results by default
* change `run_query`'s signature to accept a ParameterizedQuery instead of
constructing it inside
* raise HTTP 400 when receiving invalid parameter values. Fixes#3394
* support querystring params
* extract coercing of numbers to function, along with a friendlier
implementation
* wire embeds to textless endpoint
* allow users with view_only permissions to execute queries on the
textless endpoint, as it only allows safe queries to run
* enqueue jobs for ApiUsers
* add parameters component for embeds
* include existing parameters in embed code
* fetch correct values for json requests
* remove previous embed parameter code
* rename `id` to `user_id`
* support executing queries using Query api_keys by instantiating an ApiUser that would be able to execute the specific query
* bring back ALLOW_PARAMETERS_IN_EMBEDS (with link on deprecation coming up)
* show deprecation messages for ALLOW_PARAMETERS_IN_EMBEDS. Also, move
other message (email not verified) to use the same mechanism
* add link to forum message on setting deprecation
* rephrase deprecation message
* add link to forum message regarding embed deprecation
* change API to /api/queries/:id/dropdowns/:dropdown_id
* split to 2 different dropdown endpoints and implement the second
* add test cases for /api/queries/:id/dropdowns/:id
* use new /dropdowns endpoint in frontend
* first e2e test for sharing embeds
* Pleasing the CodeClimate overlords
* All glory to CodeClimate
* change has_access and require_access signatures to work with the objects that require access, instead of their groups
* split has_access between normal users and ApiKey users
* remove residues from bad rebase
* allow access to safe queries via api keys
* rename `object` to `obj`
* support both objects and group dicts in `has_access` and `require_access`
* simplify permission tests once `has_access` accepts groups
* change has_access and require_access signatures to work with the objects that require access, instead of their groups
* rename `object` to `obj`
* support both objects and group dicts in `has_access` and `require_access`
* simplify permission tests once `has_access` accepts groups
* fix bad rebase
* send embed parameters through POST data
* no need to log `is_api_key`
* move query fetching by api_key to within the Query model
* fetch user by adding a get_by_id function on the User model
* pass parameters as POST data (fixes test failure introduced by switching
from query string parameters to POST data)
* test the right thing - queries with safe parameters should be embeddable
* introduce cy.clickThrough
* add another Cypress test to make sure unsafe queries cannot be embedded
* serialize Parameters into query string
* set is_api_key as the last parameter to (hopefully) avoid
backward-dependency problems
* Update redash/models/parameterized_query.py
Co-Authored-By: rauchy <omer@rauchy.net>
* attempt to fix empty percy snapshots
* snap percies after DOM is fully loaded
* Refine Auth service: remove dead code and fix race condition
* Export services in CommonJS style
* Refine Users, Events and OfflineListener services
* Refactor Notifications service - rewrite to CommonJS
* Replace Angular service injection with imports in React components
* Fix Footer tests
* Events service -> recordEvent function
* CR1
* allow execution of selected subquery
* fix query save while highlighted
* don't modify queryText and update UI when running selected
* code style and transition
* Fix query selection execution background color
* make naming consistent
* Update Cypress element selectors
* Add seed data function to Cypress
* Change Cypress setup to be part of db-seed
* Add DatabaseSource selector to Create Data Source spec
* Add getElement command to Cypress
* Fix eslint issues
* Change Cypress getElement to getByTestId
* Add Percy and test it with the CI
* Change Percy dependency for CI to Cypress' Dockerfile
* Change Percy's execution to the docker container
- add --no-save to avoid errors on Dockerfile.cypress
- pass PERCY_TOKEN from the CI to docker container
* Fix missed char on CircleCI config file
* Move Percy execution back to host on the CI
* Test adding PERCY_TOKEN to frontend-e2e-tests on CI config
* Undo add PERCY_TOKEN to config.yml
* Add Percy token and .git folder to Cypress
* Remove Percy install from config.yml
* Ignore .git folder again and use Percy env vars instead
* Update PERCY_PULL_REQUEST to be CIRCLE_PR_NUMBER
* Update cypress-server.js to handle other cypress commands
- cypress-server.js -> cypress.js
- new commands added to cypress.js
- CircleCI config updated accordingly
- added a Homepage screenshot
* Remove trailing spaces
* Add Create Query spec
* Disable Cypress videos
* Update run browser to Chrome
* Add missing --browser chrome
* keep query text in local state for now (#3107)
This will be unnecessary once the queryText prop isn't managed by Angular.
* Fix: make formatQuery work
* Autocomplete toggle improvements:
* Refactor to its own component.
* Show state in tooltip (enabled/disabled).
* Disable the toggle if autocomplete is not possible (no schema/too many tokens).
* Remove unsued code.
* Custom icons font (currently has only two icons).
Generated with Icomoon. If we extend its use, we should probably automate this and move to its own package.
* Don't disable live autocomplete for data sources without schema.
It can still be useful to autocomplete from local keywords.
* Differentiate between autocomplete toggle states with an icon.
Also added explicit message for the disabled state.
* Remember thes state of autocomplete.
* Only auto register init functions.
* Fix search size on smaller tablet size
* Less prominent tag counter
* Fix hiding logo
* Add missing space between icon and button text
* Different embed icon
* Revert embed icon to its original
* Better edit source icon + markup cleanup