* Change front-end and data model for SAML2 auth - static configuration
* Add changes to use inline metadata.
* add switch for static and dynamic SAML configurations
* Fixed config of backend static/dynamic to match UI
* add ability to encrypt/decrypt SAML assertions with pem and crt files. Upgraded to pysaml2 6.1.0 to mitigate signature mismatch during decryption
* remove print debug statement
* Use utility to find xmlsec binary for encryption, formatting saml_auth module
* format SAML Javascript, revert want_signed_response to pre-PR value
* pysaml2's entityid should point to the sp, not the idp
* add logging for entityid for validation
* use mustache_render instead of string formatting. put all static logic into static branch
* move mustache template for inline saml metadata to the global level
* Incorporate SAML type with Enabled setting
* Update client/app/pages/settings/components/AuthSettings/SAMLSettings.jsx
Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>
Co-authored-by: Chad Chen <chad.chen@databricks.com>
Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>
* added bar chart boilerplate
* added x/y manipulation
* replaced x/y management to inner series preparer
* added tests
* moved axis inversion to all charts series
* removed line and area
* inverted labels ui
* removed normalizer check, simplified inverted axes check
* finished working hbar
* minor review
* added conditional title to YAxis
* generalized horizontal chart for line charts, resetted state on globalSeriesType change
* fixed updates
* fixed updates to layout
* fixed minor issues
* removed right Y axis when axes inverted
* ran prettier
* fixed updater function conflict and misuse of getOptions
* renamed inverted to swapped
* created mappingtypes for swapped columns
* removed unused import
* minor polishing
* improved series behaviour in h-bar
* minor fix
* added basic filter to ChartTypeSelect
* final setup of filtered chart types
* Update viz-lib/src/components/visualizations/editor/createTabbedEditor.jsx
* added proptypes and renamed ChartTypeSelect props
* Add missing import
* fixed import, moved result array to global scope
* merged import
* clearer naming in ChartTypeSelect
* better lodash map syntax
* fixed global modification
* moved result inside useMemo
Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>
Co-authored-by: Levko Kravets <levko.ne@gmail.com>
* Extra actions for Query View and Query Source pages
* Convert Queries List page to functional component
* Convert Dashboards List page to functional component
* Extra actions for Query List page
* Extra actions for Dashboard List page
* Extra actions for Dashboard page
* Pass some extra data to Dashboard.HeaderExtra component
* CR1
* Test Cypress on package list
* Skip Puppeteer Chromium as well
* Put back missing npm install on netlify.toml
* Netlify: move env vars to build.environment
* Remove cypress:install script
* Update Cypress dockerfile
* Copy package-lock.json to Cypress dockerfile
* Directly map query results column to GeoJSON property
* Use cache for geoJson requests
* Don't handle bounds changes while loading geoJson data
* Choropleth: fix map "jumping" on load; don't save bounds if user didn't edit them; refine code a bit
* Improve cache
* Optimize Japan Perfectures map (remove irrelevant GeoJson properties)
* Improve getOptions for Choropleth; remove unused code
* Fix test
* Add US states map
* Convert USA map to Albers projection
* Allow to specify user-friendly field names for maps
* Ask user to log in when session expires
* Update implementation
* Update implementation
* Minor fix
* Update modal
* Do not intercept calls to api/session as Auth.requireSession() relies on it
* Refine code; adjust popup size and position
* expire CSRF tokens after 6 hours
* use axios' built-in cookie to header copy mechanism
* add axios-auth-refresh
* retry CSRF-related 400 errors by refreshing the cookie
* export the auth refresh interceptor to support ejecting it if neccessary
* reject the original request if it's unrelated to CSRF
* Convert TagsList to functional component
* Convert TagsList to typescript
* Allow to unselect all tags
* Add title to Tags block and explicit "clear filter" button
* Some tweaks
* add default limit 1000
* Add frontend changes and connect to backend
* Fix query hash because of default limit
* fix CircleCI test
* adjust for comment
* Refactor CardsList - pass a suffix for list item
Adding :id to an item to be used as a key suffix is redundant and the same
can be accomplished by using :index from the map function.
* Move CardsList to typescript
* Convert CardsList component to functional component
* CR1
* CR2
* Support multiple queries in a single query box
* Implement statement splitting function and add tests for it
* Add a test for databricks-specific syntax
* Split statements before running query
* Introduce Link component
* Use Link component for external links as well
* Remove unused file (I hope it's really not needed)
* Use Link component in visualizations library
* Simplify Link component implementation
* CR1
* Trigger build
* CR2
* Set corejs version in .babelrc so Jest doesn't complain.
* Rewrite services/routes in TypeScript.
* Add TypeScript definitions for DialogComponent.
* Make image paths more portable
* Add current route context and hook.
* Make EmptyState more flexible by being able to pass in getSteps function.
* Rewrite ItemsList in TypeScript.
* Introduce the possibility to add custom sorters for a column.
* Rearrange props to be friendly to TypeScript.
* Type definitions for NotificationApi.
* Use Databricks query editor components for databricks_internal type of query runner.
* URL Escape password in Alembic configuration.
* Compare types in migrations.
* allow non-sequential IDs for DataSources in Cypress tests
* refactor redash-api to a set of Cypress commands
* support mounting Redash endpoints in Cypress routes
* fix some parameter specs by waiting for schema to load
* extract baseUrl from cypress.json
* Restyled by prettier (#5110)
Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: restyled-io[bot] <32688539+restyled-io[bot]@users.noreply.github.com>
Co-authored-by: Restyled.io <commits@restyled.io>
* add lock table header
* Move styling to a new class
* Update renderer.less
* Move class to table and fix top border
* Update renderer.less
* Update viz-lib/src/visualizations/table/renderer.less
Thanks, this change is good to me.
Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>
Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>
* add flask-wtf
* add CSRF tokens to all static forms
* add CSRF tokens to all axios requests
* disable CSRF validation in unit tests
* support CSRF-protected requests in *most* cypress tests
* don't enfroce CSRF checks by default
* avoid CSRF enforcement in unit tests
* remove redundant spread
* some camel casing hiccups
* always yield the CSRF cookie, but avoid enforcing it if CSRF toggle is off
* Restyled by prettier (#5056)
Co-authored-by: Restyled.io <commits@restyled.io>
* set a CSRF header only if cookie is present
* enforce CSRF in CI
* install lodash directly for Cypress
* install request-cookies directly for Cypress. We should probably start loading package.json deps
* enable CSRF support when logout and login happen within the same spec
Co-authored-by: restyled-io[bot] <32688539+restyled-io[bot]@users.noreply.github.com>
Co-authored-by: Restyled.io <commits@restyled.io>
When using some of the customized login flows such as `REMOTE_USER` the deployed site breaks due to not finding template files. This change updated the app default to use the existing Flask templates directory rather than the compiled static assets directory which only contains an index.html file.