Commit Graph

59 Commits

Author SHA1 Message Date
Beto Dealmeida
be88cb9ba0 feat: show user email in dashboard API (#19004)
* Feat: show user email in dashboard API

* Fix test
2022-03-02 17:02:26 -08:00
michael-hoffman-26
2c86d1a2b7 docs(Import API): update function description, overwrite real meaning (#18882)
Co-authored-by: michael_hoffman <michael.hoffman@nielsen.com>
2022-02-23 20:53:59 +02:00
Ville Brofeldt
299635c580 docs: add password example to dataset import API (#18580) 2022-02-07 09:38:55 +02:00
Adam Dobrawy
dad6f78419 refactor: extract json_required view decorator (#18170)
* refactor: extract json_required view decorator

* chore: rename json_required to requires_json

* refactor: add requires_form_data decorator and use it

* fix: fix lint issue, raise InvalidPayloadFormatError for invalid payload
2022-01-31 08:53:48 -03:00
Geido
12bd1fcde5 fix: Save properties after applying changes in Dashboard (#17570)
* Refactor PropertiesModal

* Update json_metadata fully

* Clean up

* Verify values

* Catch changed to metadata

* Always updated dashboard info on update

* Avoid unnecessary fetches

* Formt

* Fix copy dashboards

* Fixes onUpdate onCopy handlers

* Pylint

* Update tests

* Clean up

* Handle data on show

* Change Save to Apply

* Update Cypress save test

* Update Cypress edit prop test

* Update PropertiesModal test

* Fix duplicate request with cross filters

* Improve code style

* Fix typo

* Lint
2021-12-09 10:03:07 -07:00
Michael S. Molina
76cd7b0481 fix: Dashboad export loading indicator (#17613) 2021-12-01 13:08:38 -03:00
Geido
83e49fc9ee feat: Certify Charts and Dashboards (#17335)
* Certify charts

* Format

* Certify dashboards

* Format

* Refactor card certification

* Clear details when certified by empty

* Show certification in detail page

* Add RTL tests

* Test charts api

* Enhance integration tests

* Lint

* Fix dashboards count

* Format

* Handle empty value

* Handle empty slice

* Downgrade migration

* Indent

* Use alter

* Fix revision

* Fix revision
2021-11-24 13:42:52 +02:00
Michael S. Molina
76024313c6 fix: Dashboard access when DASHBOARD_RBAC is disabled (#17511)
* fix: Dashboard access when RBAC is disabled

* Sends 403 when forbidden

* Fixes issort

* Changes assertion

* Allow access to unpublished dashboards that don't have roles

* Fixes the test_get_dashboard_changed_on test
2021-11-23 11:45:32 -03:00
John Bodley
7e4c940314 chore(pylint): Enable useless-suppression check (#16388)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-24 03:58:41 +12:00
John Bodley
b5c7ed9f18 chore(pylint): Reenable too-many-locals check (#16268)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 04:23:40 +12:00
John Bodley
24b43beff9 chore(pylint): Bump Pylint to 2.9.6 (#16146)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-14 10:32:28 +12:00
Maxime Beauchemin
df50a47777 chore: add stats logging to thumbnail api (#16133) 2021-08-09 08:34:51 -07:00
John Bodley
671b8f2544 chore: Mypy fix **kwargs type (#15823)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-07-29 04:59:20 +12:00
Beto Dealmeida
53df152362 feat: show spinner on exports (#15107)
* feat: show spinner on exports

* Set cookie only if token is passed

* Use iframe

* Small fixes

* Fix lint

* Remove stale test

* Add explicit type
2021-06-11 17:25:00 -07:00
Beto Dealmeida
2313e3ef4f fix: show error on invalid import (#14851)
* fix: show error on invalid import

* Add unit test

* Remove unused imports

* Fix tests
2021-05-27 14:46:41 -07:00
Beto Dealmeida
f1ea1d74a7 fix: OpenAPI boolean type (#14827) 2021-05-25 14:46:41 -07:00
Ben Reinhart
6d9d362ca8 chore: use before_request hook for dynamic routes (#14568)
* chore: use before_request hook for dynamic routes

* Shorten hook names

* Introduce with_feature_flags and update thumbnail tests

* Disable test that fails in CI but not locally

* Add test for reports
2021-05-14 12:49:25 -07:00
Sam Faber-Manning
11260b3117 chore: add stack trace to all calls of logger.error (#14382) 2021-04-30 09:22:05 -07:00
Erik Ritter
bc47bc8f66 feat: Add etag caching to dashboard APIs (#14357) 2021-04-29 14:14:26 -07:00
Rob DiCiuccio
6875a1a9e2 Make g.user attribute access safe for public users (#14287) 2021-04-26 08:50:50 -07:00
Jesse Yang
2dd20df03d fix(dashboard): draft dashboards should be viewable (#14207)
* fix(dashboard): draft dashboards should have open access

* Remove a duplicate test
2021-04-21 09:54:51 -07:00
Phillip Kelley-Dotson
4bb29b6f04 chore(spa refactor): refactoring dashboard to use api's instead of bootstrapdata (#13306)
* add hook for future async api calls

* test to see conflict

* add async middleware and update reducers

* working async dashboard load

* implement getcharts api

* add user permissions to explore and dashboard bootstrap data

* integrate api calls with getinitial state

* update namings

* accept an id or a slug in the dashboard charts api

* add permissions function

* fix merge

* update state

* get dashboard charts by id or slug

* fix undefined states

* variable names

* stop using some more bootstrap data

* fix metadata reference

* remove unused bootstrap from the template

* add errorboundry to dashboard

* refactoring, fixing

* update permissions

* add just roles

* id is supposed to be a string

* unused vars

* get datasources from api

* make onError optional

* use resource hooks, better error boundary

* add loading state for dashboardroute

* remove console

* add conditional

* more conditionals

* testing out a possible fix for cypress

* convert edit/standalone test to cypress

* remove bootstrappy assertions

* lint

* fix dashboard edit history issue

* rename stuff

* address recent native filters schema change

* remove unused getInitialState

* remove .only from test

* hooksy redux usage

* Revert "more conditionals"

This reverts commit 25c8ed61b4.

* cleanup

* undo unnecessary change

* actually need conditions here

* certainty

* Revert "certainty"

This reverts commit 77dea1915b.

* more permutations (untested yolo)

* Update superset-frontend/src/chart/chartReducer.ts

Co-authored-by: Evan Rusackas <evan@preset.io>

* import style

* comment

* cleaner dashboardInfo

* remove debug code

* use memo for getPermissions

* fix lint

* adjust name/location of DashboardPage

* move logic for REMOVE_SLICE_LEVEL_LABEL_COLORS to DAO

* stop using full_data()

* remove unused (and now useless) json=true query param

Co-authored-by: David Aaron Suddjian <aasuddjian@gmail.com>
Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2021-04-12 16:10:29 -07:00
David Aaron Suddjian
1b95ed7267 feat(dashboard): dashboard/id/datasets endpoint (#13523)
* feat(dashboard) dashboard/id/datasets endpoint

* schema for dashboard datasets

* list instead of map

* finish dashboard dataset schema

* description

* better test

* add the dataset schema to the schema list

* lint
2021-03-11 17:43:33 -08:00
David Aaron Suddjian
491fbd16f7 fix(dashboard): Get dashboard by slug (#13352)
* refactor out id_or_slug filter logic

* fix(dashboard): accept slug in place of id in url

* remove unnecessary show fields

* fixes and tests

* linting

* linter compliance

* change requests

* names
2021-03-05 10:11:21 -08:00
Beto Dealmeida
9fc03f0424 fix: API to allow importing old exports (JSON/YAML) (#13444)
* fix: fix API to allow importing old exports (JSON/YAML)

* Fix test

* Fix lint

* Add description to API schema
2021-03-04 17:18:27 -08:00
David Aaron Suddjian
cc9103b0e2 feat(dashboard): API to get a dashboard's charts (#12978)
* feat(dashboard): get endpoint for a dashboard's charts

* temporary debugging fetch on the frontend

* attempted fixes

* singular -> plural derp

* plural -> singular derp derp

* docstring changes

* change return, no id

* move log above query

* add get_charts to include_route_methods /)_-)

* add get charts api

* result not response

* refactor test helper function to a mixin

* add test for new endpoint

* fix test when running in isolation

* correct comment

* rename test

* more tests, handle dashboard not found

* simplify test to use new helper function

* remove debugging code from frontend

* update docstring

* attempt a doc fix

* add id to api docs

* fix docs

* use pytest fixture

* why oh why does test order matter here, idk

* writing a schema for the endpoint

* more efficient fetching of charts

* testing tweaks

Co-authored-by: Phillip Kelley-Dotson <pkelleydotson@yahoo.com>
2021-02-15 11:41:59 -08:00
Amit Miran
312cbf736c feat(dashboard_rbac): add support for related roles (#13035) 2021-02-15 10:57:37 +02:00
Amit Miran
8ccf2e8f1e feat(dashboard_rbac): dashboards API support for roles create/update + roles validation (#12865) 2021-02-07 16:16:19 +02:00
Beto Dealmeida
7bef5ab4d2 fix: ignore system files on import (#12526) 2021-01-15 15:53:55 -08:00
Daniel Vaz Gaspar
0f731f27e4 fix(api): prefix class names on events actions (#12354)
* fix(api): prefix class names on events actions

* fix bulk delete
2021-01-12 10:52:35 +00:00
Daniel Vaz Gaspar
dd5cdb1b5f feat(dashboards): security permissions simplification (#12012)
* feat(dashboards): security perm simplification

* fix tests

* fix tests

* remove unnecessary mapping

* fix JS tests

* fix cypress test and explore endpoint

* update alembic down revision

* Merge branch 'master' into feat/security-converge-dashboards

# Conflicts:
#	superset/constants.py
#	tests/security_tests.py
2020-12-17 09:53:13 +00:00
Beto Dealmeida
475f59cb1c feat: confirm overwrite when importing (#11982)
* feat: confirm overwrite when importing

* Skip flaky test
2020-12-10 14:50:10 -08:00
Beto Dealmeida
8f1ac7ead1 feat: add modal to import dashboards (#11924) 2020-12-07 21:26:14 -08:00
Beto Dealmeida
c354e7e0ab fix: remove root dir from ZIP bundle (#11805)
* fix: remove root dir from ZIP bundle

* Fix lint

* Fix tests

* Improve tests

* Fix dashboard as well
2020-11-25 11:47:48 -08:00
Maxime Beauchemin
0504cf1a00 chore: improve analytics (#11714)
* chore: improve analytics

* lint

* log more events, add note in UPDATING.md

* handling base class

* more events\!

* get ref through

* right before @expose

* fix context

* touchups
2020-11-25 08:45:02 -08:00
Beto Dealmeida
501b9d47c5 feat: API endpoint to import dashboards (#11751)
* ImportChartsCommand

* feat: add a command to import dashboards

* feat: API endpoint to import dashboards

* Add dispatcher

* Raise specific exception

* Fix test

* Remove print calls

* Add logging when passing
2020-11-24 22:45:35 -08:00
ʈᵃᵢ
edb9619731 refactor: reduce number of api calls needed to fetch favorite status for charts and dashboards (#11502) 2020-11-02 21:26:14 -08:00
Phillip Kelley-Dotson
f7051eaade feat: home screen mvp (#11206)
* step 1: broken stuff!

* first steps

* more adding and slicing

* step 1: broken stuff!

* can now filter dashboards/charts for "Edited" tabs (filter by changed_by o_m)

* more updates

* update recent card

* add icon

* Adding Expand Icon to Collapse component

* more updates

* clean up code

* remove lock file

* remove consoles

* fixing subnav button height shift

* lil' ascii arrows

* update branch

* update test part 1

* remove consoles

* fix typescript

* add images and update emptystate

* add changes

* update chart card

* fix css issues from rebase

* add suggestions

* more changes

* update tests and clear typescript errors

* Update superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* update from comments

* more updates..

* fix rebase

* fix pesky type errors

* test fixes

* lint fix

* Update superset-frontend/spec/javascripts/views/CRUD/welcome/Welcome_spec.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/views/CRUD/welcome/EmptyState.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/components/Menu/SubMenu.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/components/ListViewCard/index.tsx

Co-authored-by: ʈᵃᵢ <tdupreetan@gmail.com>

* Update superset-frontend/src/components/ListViewCard/index.tsx

Co-authored-by: ʈᵃᵢ <tdupreetan@gmail.com>

* add suggestions

* fix lint

* remove unused code

* toast getrecentActivityobjs

* add some suggestions

* remove types for now

* cypress fix

* remove unused type

Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: ʈᵃᵢ <tdupreetan@gmail.com>
2020-10-29 21:59:31 -07:00
Beto Dealmeida
c81204aeef feat: export dashboards as ZIP files (#11351)
* Export datasets as ZIP files

* Add logging when failing to parse extra

* Export datasets as ZIP files

* Export charts as Zip file

* Export dashboards as a Zip file

* Add logging
2020-10-22 20:02:40 -07:00
Daniel Vaz Gaspar
4c85d33109 feat: custom favorite filter for dashboards, charts and saved queries (#11083)
* feat: custom favorite filter for dashboards

* lint and sort

* add favored for charts

* fix tests and lint

* more tests and saved query filter

* fix tests

* fix tests

* lint

* lint and fix conflict

* remove unnecessary prop

* separate tests
2020-10-01 15:08:40 -07:00
Lily Kuang
ea105bc23b feat: add "created by" to dashboard CRUD view (#11030) 2020-09-24 14:33:55 -07:00
Kasia Kucharczyk
9d7b3536e1 fix: pylint disabled rules in dashboard/api.py (#10976)
* Refactored `put` method in dashboards/api.py:
- changed retun statements
- removed lint disabled rule

* `arguments-differ` disabled rule is not anymore valid - put argiments don't differ

* `delete()` method in dashboards/api has now same list of argiments:
- removing unecessary pylint check disabled

* `bulk_delete()` method in dashboards/api has now same list of argiments:
    - removing unecessary pylint check disabled
2020-09-21 16:02:41 +01:00
Daniel Vaz Gaspar
2b061fc64b fix: modified by column on charts and dashboards (#10340) 2020-07-16 23:15:47 +01:00
Daniel Vaz Gaspar
74cb82e1ad fix: humanised changed on UTC on dashboards and charts (#10321)
* fix: API marshmallow3 drop utc for naive datetime fields

* fix: API marshmallow3 drop utc for naive datetime fields

* fix, tests

* isort and test

* black

* add and fix test

* fix comment
2020-07-15 19:09:32 +01:00
Daniel Vaz Gaspar
3922348351 refactor: dashboards OpenAPI spec (#10301)
* refactor: dashboards OpenAPI spec

* small fix
2020-07-14 08:56:23 +01:00
Daniel Vaz Gaspar
6224edd42d fix: dashboard endpoint sig changed (#10220)
* fix(thumbnails): dashboard endpoint sig changed

* fix, flask get url for Superset.dashboard

* add simple test
2020-07-09 11:42:38 +01:00
Daniel Vaz Gaspar
878dbcda3f feat(api): bump marshmallow and FAB to version 3 (#9964)
* feat(api): bump marshmallow and FAB to version 3

* revert query context tests changes

* obey mypy

* fix tests

* ignore types that collide with marshmallow

* preparing for RC2

* fix tests for marshmallow 3

* typing fixes for marshmallow

* fix tests and black

* fix tests

* bump to RC3 and lint

* Test RC4

* Final 3.0.0

* Address comments, fix tests, better naming, docs

* fix test

* couple of fixes, addressing comments

* bumping marshmallow
2020-07-07 13:26:54 +01:00
Maxime Beauchemin
318e5347bc feat: Alerts! allowing users to set SQL-based email alerts with screenshots (#9944)
* feat: add support for alerts

* Add ModelViews

* First pass at adding scheduled Alert support

* Fix syntax errors

* Add log_retention and database to model

* Improving screenshots

* Still refactoring screenshots

* Pass down thumb_size properly

* Progress on screenshot endpoint

* Add alerts.last_eval_dttm and alert query logic

* Getting ready to split compute_screenshot and screenshot/{SHA}

* split the endpoints

* Improving alerting loop

* empty methods

* Add CLI command 'superset alert' that runs a sched loop

* Getting things to work

* email delivery

* A working email\!

* Add feature flag

* Add some description_columns to AlertModelView

* Little tweaks

* Use database.get_df, eval cells for truthiness

* Migrate thumbnail/screenshot functions to use new arg pattern

* Addressing PR feedback

* Update alerts DB migration down_revision

* Resolve _deliver_email arg conflict

* Make mypy happy

* Make isort happy

* Make pylint happy

Co-authored-by: Rob DiCiuccio <rob.diciuccio@gmail.com>
2020-07-06 13:12:27 -07:00
Will Barrett
8e23d4f369 chore: Upgrade pylint to 2.5.3 and fix most new rules (#10101)
* Bump pylint version to 2.5.3

* Add a global disable for the most common new pylint error

* Fix a bunch of files containing very few errors

* More pylint tweakage, low-hanging fruit

* More easy stuff...

* Fix more erroring files

* Fix the last couple of errors, clean pylint!

* Black

* Fix mypy issue in connectors/druid/models.py
2020-06-18 14:03:42 -07:00
Daniel Vaz Gaspar
0d85d25314 docs(api): improve openapi documentation for dash, charts and queries (#9724) 2020-05-05 14:42:18 +01:00