Commit Graph

160 Commits

Author SHA1 Message Date
Mahtis Michel
68e9b1b439 Request Body examples should respect media-type (#6739)
* fix: request body.jsx should rely on the getSampleSchema utility

* test: add test to ensure xml request body
2021-01-04 10:23:23 -08:00
Ilya Lipnitskiy
0807687f91 feat(auth): Add OIDC support (#3517) (#6549)
spec/actions.js: Add OIDC metadata fetching

components/auth/oauth2: Add OIDC URL to the Authorization popup
2020-12-09 10:11:33 -08:00
geraldglynn
1f10240a97 fix: duplicate labels in Servers UI (#6568) 2020-11-03 12:40:11 -08:00
Adam Stachowicz
8e3e059aa1 fix: add additional autoFocus for http-auth component (#6527)
* Addendum to commit 65ea764b, in PR #6483
2020-10-16 14:19:52 -07:00
Lucia Sarni
5065613130 fix(requestBody): hide read only properties (#6490) 2020-10-15 11:25:06 -07:00
Tim Lai
3905fadfbe fix(oas3): switching media types should update schema properties (#6518)
* When the media-type is changed, there is a new `onChangeMediaType` method to handle actions.
* If target schema properties key/value pairs does NOT equals current schema properties, clear the requestBodyValue, try-it-out request/response and validation params.
* If target schema properties key/value pairs DOES equals current schema properties, do not change or re-render schema properties
* oas3Selector `validateShallowRequired` now also validates required keys against target media-type

Fixes #6201, #6250, #6476
2020-10-14 16:24:07 -07:00
Mahtis Michel
f4bdf2f953 fix: multipart array sample generation for items (#6461)
* json schema array component should use schema to generate example in case of array items.
* empty value checkbox should be disabled if not empty => not empty list || not empty string
* curl should also check for not empty list
2020-10-07 16:59:29 -07:00
Adrien Becchis
b5e8081115 fix(syntax-highlighter): configuration for Examples (#6455)
* Complement #5259, getConfigs was not correctly forwarded to Examples. As a result, syntax highlight could not be disabled be disabled or configured in that elements
2020-10-02 14:44:46 -07:00
ben-smartbear
6ad418d0ab fix: Updating select to pass in a better prop; updating test to do a better check (#6385)
fixes #6372
2020-09-10 11:06:46 -07:00
geraldglynn
0199b4785f fix: Add entrySeq() to bodyProperties.map() (#6267)
* Added immutable guard to  bodyProperties
2020-09-09 18:46:24 -07:00
ben-smartbear
5123b47ef4 fix: Allowing servers dropdown to change when oas3Actions.setSelectedServer is called (#6358)
ref: #6351
2020-09-08 15:37:48 -07:00
Tim Lai
2eaa6c10e4 feat(build): es2015 bundle artifact (#6291)
* es2015 bundle with dependencies via npm script build:es:bundle
* es2015 bundle without dependencies via npm script build:es:bundle
* jest dependency for test:artifact
* migrate babel.config.json to babel.config.js and maintain env support for commonjs and es2015
* remove polyfill
* fix es syntax: replace module.exports with export
* fix es syntax: remove .jsx extension inside import
2020-08-13 17:21:55 -07:00
Tim Lai
22668ee8d3 fix(OAS3): servers component update on definition change (#6280)
* fix(OAS3): servers component should use nextProps

* test(OAS3): cypress tests for selecting multiple servers

* test(OAS3): multiple server test with definition change
2020-07-31 16:22:17 -07:00
Tim Lai
2fd1e4037c feat(RequestBody): validation support for required fields (#6223)
fixes #5181

* application/json
* application/xml
* application/x-www-form-urlencoded

* Set requestBodyValue values to be an immutable Map, as "value". Previously stored as a normal String.
* This enables adding "errors" to the Map, for validation use

* note: getOAS3RequiredRequestBodyContentType requires state.spec,
* which is not available to state.oas3
2020-07-16 17:53:28 -07:00
Tim Lai
b68942c043 feat(RequestBody): set default true for 'send empty value' (#6228) 2020-07-16 17:01:18 -07:00
Tim Lai
eacc7b92d1 Revert "revert: feat: Allow to skip submitting empty values in form data (#5830)" (#6227)
This reverts commit 1b6cb7d1bf.
2020-07-15 16:07:32 -07:00
Vladimir Gorej
1b6cb7d1bf revert: feat: Allow to skip submitting empty values in form data (#5830)
This reverts commit b9b32c9c93.

Refs #6203 #5830
2020-07-07 16:17:36 +02:00
geraldglynn
e1e4d5bf83 fix: render Common Extensions propertly in React 16 (#5930)
Avoid mapping Immutable.Map as React children.

Co-authored-by: Vladimir Gorej <vladimir.gorej@gmail.com>

Ref https://github.com/immutable-js/immutable-js/issues/667
2020-06-22 18:08:03 +02:00
geraldglynn
93020e2803 fix: avoid mapping Immutable.Map as React children (#6165)
Ref https://github.com/immutable-js/immutable-js/issues/667
2020-06-22 17:57:00 +02:00
blacktemplar
f8dd4e68ec feat(model view): hide applicable readOnly and writeOnly properties (#5832) 2020-06-15 13:47:26 -07:00
Vladimir Gorej
a616cb471d fix(Markdown): render markdown in more secure way
This commit changes markdown sanitization behaviour in following way:

class, style and data-* attributes are removed by default. These attributes
open possible vulnerability vectors to attackers.

The original behavior of sanitizer (before this commit) can be enabled by *useUnsafeMarkdown* configuration option.
Use this configuration option with caution and only in cases when you know
what you're doing.
2020-06-11 21:51:15 +02:00
tomdegoede
fc3ed30f3d improvement: Move inline styles to SCSS instead (#5578)
* fix: convert propStyle to propClass
2020-06-10 16:39:48 -07:00
Tim Lai
7a1b627d0b housekeeping: remarkable (#6073)
Refs: #6050
2020-06-03 15:04:00 -07:00
abcang
b9b32c9c93 feat: Allow to skip submitting empty values in form data (#5830) 2020-05-29 15:46:08 -07:00
Tim Lai
5eb23cdd48 ft: JsonSchema components are now ImmutableJS compliant (#5952)
bug: JsonSchema components should validate schema properties exists
  - schema
  - type
  - format
  - enum
bug: fix a debounce error in JsonSchema_string if value is null
ft: new simplified JsonSchemaArrayItemText component
test: use immutableJS for `json-schema-form` test
test: add dev scripts to run `cypress open`
test: new cypress `schema-form` tests
2020-05-06 13:57:58 -07:00
Simran
95e72e7c70 improvement: do not require basic password in UI (#5812)
* Fix basic-auth.jsx: do not require password in UI

password is not PropTypes.string.isRequired, but the markup wrongly makes it mandatory

* Do not require password input in http-auth.jsx

This is used by the Authorize modal. Not sure when the similar code from basic-auth.jsx is used.

Co-authored-by: kyle shockey <kyle.shockey1@gmail.com>
2020-03-22 19:53:04 -04:00
Tim Lai
10b08af5ec Fix: #5669 online validator badge (#5909)
* fix: enable online validator badge

since online validator badge now can handle OAS3 specs
2020-03-11 09:59:00 -07:00
thierrydallacroce
0b3489b52d fix: remove .col class that causes collision with Bootstrap (via #5541)
* improvement: address Bootstrap conflict by removing our .col class (#4574)

* use `.parameters-col_description` selector in Cypress tests
2019-08-20 19:51:45 -07:00
kyle
e895fb544f fix: use null as a notSetValue for examplesForMediaType (via #5503)
* fix: use null as a notSetValue for examplesForMediaType

fixes #5455

* tests!
2019-07-29 21:44:14 -05:00
kyle
9935ea3328 housekeeping: upgrade to babel@7 (via #5450)
* Babel 7

* preserve module output; straighten out ES/CJS syntax

* add webpack TODOs

* remove unused Babel modules

* Update index.js

* install @babel/register
2019-07-09 23:25:34 -05:00
kyle
23d7260f92 feat: Multiple Examples for OpenAPI 3 Parameters, Request Bodies, and Responses (via #5427)
* add opt-in Prettier config

* remove legacy `examples` implementation

* create ExamplesSelect

* support `Response.examples` in OpenAPI 3

* create response controls group

* prettier reformat

* prepare to break up Parameters

* reunify Parameters and OAS3 Parameters

* Parameter Examples

* Example component

* handle parameter value stringification correctly

* FOR REVIEW: add prop for controlling Select

* use regular header for param examples in Try-It-Out

* manage active examples member via Redux

* Request Body Try-It-Out examples

* remove special Response description styling

* omit Example value display in Try-It-Out

* support disabled text inputs in JsonSchemaForm

* Example.omitValue => Example.showValue

* ExamplesSelectValueRetainer

* styling for disabled inputs

* remove console.log

* support "Modified Values" in ExamplesSelect

* remove Examples component
(wasn't used anywhere)

* use ParameterRow.getParamKey for active examples member keying

* split-rendering of examples in ParameterRow

* send disabled prop to JsonSchemaForm

* use content type to key request body active examples members

* remove debugger

* rewire RequestBodyEditor to be a controlled component

REVIEW: does this have perf implications?

* trigger synthetic onSelect events in ExamplesSelect

* prettier updates

* remove outdated Examples usage in RequestBody

* don't handle examples changes in ESVR

* make RequestBodyEditor semi-controlled

* don't default to an empty Map for request bodies

* add namespaceKey to ESVR for state mgmt

* don't key RequestBody activeExampleKeys on media type

* tweak ESVR isModifiedValueSelected calculation

* add trace class to ExamplesSelect

* remove usage of ESVR.currentNamespace

* reset to first example if currentExampleKey is invalid

* add default values to RequestBody rendering

* stringify things in ESVR

* avoid null select value (silences React warning)

* detect user inputs that match any examples member's value

* add trace class for json-schema-array

* shallowly convert namespace state, to preserve Immutable stucts in state

* stringify RBE values; don't trim JSON in editor

* match user input to an example when non-primitives are expressed in state as strings

* update Cypress

* don't apply sample values in JsonSchema_Object

* support disabling all JsonSchemaForm subcomponents

* Core tests

* style changes to accomodate Examples

* fix version-checking error in Response

* disable SCU for Responses

* don't stringify Select values

* ModelExample: default to Model tab if no example is available; provide a default no example message

* don't trim JSON ParamBody inputs

* read directly from 2.0 Response.schema instead of inferring a value

* show current Example information in RequestBody

* show label for Examples dropdown by default

* rework Response content ordering

* style disabled textareas like other read-only blocks

* meta: fix sourcemaps

* refactor ESVR setNameForNamespace

* protect second half of ternary expession

* cypress: `select.examples-select` => `.examples-select > select`

* clarify ModelExample.componentWillReceiveProps

* add gates/defaults to prevent issues in very bare-boned documents

* fix test block organization problem

* simplify RequestBodyEditor interface

* linter fixes

* prettier updates

* use plugin system for new components

* move ME Cypress helpers to other file
2019-06-29 19:52:51 +01:00
kyle
1dd87ce26e fix: refuse to render non-string Markdown field values (via #5295) 2019-04-10 16:04:33 -07:00
Brian Johnson
65e8abde55 improvement: support GFM table syntax in OpenAPI 3.0 (via #5224) 2019-03-14 17:58:02 -07:00
kyle
e95588bd1f improvement: gracefully render malformed and empty requestBodies (via #5208) 2019-02-28 19:54:21 -08:00
kyle
373da3bee3 fix: provide JSON editor for x-www-form-urlencoded bodies lacking properties (via #5180) 2019-02-13 18:47:01 -06:00
kyle
d3c2e2777f fix: coerce multipart initial property values to string (via #5166)
* coerce multipart initial property values to string

* add tests
2019-02-07 15:35:22 -06:00
kyle
315819b2c9 fix: non-typesafe spec selector (via #5121)
* add failing tests

* fix things
2019-01-12 00:58:20 -06:00
Nurbol Makashov
e90fe9cfd7 improvement: show description fields in form-data request bodies (via #5073) 2019-01-10 16:23:40 -06:00
Jun Kuriyama
45e7f44ee3 improvement: render request body description as Markdown (via #5078) 2019-01-10 16:06:40 -06:00
dersvenhesse
8bdf2933d5 improve: showing showing server description in dropdown (via #5015)
* Showing server description in dropdown

* Slight syntax improvements

* use template strings and ` - `
2018-11-26 23:18:57 +01:00
Steven Aerts
0fd35603e6 fix: resolve referenced securitySchemes (via #5028) 2018-11-16 00:21:01 +01:00
kyle
ad786b023f housekeeping: .js -> .jsx file extensions (via #5014)
* housekeeping: `.js` -> `.jsx` where necessary
2018-11-08 16:37:21 +00:00
kyle
004f107ec4 fix: repair schemes servers rendering (via #4913)
* create AuthorizeBtnContainer

* remove Servers and AuthorizeBtn from Schemes' concern

* add AuthorizeBtnContainer to base

* strengthen OAS3 definitionsToAuthorize

* drop obsolete tests

* linter fixes
2018-10-01 20:27:52 -05:00
kyle
c5c4e08368 improve: nest Servers within Schemes container (via #4911)
* improve: nest Servers within Schemes container

* linter fixes
2018-09-28 20:33:06 -05:00
kyle
1690b319af improve: multipart + formencoded rendering (via #4910) 2018-09-28 19:26:47 -05:00
kyle
54276c95e2 fix: gracefully handle empty request bodies (via #4859) 2018-09-07 16:18:13 -07:00
kyle
708a96dcab improvement: urlencoded Request Body rendering (via #4823)
* use request body schema `required` for marking required urlencoded properties

* don't use sample schema value as a fallback

* modify property layout to mimic regular parameters

* clean up

* use default or example for iniital values
2018-08-17 18:00:06 -07:00
kyle
87296702c6 feature: allowEmptyValue controls (#4788)
* add baseline tests

* coerce empty strings to null when updating parameter values

* add ParameterIncludeEmpty

* add redux management for empty parameter value inclusion state

* use name+in keying for state management instead of hash keying

* update new redux method usages to name+in keying

* coerce empty Immutable iterables in onChangeWrapper

* OAS3 tests & support

* add included empty parameters to requests before dispatching to Swagger Client

* make empty inclusion interface prettier

* add tests for #4587

* linter fixes

* check for truthy value before reaching into property
2018-08-04 01:26:07 -07:00
kyle
dd3afdc456 fix: anchor tag safety (via #4789)
* v3.17.6

* release(3.17.6): rebuild dist

* add failing tests

* fix Link component

* fix OnlineValidatorBadge component

* switch from <a> to <Link> in operation components

* make Markdown inputs safe

* use Link component in Info block, for target safety

* add eslint rule for unsafe `target` usage
2018-08-04 00:54:03 -07:00
kyle
0359f9c364 housekeeping: bundle size reductions (#4713)
* set new bundlesize goal
* preserve `GeneratorFunction` instead of all function names
* use js-yaml fork that doesn't require esprima
* set HTML content directly, instead of using React-Markdown
* use remarkable for all Markdown rendering
* add babel-plugin-transform-react-remove-prop-types
* remove SplitPaneMode plugin
* remove react-collapse
* remove AST plugin, and yaml-js
* trim Markdown HTML string output before rendering
* disable obsolete function name preservation
* add `getComponent` to propTypes
2018-07-19 13:48:39 -07:00