Giter Club home page Giter Club logo

apiman-developer-portal's Introduction

Verify Build Workflow

Apiman Developer Portal

This repository has been merged into the Apiman monorepo, please go to: https://github.com/apiman/apiman/tree/master/portal/ui

A developer portal for Apiman! Allow developers to access your APIs. Developers can view and test your APIs to develop their own apps.

Landing Click here to see more pictures

Local Development

Starting the dev mode

  • Create a copy of the src/assets/config.json5 called src/assets/local-config.json5
  • Adapt the endpoint and auth.url to match you apiman and keycloak setup
  • Execute npm install && npm run start or use our provided run configuration (Jetbrains IntelliJ/WebStorm)

Linux / Windows

cp src/assets/config.json5 src/assets/local-config.json5
npm install
npm run start

Building the docker image yourself

docker build -t apiman/developer-portal:latest .

Cypress E2E Tests

Prerequirements

  • Create the necessary users (find the credentials in cypress.config.ts) in your IDM with the following roles and locales:

    • cypress.admin - apiadmin - EN
    • cypress.user - apiuser - EN
    • cypress.user2 - devportaluser - EN
  • Login with the users in following applications:

    • cypress.admin - API Management
    • cypress.user - API Management
    • cypress.user2 - API Developer Portal
  • Adjust the following settings in cypress.json if needed:

    • baseUrl -> this url should point to your running 'API Developer Portal'-App
    • env.apiman_endpoint -> this url should be the API Management REST API

Run the tests

  • To open cypress and run the test manually in the Cypress Test Runner npm run cy:open or use our provided run configuration (Jetbrains IntelliJ/WebStorm)
  • To run all tests automatically npm run cy:run or use our provided run configuration (Jetbrains IntelliJ/WebStorm)

Screenshots

Detail MY Clients 1 My Client 2

Looking for support?

Scheer PAS is the platform for flexible end-to-end support of individual processes. It stands for digitization and automation, regardless of how many people, systems or companies need to be integrated.

Scheer PAS API Management is based on Apiman and offers you also enterprise support.
You may visit Scheer PAS documentation for further details.

apiman-developer-portal's People

Contributors

bastiangem avatar bekihm avatar dependabot[bot] avatar ericwittmann avatar kgebert avatar msavy avatar renovate-bot avatar renovate[bot] avatar volkflo avatar weathered-fire-2600 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

apiman-developer-portal's Issues

Permission check on my apps page doesnt work

The button to delete a client including all contracts should only be visible if you have the permission 'clientAdmin'.

Currently, only the role 'clientAdmin' is checked, but it is not checked if this role exists in the corresponding organization.

Acceptance criteria:

  • Role check must be organization dependent
  • Role check must be performed for each client individually

Reload of API Documentation does not work (Developer Portal v1)

This bug only affects the Developer Portal version 1

Loading the Swagger file via the 'Try API' button works fine.
But as soon as you trigger a browser reload (e.g. F5) you get a 404 error, because the swagger file cannot be loaded.
To get the Swagger file again you have to use the Try Api button from the API list.

Maybe this bug will not be fixed anymore, depending on when version 1 will be completely replaced.

CORS- error in DevPortal

I have setup the APIMan and DevPortal in a VM and exposed the ports so that I can access them from my browser using vm-IP:Port.
I have published an API publicly but I am unable to see the API in DevPortal. After logging the DevPortal I get the following CORS error.

image

I am attaching container logs for better understanding. Any leads would be helpful. Thanks :)

