Giter Site home page Giter Site logo

specmore / spectacular Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 7.65 MB

The opensource project behind the Spectacular tool for maintaining interface specifications

License: MIT License

HTML 0.05% JavaScript 14.74% Java 40.89% Groovy 29.34% Shell 0.31% TypeScript 13.09% Batchfile 0.14% Less 1.11% PowerShell 0.33%
api api-first architecture interface-design openapi

spectacular's People

Contributors

dependabot[bot] avatar pburls avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

spectacular's Issues

Ability to hide all previous version in spec evolutions

Repositories with automated tagging on builds may cause a long list of old versions to show in the spec evolution view on the interface details page.
It might be good to be able to hide/collapse this bottom part of the spec evolution. Potentially having it collapsed by default.

Change login workflow to first show a login selection page

Currently the login workflow uses GitHub Login by default. Therefore after logging out the user will just get logged straight back in again.

We need to reintroduced a login selection screen even though the only option will be to login using GitHub.

Pull Request data is cached indefinitely

The PullRequestRepository component needs to be changed to have a lifetime of just the request scope to allow the cache to be isolated to just each individual request. Currently it is living as a singleton for the full lifetime of the application.

refresh UI

It's time to clean up the UI!

Things to do:

  • Add logo
  • Add favicon
  • Add color palette
  • Add custom semantic ui theme files

Ability to see previous versions of the specification for an interface

As of v0.1.1 of Spectacular, for a given interface, it is currently only possible to view the "Latest agreed version" of the interface's specification and any number of versions with "Proposed Changes" currently open against it.

As seen in the screen shot below, it would be good to show a list of previous versions of the interface specification.
image

The previous versions could be determined by identifying git tags that were created for each previous version of the specification file.

Limit GitHub SSO scope to just verify user identity

Currently when logging in using GitHub SSO into the Spectacular app, the following permissions are requested by Spectacular:

  • Verify your GitHub identity
  • Know which resources you can access
  • Act on your behalf

The only permission really needed is the "Verify your GitHub identity" permission to allow Spectacular to function.
The SSO OAuth scope should be reduced to at least not request access to act on behalf of the user..

image

Using relative paths in $ref definition

Sales & Service have a set of API Specs for the BT Ocean API defined in this repository -> https://github.com/sky-uk/ott-sas-partner-gateway/tree/master in folder proposed-apis. We have integrated these with spectacular, see spectacular-config.yml

link to API in spectacular -> https://spectacular.dev.cosmic.sky/catalogue/c2t5LXVrL290dC1zYXMtcGFydG5lci1nYXRld2F5L3NwZWN0YWN1bGFyLWNvbmZpZy55bWwvc2Fz/interface/account?ref=master

I have noticed that the rendering of the API failed for definitions using the $ref annotation and a relative path - such as proposed-apis/account.yaml#L62-L67 see attached screenshot.
Screenshot 2022-01-14 at 12 54 01
Screenshot 2022-01-14 at 12 53 46

Spec files larger than 1MB can't be retrieved from GitHub

Spec files larger than 1MB (like this one) can't be retrieve using the existing approach of using the GitHub Repository Contents API.
The following error message is returned:

org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden: [{"message":"This API returns blobs up to 1 MB in size. The requested blob is too large to fetch via the API, but you can use the Git Data API to request blobs up to 100 MB in size.","errors":[{"resource":"Blob","field":"data","code":"too_large"}],"documentation_url":"https://docs.github.com/rest/reference/repos#get-repository-content"}]

It is likely that the GitHub Blob API needs to be used instead.

User menu item isn't shown when connecting via https

The user menu item on the right side of the menu bar doesn't show when loading the demo site. https://spectacular-demo.specmore.org/

Version Details:
Version - 0.1.0+546
SHA - c4baab1

Browser Console Output

main.a041a35a705d29259c91.js:176 VERSION: 0.1.0+546
main.a041a35a705d29259c91.js:176 SHA: c4baab1
spectacular-demo.specmore.org/:1 Mixed Content: The page at 'https://spectacular-demo.specmore.org/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://spectacular-demo.specmore.org/login/'. This request has been blocked; the content must be served over HTTPS.
main.a041a35a705d29259c91.js:176 TypeError: Cannot read property 'status' of undefined
    at main.a041a35a705d29259c91.js:176
    at /async https:/spectacular-demo.specmore.org/main.a041a35a705d29259c91.js:176
    at async a (main.a041a35a705d29259c91.js:176)
a @ main.a041a35a705d29259c91.js:176
async function (async)
a @ main.a041a35a705d29259c91.js:176
(anonymous) @ main.a041a35a705d29259c91.js:176
_s @ main.a041a35a705d29259c91.js:60
Fu @ main.a041a35a705d29259c91.js:60
t.unstable_runWithPriority @ main.a041a35a705d29259c91.js:68
Ko @ main.a041a35a705d29259c91.js:60
Iu @ main.a041a35a705d29259c91.js:60
(anonymous) @ main.a041a35a705d29259c91.js:60
R @ main.a041a35a705d29259c91.js:68
k.port1.onmessage @ main.a041a35a705d29259c91.js:68

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.