Ville Brofeldt
c1712e5d10
Add relative start param for time filters ( #7525 )
...
* Add relative start param for time filters
* Fix typo and add types to parse_human_datetime
* Add relative start/end to query_object
* Fix linting error
2019-05-31 16:55:26 +03:00
Beto Dealmeida
9c8f494c9d
A few improvements to scheduling queries ( #7585 )
...
* Better message for scheduling queries
* Only allow scheduling after success
* Ask for query name and description
* Use CSS instead of <br />
2019-05-23 09:15:04 -07:00
Maxime Beauchemin
1fdc96a381
Disabling flask-talisman by default ( #7535 )
...
flask-talisman was enabled recently and while it may be virtuous in some
cases, it seems to break things out of the box.
Locally and in dev mode, upon my first redirect it sends to HTTPS and
things it crashes.
I think it should be opt-in, maybe we can recommend turning this on in
production in the docs?
2019-05-20 16:58:36 -07:00
Craig Rueda
21a467094b
Talisman config ( #7529 )
...
* Making Talisman configurable
* Fixing double quotes
* Fixing flake8
* Removing default
2019-05-16 22:55:59 -05:00
John Bodley
a4392c8fcd
[security] Adding Flask-Talisman ( #7443 )
2019-05-13 17:08:24 -07:00
Alex Berghage
24970485cf
feat: Add validate_sql_json endpoint for checking that a given sql query is valid for the chosen database ( #7422 ) ( #7462 )
...
merge from lyft-release-sp8 to master
2019-05-06 10:21:02 -07:00
Beto Dealmeida
cb7c8063f3
Feature flag for client cache ( #7348 )
...
* Feature flag for client cache
* Fix integration test
* Revert "Fix integration test"
This reverts commit 58434ab98a .
* Feature flag for client cache
* Fix integration tests
* Add feature flag to config.py
* Add another feature check
* Fix more integration tests
2019-04-23 20:03:57 -07:00
Beto Dealmeida
51544212b6
Add link to documentation ( #7251 )
2019-04-09 09:40:19 -07:00
michellethomas
ead3d48133
Adding warning message for sqllab save query ( #7028 )
2019-03-18 10:14:26 -07:00
Boris Hajduk
5137539a86
[fix] Use HTTPS, not HTTP wherever practical ( #7040 )
...
* Download RAT binary via HTTPS, not HTTP
* Merge branch 'patch-1' of github.com:hajdbo/incubator-superset into patch-1
2019-03-17 23:21:32 -07:00
Maxime Beauchemin
3ae02d1a54
Allow for dynamic feature flags ( #6808 )
...
* Allow for dynamic feature flags
Giving more control over feature flags, allowing administrator to define
custom logic around whether features are enabled for particular users /
roles.
The exposed function can be used for things like:
* progressive rollout of features (1%, 5%, 50%, 100%)
* experimentation
* role-based feature affectation (only admins see a particular feature)
* fix build
* Addressing comments
* Addressing @hughhh's comments
2019-02-27 15:11:38 -08:00
Daniel Vaz Gaspar
a97f3b639e
[fix] Typo on config comments for SILENCE_FAB ( #6901 )
2019-02-17 14:03:04 -08:00
Grace Guo
47f42ed351
Improve Superset logger ( #6879 )
...
* enable beacon
* add middleware
* add unit tests
2019-02-15 23:10:05 -08:00
Maxime Beauchemin
73e119a84e
[config] clarifications around SUPERSET_WEBSERVER_TIMEOUT ( #6840 )
2019-02-11 10:32:11 -08:00
Christine Chambers
231d826757
Make the target path of the superset logo configuable ( #6815 )
...
* Make the target path of the superset logo configuable
There is a need to have the target path of the logo go to different places in different installations of superset. The PR makes the target path (after `/superset`) configurable via the LOGO_TARGET_PATH configuration key and sets the default to the existing `/profile/{{ current_user.username }}/`
* addressing pr comments
2019-02-06 15:41:19 -08:00
Hugh A. Miles II
9573fe338e
added docs on proper function call for db mutator ( #6826 )
2019-02-06 13:17:15 -08:00
agrawaldevesh
cecbba3fe6
Summary: Introduce configs for default relative end time and the epoch-tz ( #6721 )
...
Introduce a config DEFAULT_RELATIVE_END_TIME which is used when
computing the "Last X days". The default behavior (as currently) is to
let that be 'today', which actually means the 0th second of today. We
can also let it be 'now' which means the data as of now (ie at query
time).
Secondly, also introduce another config IS_EPOCH_S_TRULY_UTC, which
means that the logged time in epoch_s format is actually in UTC.
Currently (as the default) is that it it is in the local (superset
webserver) timezone.
** There is no backward incompatibility with thes config features since
the default behavior hasn't changed. **
2019-02-01 16:34:13 -08:00
Christine Chambers
7846bae8e0
Merge pull request #6781 from lyft/xtinec--merge-feature-flags
...
Merge default feature flags and user defined feature flags
2019-02-01 14:36:25 -08:00
Wonjin Kim
adc9a6b495
Add Korean Translation ( #6790 )
...
* fix #6760
* start adding Korean translation
* Add Korean translation
2019-01-31 14:13:43 -08:00
Christine Chambers
b70a9ae524
Merge default feature flags and user defined feature flags
...
- Rename the default feature flags key in `config.py` to DEFAULT_FEATURE_FLAGS
- Merge default feature flags with user defined ones allowing the latter to overwrite the former
- Expose feature_flags for both server and client to use
- Add a utility method for checking whether a feature flag is on on server side
2019-01-30 22:23:27 -08:00
Beto Dealmeida
bbd781b66e
Remove test URL ( #6740 )
2019-01-22 14:27:51 -08:00
Beto Dealmeida
cf1a35b94b
Allow specifying custom width for logo ( #6739 )
2019-01-22 14:25:49 -08:00
Maxime Beauchemin
1dd4d7a587
Apply ASF licenses throughout the code base ( #5800 )
...
* Add license headers
* reabased
* lint
* Removing licenses from vendors folder
2019-01-15 15:53:27 -08:00
Yongjie Zhao
6a95f8070a
minor, auto tune debug mode when use flask_env ( #6550 )
...
* minor, auto tune debug mode when use flask_env
* update changes
2018-12-20 20:35:06 -08:00
Beto Dealmeida
672c470e79
Pass security manager to QUERY_LOGGER ( #6548 )
...
* Pass security manager to log_query
* Fix lint
2018-12-18 10:55:58 -08:00
Mahendra M
808622414c
[SIP-3] Scheduled email reports for Slices / Dashboards ( #5294 )
...
* [scheduled reports] Add support for scheduled reports
* Scheduled email reports for slice and dashboard visualization
(attachment or inline)
* Scheduled email reports for slice data (CSV attachment on inline table)
* Each schedule has a list of recipients (all of them can receive a single mail,
or separate mails)
* All outgoing mails can have a mandatory bcc - for audit purposes.
* Each dashboard/slice can have multiple schedules.
In addition, this PR also makes a few minor improvements to the celery
infrastructure.
* Create a common celery app
* Added more celery annotations for the tasks
* Introduced celery beat
* Update docs about concurrency / pools
* [scheduled reports] - Debug mode for scheduled emails
* [scheduled reports] - Ability to send test mails
* [scheduled reports] - Test email functionality - minor improvements
* [scheduled reports] - Rebase with master. Minor fixes
* [scheduled reports] - Add warning messages
* [scheduled reports] - flake8
* [scheduled reports] - fix rebase
* [scheduled reports] - fix rebase
* [scheduled reports] - fix flake8
* [scheduled reports] Rebase in prep for merge
* Fixed alembic tree after rebase
* Updated requirements to latest version of packages (and tested)
* Removed py2 stuff
* [scheduled reports] - fix flake8
* [scheduled reports] - address review comments
* [scheduled reports] - rebase with master
2018-12-10 22:29:29 -08:00
Beto Dealmeida
5168c69a25
Hook for auditing queries ( #6484 )
...
* Hook for auditing queries
* Address comments
* Use __name__
2018-12-07 12:19:19 -08:00
Maxime Beauchemin
cc3a625a4b
Use py3's f-strings instead of s.format(**locals()) ( #6448 )
...
* Use py3's f-strings instead of s.format(**locals())
In light of the bug reported here
https://github.com/apache/incubator-superset/issues/6347 , which seems
like an odd `.format()` issue in py3, I greped and replaced all
instances of `.format(**locals())` using py3's f-strings
* lint
* fix tests
2018-12-02 13:50:49 -08:00
Grace Guo
8e14e0bd67
allow domain sharding in frontend ( #5039 )
2018-11-30 10:30:04 -08:00
Jeffrey Wang
0584e3629f
Add separate limit setting for SqlLab ( #4941 )
...
* Add separate limit setting for SqlLab
Use separate param for wrap sql
Get query limit from config
unit tests for limit control rendering in sql editor
py unit test
pg tests
Add max rows limit
Remove concept of infinity, always require defined limits
consistency
Assert on validation errors instead of tooltip
fix unit tests
attempt persist state
pr comments and linting
* load configs in via common param
* default to 1k
2018-11-07 15:57:44 -08:00
Junda Yang
59109f62b4
revert the change in config.py ( #6255 )
2018-10-31 17:56:59 -07:00
Junda Yang
c552c125d7
Move metadata cache one layer up ( #6153 )
...
* Update wording
* nit update for api endpoint url
* move metadata cache one layer up
* refactor cache
* fix flake8 and DatabaseTablesAsync
* nit
* remove logging for cache
* only fetch for all tables that allows cross schema fetch
* default allow_multi_schema_metadata_fetch to False
* address comments
* remove unused defaultdict
* flake 8
2018-10-31 13:23:26 -07:00
timifasubaa
46c86672c8
remove utf8 declaration ( #6096 )
2018-10-15 11:53:24 -07:00
timifasubaa
dd9eeda03e
remove future ( #6065 )
2018-10-13 09:39:04 -07:00
Christine Chambers
604524b671
[feat] Feature flag system via config ( #5960 )
...
* [feat] Feature flag system via config
Adding a feature flag system that is driven by superset_config.py. This change includes:
- Server side changes to specify a dedicated FEATURE_FLAG dictionary for listing feature flags. E.g.
```
FEATURE_FLAGS = { 'SCOPED_FILTER': true }
```
- Pass the new feature flags to client via bootstrap-data
- Client side changes to inject feature flags into the redux state tree for dashboard, explore view and SqlLab
- Client side refactor/clean up so the feature flags can be properly tested. Also avoid modifying incoming bootstrap data when creating initial state for the redux state tree
- Re-enable tests that were previously disabled for ExploreViewContainer
* Fix lint errors.
* Remove the partial attempt to get reference to src working in tests (so we don't have to write ../../../src and such in tests). This will in a separate PR.
2018-10-01 11:47:06 -07:00
Maxime Beauchemin
b9e3159f7c
Fix regression around low row limit for CSV exports ( #5866 )
...
* Fix regression around low row limit for CSV exports
* fix tests
* Still trying to fix tests
2018-09-19 13:30:25 -07:00
Beto Dealmeida
222b79df7e
Template dashboard ( #5550 )
...
* Template dashboard
* Fix MySQL test
* Model for user attributes
* Redirect to welcome dash
* Fix lint
* Add missing file
* Add migration script
* Fix lint
* Fix more lint
2018-08-07 17:39:15 -07:00
Grace Guo
2e2c9806b2
Reduce dashboard position_json data size ( #5543 )
2018-08-03 10:55:08 -07:00
Nuno Beires
0786913fa6
Portuguese translation ( #4874 )
...
* Create message.po
* Add files via upload
* Update config.py
* Update config.py
* portuguese translation - messages.json
po2json
* Update message.po
* Add files via upload
* Add files via upload
2018-08-02 11:00:31 -07:00
Ville Brofeldt
c1e6c68a3e
Add time grain blacklist and addons to config.py ( #5380 )
...
* Add interim grains
* Refactor and add blacklist
* Change PT30M to PT0.5H
* Linting
* Linting
* Add time grain addons to config.py and refactor engine spec logic
* Remove redundant import and clean up config.py
* Fix bad rebase
* Implement changes proposed by @betodealmeida
* Revert removal of name from Grain
* Linting
2018-07-30 23:44:30 -07:00
Grace Guo
723bbe46e2
Remove dashboard transition related config ( #5505 )
2018-07-26 22:30:29 -07:00
Ville Brofeldt
bd475879a4
Fix display limit in sql lab ( #5392 )
...
* Fix display limit in sql lab
* Add redundant variable from config.py
* Fix test config
* Change to SQL_MAX_ROW
* Remove last remaining occurence of DISPLAY_SQL_MAX_ROW
2018-07-16 11:58:21 -07:00
timifasubaa
bd24f854c9
specify hve namespace for tables ( #5268 )
2018-06-25 12:04:27 -07:00
Chris Williams
c065319508
[wip] dashboard builder v2 ( #4528 )
...
* [dashboard builder] Add dir structure for dashboard/v2, simplified Header, split pane, Draggable side panel
[grid] add <DashboardGrid />, <ResizableContainer />, and initial grid components.
[grid] gridComponents/ directory, add fixtures/ directory and test layout, add <Column />
[grid] working grid with gutters
[grid] design tweaks and polish, add <Tabs />
[header] add gradient header logo and favicon
[dnd] begin adding dnd functionality
[dnd] add util/isValidChild.js
[react-beautiful-dnd] iterate on dnd until blocked
[dnd] refactor to use react-dnd
[react-dnd] refactor to use composable <DashboardComponent /> structure
[dnd] factor out DashboardComponent, let components render dropInidcator and set draggableRef, add draggable tabs
[dnd] refactor to use redux, add DashboardComponent and DashboardGrid containers
[dragdroppable] rename horizontal/vertical => row/column
[builder] refactor into HoverMenu, add WithPopoverMenu
[builder] add editable header and disableDragDrop prop for Dragdroppable's
[builder] make tabs editable
[builder] add generic popover dropdown and header row style editability
[builder] add hover rowStyle dropdown, make row styles editable
[builder] add some new component icons, add popover with delete to charts
[builder] add preview icons, add popover menu to rows.
[builder] add IconButton and RowStyleDropdown
[resizable] use ResizableContainer instead of DimensionProvider, fix resize and delete bugs
[builder] fix bug with spacer
[builder] clean up, header.size => header.headerSize
[builder] support more drag/drop combinations by wrapping some components in rows upon drop. fix within list drop index. refactor some utils.
[builder][tabs] fix broken add tab button
[dashboard builder] don't pass dashboard layout to all dashboard components, improve drop indicator logic, fix delete component pure component bug
[dnd] refactor drop position logic
* fix rebase error, clean up css organization and use @less vars
* [dashboard-builder] add top-level tabs + undo-redo (#4626 )
* [top-level-tabs] initial working version of top-level tabs
* [top-level-tabs] simplify redux and disable ability to displace top-level tabs with other tabs
* [top-level-tabs] improve tab drag and drop css
* [undo-redo] add redux undo redo
* [dnd] clean up dropResult shape, add new component source id + type, use css for drop indicator instead of styles and fix tab indicators.
* [top-level-tabs] add 'Collapse tab content' to delete tabs button
* [dnd] add depth validation to drag and drop logic
* [dashboard-builder] add resize action, enforce minimum width of columns, column children inherit column size when necessary, meta.rowStyle => meta.background, add background to columns
* [dashboard-builder] make sure getChildWidth returns a number
* [dashboard builder] static layout + toasts (#4763 )
* [dashboard-builder] remove spacer component
* [dashboard-builder] better transparent indicator, better grid gutter logic, no dragging top-level tabs, headers are multiples of grid unit, fix row height granularity, update redux state key dashboard => dashboardLayout
* [dashboard-builder] don't blast column child dimensions on resize
* [dashboard-builder] ResizableContainer min size can't be smaller than size, fix row style, role=none on WithPopoverMenu container
* [edit mode] add edit mode to redux and propogate to all <DashboardComponent />s
* [toasts] add Toast component, ToastPresenter container and component, and toast redux actions + reducers
* [dashboard-builder] add info toast when dropResult overflows parent
* [dashboard builder] git mv to src/ post-rebase
* Dashboard builder rebased + linted (#4849 )
* define dashboard redux state
* update dashboard state reducer
* dashboard layout converter + grid render
* builder pane + slice adder
* Dashboard header + slice header controls
* fix linting
* 2nd code review comments
* [dashboard builder] improve perf (#4855 )
* address major perf + css issues
[dashboard builder] fix dashboard filters and some css
[dashboard builder] use VIZ_TYPES, move stricter .eslintrc to dashboard/, more css fixes
[builder] delete GridCell and GridLayout, remove some unused css. fix broken tabs.
* [builder] fix errors post-rebase
* [builder] add support for custom DragDroppable drag layer and add AddSliceDragPreview
* [AddSliceDragPreview] fix type check
* [dashboard builder] add prettier and update all files
* [dashboard builder] merge v2/ directory int dashboard/
* [dashboard builder] move component/*Container => containers/*
* add sticky tabs + sidepane, better tabs perf, better container hierarchy, better chart header (#4893 )
* dashboard header, slice header UI improvement
* add slider and sticky
* dashboard header, slice header UI improvement
* make builder pane floating
* [dashboard builder] add sticky top-level tabs, refactor for performant tabs
* [dashboard builder] visually distinct containers, icons for undo-redo, fix some isValidChild bugs
* [dashboard builder] better undo redo <> save changes state, notify upon reaching undo limit
* [dashboard builder] hook up edit + create component actions to saved-state pop.
* [dashboard builder] visual refinement, refactor Dashboard header content and updates into layout for undo-redo, refactor save dashboard modal to use toasts instead of notify.
* [dashboard builder] refactor chart name update logic to use layout for undo redo, save slice name changes on dashboard save
* add slider and sticky
* [dashboard builder] fix layout converter slice_id + chartId type casting, don't change grid size upon edit (perf)
* [dashboard builder] don't set version key in getInitialState
* [dashboard builder] make top level tabs addition/removal undoable, fix double sticky tabs + side panel.
* [dashboard builder] fix sticky tabs offset bug
* [dashboard builder] fix drag preview width, css polish, fix rebase issue
* [dashboard builder] fix side pane labels and hove z-index
* Markdown for dashboard (#4962 )
* fix dashboard server-side unit tests (#5009 )
* Dashboard save button (#4979 )
* save button
* fix slices list height
* save custom css
* merge save-dash changes from dashboard v1
https://github.com/apache/incubator-superset/pull/4900
https://github.com/apache/incubator-superset/pull/5051
* [dashboard v2] check for default_filters before json_loads-ing them (#5064 )
[dashboard v2] check for default_filters before json-loads-ing them
* [dashboard v2] fix bugs from rebase
* [dashboard v2] tests! (#5066 )
* [dashboard v2][tests] add tests for newComponentFactory, isValidChild, dropOverflowsParent, and dnd-reorder
* [dashboard v2][tests] add tests for componentIsResizable, findParentId, getChartIdsFromLayout, newEntitiesFromDrop, and getDropPosition
* [dashboard v2][tests] add mockStore, mockState, and tests for DragDroppable, DashboardBuilder, DashboardGrid, ToastPresenter, and Toast
* [dashboard builder][tests] separate files for state tree fixtures, add ChartHolder, Chart, Divider, Header, Row tests and WithDragDropContext helper
* [dashboard v2][tests] fix dragdrop context with util/getDragDropManager, add test for menu/* and resizable/*, and new components
* [dashboard v2][tests] fix and re-write Dashboard tests, add getFormDataWithExtraFilters_spec
* [dashboard v2][tests] add reducer tests, fix lint error
* [dashboard-v2][tests] add actions/dashboardLayout_spec
* [dashboard v2] fix some prop bugs, open side pane on edit, fix slice name bug
* [dashboard v2] fix slice name save bug
* [dashboard v2] fix lint errors
* [dashboard v2] fix filters bug and add test
* [dashboard v2] fix getFormDataWithExtraFilters_spec
* [dashboard v2] logging updates (#5087 )
* [dashboard v2] initial logging refactor
* [dashboard v2] clean up logger
* [logger] update explore with new log events, add refresh dashboard + refresh dashboard chart actions
* [logging] add logger_spec.js, fix reducers/dashboardState_spec + gridComponents/Chart_spec
* [dashboard v2][logging] refactor for bulk logging in python
* [logging] tweak python, fix and remove dup start_offset entries
* [dashboard v2][logging] add dashboard_first_load event
* [dashboard v2][logging] add slice_ids to dashboard pane load event
* [tests] fix npm test script
* Fix: update slices list when add/remove multiple slices (#5138 )
* [dashboard v2] add v1 switch (#5126 )
* [dashboard] copy all dashboard v1 into working v1 switch
* [dashboard] add functional v1 <> v2 switch with messaging
* [dashboard] add v2 logging to v1 dashboard, add read-v2-changes link, add client logging to track v1 <> v2 switches
* [dashboard] Remove default values for feedback url + v2 auto convert date
* [dashboard v2] fix misc UI/UX issues
* [dashboard v2] fix Markdown persistance issues and css, fix copy dash title, don't enforce shallow hovering with drop indicator
* [dashboard v2] improve non-shallow drop target UX, fix Markdown drop indicator, clarify slice adder filter/sort
* [dashboard v2] delete empty rows on drag or delete events that leave them without children, add test
* [dashboard v2] improve v1<>v2 switch modals, add convert to v2 badge in v1, fix unsaved changes issue in preview mode, don't auto convert column child widths for now
* [dashboard v2][dnd] add drop position cache to fix non-shallow drops
* [dashboard] fix test script with glob instead of recurse, fix tests, add temp fix for tab nesting, ignore v1 lint errors
* [dashboard] v2 badge style tweaks, add back v1 _set_dash_metadata for v1 editing
* [dashboard] fix python linting and tests
* [dashboard] lint tests
* add slice from explore view (#5141 )
* Fix dashboard position row data (#5131 )
* add slice_name to markdown
(cherry picked from commit 14b01f1)
* set min grid width be 1 column
* remove empty column
* check total columns count <= 12
* scan position data and fix rows
* fix dashboard url with default_filters
* [dashboard v2] better grid drop ux, fix tab bugs 🐛 (#5151 )
* [dashboard v2] add empty droptarget to dashboard grid for better ux and update test
* [dashboard] reset tab index upon top-level tab deletion, fix findparentid bug
* [dashboard] update v1<>v2 modal link for tracking
* Fix: Should pass slice_can_edit flag down (#5159 )
* [dash builder fix] combine markdown and slice name, slice picker height (#5165 )
* combine markdown code and markdown slice name
* allow dynamic height for slice picker cell
* add word break for long datasource name
* [fix] new dashboard state (#5213 )
* [dashboard v2] ui + ux fixes (#5208 )
* [dashboard v2] use <Loading /> throughout, small loading gif, improve row/column visual hierarchy, add cached data pop
* [dashboard v2] lots of polish
* [dashboard v2] remove markdown padding on edit, more opaque slice drag preview, unsavedChanges=true upon moving a component, fix initial load logging.
* [dashboard v2] gray loading.gif, sticky header, undo/redo keyboard shortcuts, fix move component saved changes update, v0 double scrollbar fix
* [dashboard v2] move UndoRedoKeylisteners into Header, render only in edit mode, show visual feedback for keyboard shortcut, hide hover menu in top-level tabs
* [dashboard v2] fix grid + sidepane height issues
* [dashboard v2] add auto-resize functionality, update tests. cache findParentId results.
* [dashboard v2][tests] add getDetailedComponentWidth_spec.js
* [dashboard v2] fix lint
* [fix] layout converter fix (#5218 )
* [fix] layout converter fix
* add changed_on into initial sliceEntity data
* add unit tests for SliceAdder component
* remove old fixtures file
* [dashboard v2] remove webpack-cli, fresh yarn.lock post-rebase
* [dashboard v2] lint javascript
* [dashboard v2] fix python tests
* [Fix] import/export dash in V2 (#5273 )
* [dashboard v2] add markdown tests (#5275 )
* [dashboard v2] add Markdown tests
* [dashboard v2][mocks] fix markdown mock
2018-06-25 09:17:22 -07:00
John Bodley
d533ce0967
[pylint] prepping for enabling pylint for non-errors ( #4884 )
2018-04-28 20:08:09 -07:00
Peter Lubell-Doughtie
c92b56e2f6
correct config language key to pt_BR ( #4854 )
2018-04-19 20:43:56 -07:00
Maxime Beauchemin
adda30bf66
Set longer CSRF token duration (one week) ( #4741 )
...
Default is one hour (3600), also this entry makes the setting a bit more
discoverable
http://flask-wtf.readthedocs.io/en/stable/config.html?highlight=csrf
2018-04-04 15:55:32 -07:00
John Bodley
b3442a7b53
[cli] Deprecating gunicorn/flower dependencies ( #4451 )
2018-03-30 09:28:16 -07:00
Beto Dealmeida
ec069676fd
Better default for MAPBOX_API_KEY ( #4660 )
2018-03-21 17:13:09 -07:00
Maxime Beauchemin
1e0bcba568
Allowing config flag to turn off flask-compress ( #4617 )
2018-03-15 17:17:04 -07:00