containerLogs.txt

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update angular-cli monorepo to v13.3.11 (@angular-devkit/build-angular, @angular/cli)
  • chore(deps): update dependency @types/d3-scale to v4.0.3
  • chore(deps): update dependency @types/d3-selection to v3.0.5
  • fix(deps): update dependency @swimlane/ngx-charts to v20.1.2
  • fix(deps): update dependency io.apiman:apiman-portal to v3.1.0.rc2
  • fix(deps): update dependency json5 to v2.2.3
  • fix(deps): update dependency luxon to v2.5.2
  • chore(deps): update dependency cypress to v10.11.0
  • chore(deps): update dependency eslint to v8.36.0
  • chore(deps): update dependency eslint-config-prettier to v8.7.0
  • chore(deps): update dependency jasmine-core to v4.6.0
  • chore(deps): update dependency prettier to v2.8.4
  • chore(deps): update dependency stylelint to v14.16.1
  • chore(deps): update node.js to v16.19.1 (node, @types/node)
  • chore(deps): update typescript-eslint monorepo to v5.55.0 (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • fix(deps): update dependency rxjs to v7.8.0
  • fix(deps): update dependency tslib to v2.5.0
  • chore(deps): update angular-cli monorepo to v15 (major) (@angular-devkit/build-angular, @angular/cli)
  • chore(deps): update dependency @types/node to v18
  • chore(deps): update dependency cypress to v12
  • chore(deps): update dependency stylelint to v15
  • chore(deps): update dependency stylelint-config-standard-scss to v7
  • chore(deps): update dependency typescript to v5
  • chore(deps): update node.js to v19
  • fix(deps): update angular monorepo to v15 (major) (@angular/animations, @angular/common, @angular/compiler, @angular/compiler-cli, @angular/core, @angular/forms, @angular/platform-browser, @angular/platform-browser-dynamic, @angular/router)
  • fix(deps): update angularmaterial monorepo to v15 (major) (@angular/cdk, @angular/material)
  • fix(deps): update dependency keycloak-angular to v13
  • fix(deps): update dependency keycloak-js to v21
  • fix(deps): update dependency luxon to v3 (luxon, @types/luxon)
  • fix(deps): update dependency ngx-markdown to v15
  • fix(deps): update dependency simplebar to v6
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

dockerfile
Dockerfile
  • node 16.17.1
  • nginx 1.23.1-alpine
github-actions
.github/workflows/verify.yml
  • actions/checkout v3
  • actions/setup-node v2-beta
  • actions/checkout v3
  • actions/setup-node v2-beta
maven
pom.xml
  • io.apiman:apiman-portal 3.1.0-SNAPSHOT
npm
package.json
  • @angular/animations 13.3.11
  • @angular/cdk 13.3.9
  • @angular/common 13.3.11
  • @angular/compiler 13.3.11
  • @angular/core 13.3.11
  • @angular/forms 13.3.11
  • @angular/material 13.3.9
  • @angular/platform-browser 13.3.11
  • @angular/platform-browser-dynamic 13.3.11
  • @angular/router 13.3.11
  • @ngx-translate/core 14.0.0
  • @ngx-translate/http-loader 7.0.0
  • @swimlane/ngx-charts 20.1.0
  • @types/prismjs ^1.26.0
  • json5 2.2.1
  • keycloak-angular 9.3.2
  • keycloak-js 16.1.1
  • luxon 2.5.0
  • material-icons 1.12.0
  • ngx-markdown 13.1.0
  • prismjs 1.29.0
  • rxjs 7.5.7
  • simplebar 5.3.9
  • swagger-ui 4.12.0
  • tslib 2.4.0
  • zone.js 0.11.8
  • @angular-devkit/build-angular 13.3.10
  • @angular-eslint/builder 13.5.0
  • @angular-eslint/eslint-plugin 13.5.0
  • @angular-eslint/eslint-plugin-template 13.5.0
  • @angular-eslint/schematics 13.5.0
  • @angular-eslint/template-parser 13.5.0
  • @angular/cli 13.3.10
  • @angular/compiler-cli 13.3.11
  • @types/d3-scale 4.0.2
  • @types/d3-selection 3.0.3
  • @types/jasmine 4.3.1
  • @types/luxon 2.4.0
  • @types/node 16.11.62
  • @types/swagger-ui 3.52.0
  • @typescript-eslint/eslint-plugin 5.47.0
  • @typescript-eslint/parser 5.47.0
  • cypress 10.9.0
  • cypress-real-events 1.7.1
  • eslint 8.24.0
  • eslint-config-prettier 8.5.0
  • eslint-plugin-prettier 4.2.1
  • husky 8.0.1
  • jasmine-core 4.4.0
  • karma 6.4.1
  • karma-chrome-launcher 3.1.1
  • karma-coverage 2.2.0
  • karma-jasmine 5.1.0
  • karma-jasmine-html-reporter 1.7.0
  • prettier 2.7.1
  • stylelint 14.13.0
  • stylelint-config-standard-scss 3.0.0
  • typescript 4.6.4

  • Check this box to trigger a request for Renovate to run again on this repository

API Try-Out-Page

An API try-out page should be implemented.
In the first step it will be Swagger UI, as soon as some time is left it should be made configurable so that other solutions like ReDoc can be integrated.

Add lazyloading

We should take a look at the devportal and decide which components should be lazy loaded (e.g. Swagger)

wrong redirect after login

The redirect after login by clicking 'Sign Up' on an API details page does not work.

In this context all redirects after login should be checked again.

Acceptance criteria:

  • The redirect after successful login should always lead to the corresponding page.

Get locale from token and browser settings

Current

We read the default language from the config which is applied then.

Idea

Read the language from browser and token and then fallback to default config.

Acceptance

The language should be fetched from the browser settings or the token.
If one of that fails we should fallback to the default from the config file if the language is not available.

Use `npm ci` for builds

We should change npm install to npm ci to build reproducible artifacts and docker images.

Make API Try-Out-Page configurable

Fixed link to SwaggerUI must be removed.
Instead, the try-out page should be configurable in order to be able to integrate other solutions, e.g. ReDoc or RapiDoc

Delete a client

Currently, there is no way to delete a client.
We have to think about that after a user disables all of his APIs or if he wants to rename a shared organization.

Devportal making request to api manager returns 404 HTTP Status

Description

I have installed and working apiman manager 2.0.0.Final and apiman-gateway vert.x 2.0.0.Final. After login successfully to the the apiman developer portal, it shows the next toast notification:
image

Investigation

It makes a call to the apiman manager in the endpoint /apiman/developers which does not exist. Currently my apiman manager serves under /apimanui/api-manager. I did not see in the docs more information about this I don't know if it's a bug or not.
Thanks in advance

Notifications

The Developer Portal should show some notification.
There could be notifications for:

  • your API subscription is awaiting approval
  • your API subscription is approved
  • your API subscription was rejected
  • someone invited you into an shared organization

Discussion about a complete page, an bell icon or the place to put this is still open.

Manage single APIs

Current

You can delete/unsubscribe from an API only if the whole client(application) is deleted.

Expected

You can unsubscribe from a single API without deleting the whole client(application).

Dynamic Hero Component

In reference to the loaded core component the hero must appear in different shapes (change height and text)

Signup wizard: Step 1 clients table missing central divider lines

image

Problem description

It's somewhat unclear what is going on as the TH elements are merged together.

Acceptance criteria

  • Organization and Client columns should be clearly separated
  • Should hint to user that they should click table element to populate search/create box (HTML hover highlight + mouse hint + perhaps slight change of text)

Issues while setting up the APIMAN-DevPortal

Hi I am trying to setup APIMan developer portal. I have built the docker image and tried running that image
I am getting the following error in my console.
image

Any leads will be helpful.

Clients with clientView permission are not shown

At the moment only clients with the org permission clientEdit are shown.

Acceptance

Clients from organizations with the permission clientEdit and clientView have to show on the my application page.

If there are no featured APIs, just show a selection

Problem description

  • Publish APIs to developer portal, but don't explicitly feature anything.
  • Home/featured page is blank

Proposal

  • When >0 featured APIs: show featured APIs only
  • When 0 featured APIs: show first N APIs (let's say 5 or 10?)

Acceptance Criteria

  • Home page should never be blank if there are some APIs with appropriate discoverability level
  • When >0 featured APIs: show featured APIs only
  • When 0 featured APIs: show first N APIs (let's say 5 or 10?)

Environment Variables

@bekihm Was there a reason why you used the environment variables via injection instead of the environment import?
With the second way, there is no need to set the variables via the constructor. I tested this and the variable substitution still works.

image

Filter for Your APIs

I have a feature request.

We have a convention that related APIs have the same prefix and would like to open the Your APIs with a filter to only display the relevant APIs.
In my case something like ".../devportal/?filter=Trebeg / testTable-*" (values are not URL encoded).

grafik

Provide application with an Angular APP_INITIALIZER (+ i18n as a first configuration feature)

Since we need to import configuration data which defines many different things such as the language, style, images, or texts we must provide the application with an APP_INITIALIZER. These initializers are the best practice to preload data before the application may render its contents. The initializer should be easily extendable. In the first iteration it will prepare the i18n handling via config-file.

Refactor Plan/Policy-Requests to avoid unnecessary requests

The new developer portal endpoints for plans and policies provide all necessary information with one request.
However, the Developer Portal does not use all the data and makes several unnecessary requests to retrieve the data again.

It should be adjusted so that only the necessary requests are made and all available data is used.

Add API Status indicator

We should display the current status of an API version.
For this we could use different icons in different colors with a corresponding label.
Example:
Green tick with label of ' Live '.

The status should be displayed on the API card (home and marketplace) according to the latest version and on the API details the status for each version should be in the accordion header.

Define a MaterialModule to slim the main module file

Currently our main module imports these:
[...] MatButtonModule, MatCardModule, MatGridListModule, MatStepperModule, MatExpansionModule, MatIconModule, MatListModule [...]

We should define a seperate MaterialModule which imports Material dependencies. After, we can import this MaterialModule from our Main Module

Benefit:
Slimmed Main Module -> Improves clarity

Create view to create applications

We need a view to create applications and also a way to select the application during the API sign-up process.
This is currently missing in the MVP.

Select i18n mechanism

Choose which i18n mechanism we'll use for portal v2 (e.g. inbuilt/recommended mechanism or some external library). Whatever is best practice.

API Definition (remove head requests)

Because of the old import/export problem we did not have a swagger definition in all cases.
This is fixed since the latest version.
So we can remove the head requests and check directly on the property in the api version.

Acceptance

  • Remove head requests from api defintion calls

Show policies that are relevant for the Devloper Portal user

At the moment the Developer Portal is limited what policies can be displayed.
Currently we can only display the Rate Limiting and Transfer Quota Policy.

We should introduce a small concept which policies are relevant and decide what policy information should be displayed.

Add 404 and/or error page

If something goes terribly wrong we should redirect the user to an error page.

Acceptance

  • 404 page if they enter some really strange url we can recover from or redirect to home in all cases
  • error page with contact information for help

Refactor API-Version selection

In the wireframes, API version selection is part of the API sign-up process.
For the API try-out pages to work, the API version selection must already be possible on the API details page.
Accordingly, a new selection during the sign up is no longer necessary and can be removed there.

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.