Giter VIP home page Giter VIP logo

basyx-applications's People

Contributors

aaronzi avatar dependabot[bot] avatar fischerrene avatar frankschnicke avatar ipamaas avatar mconradi-iese avatar mdanish98 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

basyx-applications's Issues

build errors in both backend projects

Hi,
I face several build errors after just cloning the main branch and doing a nuget restore.
Though all packages and dependencies loaded successfully, there remain several errors.
Any idea how to fix this?
Any help appreciated.
image

Unable to open .aasx file which is created by using SAMM CLI

Hi,
I created Aspect Model and I converted it into Asset Administration Shell using SAMM CLI. Now if I am trying to open it using AASX Package Explorer it is showing an error.

Loading aasx file repository ..........\Sample_AAS\aasxrepo-new.json ..
File not found when loading aasx file repository ..........\Sample_AAS\aasxrepo-new.json
Application started ..
[AasxPluginAdvancedTextEditor] ListActions() called
[AasxPluginAdvancedTextEditor] InitPlugin() called with args =
[AasxPluginBomStructure] ListActions() called
[AasxPluginBomStructure] InitPlugin() called with args =
[AasxPluginDocumentShelf] InitPlugin() called with args =
[AasxPluginExportTable] ListActions() called
[AasxPluginExportTable] InitPlugin() called with args =
[AasxPluginGenericForms] ListActions() called
[AasxPluginGenericForms] InitPlugin() called with args =
[AasxPluginImageMap] ListActions() called
[AasxPluginImageMap] InitPlugin() called with args =
[AasxPluginMtpViewer] GetPluginName() = MtpViewer
[AasxPluginMtpViewer] ListActions() called
[AasxPluginMtpViewer] InitPlugin() called with args =
[AasxPluginMtpViewer] GetPluginName() = MtpViewer
[AasxPluginPlotting] ListActions() called
[AasxPluginPlotting] InitPlugin() called with args =
[AasxPluginSmdExporter] ListActions() called
[AasxPluginSmdExporter] InitPlugin() called with args =
[AasxPluginTechnicalData] ListActions() called
[AasxPluginTechnicalData] InitPlugin() called with args =
[AasxPluginOpcUaClient] ListActions() called
[AasxPluginUaNetServer] GetPluginName() = Net46AasxServerPlugin
[AasxPluginUaNetServer] ListActions() called
[AasxPluginUaNetServer] InitPlugin() called with args =
[AasxPluginUaNetServer] GetPluginName() = Net46AasxServerPlugin
[AasxPluginWebBrowser] ListActions() called
[AasxPluginWebBrowser] InitPlugin() called with args =
Loading new AASX from: C:\Users\punit\Downloads\MeasurementUnit.aasx as auxiliary False ..
Error: Unhandled exception in AasxPackageExplorer v1.0.0.0: PackageCentral: while performing load from C:\Users\punit\Downloads\MeasurementUnit.aasx at \PackageCentral.cs:line 95 gave: One or more errors occurred. PackageCentral: while performing load from C:\Users\punit\Downloads\MeasurementUnit.aasx at \PackageCentral.cs:line 95 gave: One or more errors occurred.
InnerException: One or more errors occurred.
InnerException: While opening aasx C:\Users\punit\AppData\Local\Temp\tmp905C.aasx from source local file: C:\Users\punit\Downloads\MeasurementUnit.aasx buffered to: C:\Users\punit\AppData\Local\Temp\tmp905C.aasx at \AdminShellPackageEnv.cs:line 402 gave: While reading the AASX C:\Users\punit\AppData\Local\Temp\tmp905C.aasx at \AdminShellPackageEnv.cs:line 313 gave: Part URI must start with a forward slash. at at AasxPackageLogic.PackageCentral.PackageCentralItem.Load(PackageCentral packageCentral, String location, String fullItemLocation, Boolean overrideLoadResident, PackageContainerOptionsBase containerOptions, PackCntRuntimeOptions runtimeOptions) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageLogic\PackageCentral\PackageCentral.cs:line 104
at AasxPackageExplorer.MainWindow.UiLoadPackageWithNew(PackageCentralItem packItem, AdminShellPackageEnv takeOverEnv, String loadLocalFilename, String info, Boolean onlyAuxiliary, Boolean doNotNavigateAfterLoaded, PackageContainerBase takeOverContainer, String storeFnToLRU, Boolean indexItems) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.xaml.cs:line 294
at AasxPackageExplorer.MainWindow.<CommandBinding_GeneralDispatch>d__5.MoveNext() in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.CommandBindings.cs:line 266
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler).
Stacktrace: at AasxPackageLogic.PackageCentral.PackageCentralItem.Load(PackageCentral packageCentral, String location, String fullItemLocation, Boolean overrideLoadResident, PackageContainerOptionsBase containerOptions, PackCntRuntimeOptions runtimeOptions) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageLogic\PackageCentral\PackageCentral.cs:line 104
at AasxPackageExplorer.MainWindow.UiLoadPackageWithNew(PackageCentralItem packItem, AdminShellPackageEnv takeOverEnv, String loadLocalFilename, String info, Boolean onlyAuxiliary, Boolean doNotNavigateAfterLoaded, PackageContainerBase takeOverContainer, String storeFnToLRU, Boolean indexItems) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.xaml.cs:line 294
at AasxPackageExplorer.MainWindow.<CommandBinding_GeneralDispatch>d__5.MoveNext() in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.CommandBindings.cs:line 266
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Loading new AASX from: C:\Users\punit\Downloads\Universal_Robot.aasx as auxiliary False ..
AASX C:\Users\punit\Downloads\Universal_Robot.aasx loaded.
[AasxPluginExportTable] Export UML data to file: C:\Users\punit\Desktop\new.uml
[AasxPluginExportTable] Export UML data copied to paste buffer.
[AasxPluginExportTable] Export UML data to file: C:\Users\punit\Downloads\new.xml
[AasxPluginExportTable] Export UML data copied to paste buffer.
[AasxPluginExportTable] Exporting table: C:\Users\punit\Downloads\new.docx
Loading new AASX from: C:\Users\punit\Downloads\MeasurementUnit.aasx as auxiliary False ..
Error: Unhandled exception in AasxPackageExplorer v1.0.0.0: PackageCentral: while performing load from C:\Users\punit\Downloads\MeasurementUnit.aasx at \PackageCentral.cs:line 95 gave: One or more errors occurred. PackageCentral: while performing load from C:\Users\punit\Downloads\MeasurementUnit.aasx at \PackageCentral.cs:line 95 gave: One or more errors occurred.
InnerException: One or more errors occurred.
InnerException: While opening aasx C:\Users\punit\AppData\Local\Temp\tmp475F.aasx from source local file: C:\Users\punit\Downloads\MeasurementUnit.aasx buffered to: C:\Users\punit\AppData\Local\Temp\tmp475F.aasx at \AdminShellPackageEnv.cs:line 402 gave: While reading the AASX C:\Users\punit\AppData\Local\Temp\tmp475F.aasx at \AdminShellPackageEnv.cs:line 313 gave: Part URI must start with a forward slash. at at AasxPackageLogic.PackageCentral.PackageCentralItem.Load(PackageCentral packageCentral, String location, String fullItemLocation, Boolean overrideLoadResident, PackageContainerOptionsBase containerOptions, PackCntRuntimeOptions runtimeOptions) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageLogic\PackageCentral\PackageCentral.cs:line 104
at AasxPackageExplorer.MainWindow.UiLoadPackageWithNew(PackageCentralItem packItem, AdminShellPackageEnv takeOverEnv, String loadLocalFilename, String info, Boolean onlyAuxiliary, Boolean doNotNavigateAfterLoaded, PackageContainerBase takeOverContainer, String storeFnToLRU, Boolean indexItems) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.xaml.cs:line 294
at AasxPackageExplorer.MainWindow.<CommandBinding_GeneralDispatch>d__5.MoveNext() in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.CommandBindings.cs:line 266
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler).
Stacktrace: at AasxPackageLogic.PackageCentral.PackageCentralItem.Load(PackageCentral packageCentral, String location, String fullItemLocation, Boolean overrideLoadResident, PackageContainerOptionsBase containerOptions, PackCntRuntimeOptions runtimeOptions) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageLogic\PackageCentral\PackageCentral.cs:line 104
at AasxPackageExplorer.MainWindow.UiLoadPackageWithNew(PackageCentralItem packItem, AdminShellPackageEnv takeOverEnv, String loadLocalFilename, String info, Boolean onlyAuxiliary, Boolean doNotNavigateAfterLoaded, PackageContainerBase takeOverContainer, String storeFnToLRU, Boolean indexItems) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.xaml.cs:line 294
at AasxPackageExplorer.MainWindow.<CommandBinding_GeneralDispatch>d__5.MoveNext() in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.CommandBindings.cs:line 266
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

AAS UI Error "Submodel Repository URL not set" when using AAS routing

I try out the new AAS UI with the provided example for AAS v3. When using the AAS routing feature I get in a lot of cases the error message Submodel Repository URL not set. When checking the endpoint-settings within the ui it shows that the endpoints for Registry, AAS, Submodel and Concept Description are set.

I use this URL to test: http://localhost:3000/?aas=http://localhost:8081/shells/aHR0cHM6Ly9odHctYmVybGluLmRlL2lkcy9hYXMvZGVtb2Fhc3Yz

The same error occurs when adding a path e.g.: http://localhost:3000/?aas=http://localhost:8081/shells/aHR0cHM6Ly9odHctYmVybGluLmRlL2lkcy9hYXMvZGVtb2Fhc3Yz&path=http://localhost:8081/submodels/aHR0cHM6Ly9odHctYmVybGluLmRlL2lkcy9zbS9kZW1vc3VibW9kZWx2Mw
The only difference is that the "Element Details" of the submodel are displayed but the "AAS Treeview" stays empty

Wrong port and protocol for accessing a file from the AAS Server

I am running the BaSyx docker containers (registry, server, gui) in a docker compose environment and traefik as a reverse proxy with SSL termination.

Everything is working fine except the download of a File from the element details view, because the wrong domain is pre-filled here. In the input field, instead of "https://aas-server.example.com/aasServer/files/aasx/Document/operating-manual-xp-xpc-xpk-en.pdf" - "http://aas-server.example.com:4001/aasServer/files/aasx/Document/operating-manual-xp-xpc-xpk-en.pdf" is pre-filled.
If I change the domain manually the download and pdf preview is working. I think the initial pre-filled info comes from the context.properties file from the AAS server, right? But thats actually the internal docker port and non TLS.

image

image

image

eclipsebasyx/aas-gui not working behind nginx with path like /aasui/

Hi, I have a small problem that the AAS GUI does not work behind a nginx with path like https://127.0.0.1/aasui/.

Unfortunately I can't directly use the publish port and have to route it behind a nginx configured path.
However, the container can not handle it at the moment.
As you can see in the response, all paths (from "/@vite/client" and "/src/main.ts") are absolute.
So the browser can't find them because the /aasui/ path is missing.

Is there any way to configure the docker container to work behind a path?

Thanks for your help.

docker-compose:

version: "3"
services:
  aasui:
    image: eclipsebasyx/aas-gui:v230403
    container_name: aasui
    restart: always
    ports:
      - "3000:3000"

nginx:

listen 80 default_server;
listen [::]:80 default_server;

sendfile                        on;
gzip                            on;

large_client_header_buffers 8 64k;

-----

location = /aasui {
    return 302 /aasui/;
}

location /aasui/ {
    proxy_pass          http://127.0.0.1:3000/;
    proxy_set_header X-Base-Path /aasui;
    include             proxy.conf;
}

proxy.conf:

proxy_buffers                           32 4m;
proxy_busy_buffers_size         25m;
proxy_buffer_size                       512k;
proxy_ignore_headers            "Cache-Control" "Expires";
proxy_max_temp_file_size        0;
proxy_set_header                        X-Real-IP $remote_addr;
proxy_set_header                        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header                        Host $http_host;
proxy_set_header                        Origin $request_uri;
client_max_body_size        1024m;
client_body_buffer_size     4m;
proxy_connect_timeout           600;
proxy_read_timeout                      600;
proxy_send_timeout                      600;
proxy_intercept_errors          off;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;

request:
image

response:

<!DOCTYPE html>
<html lang="en">

<head>
  <script type="module" src="/@vite/client"></script>

    <meta charset="UTF-8" />
    <link rel="icon" href="./src/assets/Logo/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>AAS UI</title>
</head>

<body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
</body>

</html>

Unable to overwrite a submodel-element with new value

The AAS with its elements is displayed correctly in the GUI but I can't overwrite the value of a single submodel element. When I want to upload the new value an internal server error occurs. The same error occurs when I add new entries for example in a multilanguage property.
I tried to change the value in the aas environment via postman and this works.
Thanks for your help.

My Code for reproducing:
aas-env-setup - Kopie.zip

Documentation for Custom Plugin

Hi,

Where can I find some documentation and further examples about custom plugins? Is it mandatory to write my own plugin with Vue or other frameworks or vanila js would work too?

I would like to also know the limitations of this feature.

Thanks for your help.

AAS GUI fails when running with Traefik

Environment

Run the following docker-compose file (contains aas-registry, aas-server, aas-db, aas-gui, traefik):

version: '3'

services:
  traefik:
    image: traefik:v3.0
    ports:
      - "8080:8080"
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - "./traefik_config.yml:/etc/traefik/traefik.yml"

  aas-registry:
    image: eclipsebasyx/aas-registry:1.4.0
    depends_on:
      - aas-database
      - aas-server
      - aas-gui
    environment:
      basyxregistry_registry_backend: MongoDB
      basyxmongodb_dbconnectionstring: mongodb://aas-database:27017/
      basyxcontext_accesscontrolalloworigin: "*"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.aas-registry.rule=PathPrefix(`/aas-registry/`)"
      - "traefik.http.routers.aas-registry.service=aas-registry"
      - "traefik.http.routers.aas-registry.middlewares=aas-registry"
      - "traefik.http.middlewares.aas-registry.stripprefix.prefixes=/aas-registry"
      - "traefik.http.services.aas-registry.loadbalancer.server.port=4000"
      - "traefik.docker.network=default"
    networks:
      - default

  aas-server:
    image: eclipsebasyx/aas-server:1.4.0
    depends_on:
      - aas-database
    environment:
      basyxaas_registry_path: http://aas-registry:4000/registry/api/v1/registry
      basyxaas_aas_backend: MongoDB
      basyxaas_aas_aasxupload: Enabled
      basyxaas_registry_host: http:///aas-server:4001/aas-server/aasServer
      basyxmongodb_dbconnectionstring: mongodb://aas-database:27017/
      basyxcontext_accesscontrolalloworigin: "*"
      waiting_for: '[{"host":"aas-registry","port":"4000"}]'
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.aas-server.rule=PathPrefix(`/aas-server/`)"
      - "traefik.http.routers.aas-server.service=aas-server"
      - "traefik.http.routers.aas-server.middlewares=aas-server"
      - "traefik.http.middlewares.aas-server.stripprefix.prefixes=/aas-server"
      - "traefik.http.services.aas-server.loadbalancer.server.port=4001"
      - "traefik.docker.network=default"
    networks:
      - default

  aas-database:
    image: mongo:latest
    volumes:
      - "aas-database:/data/db"

  aas-gui:
    image: eclipsebasyx/aas-gui:v230703
    environment:
      VITE_BASE_PATH: "/aas-gui"
      VITE_REGISTRY_PATH: "http:///localhost/aas-registry/registry"
      VITE_AAS_SERVER_PATH: "http:///localhost/aas-server/aasServer"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.aas-gui.rule=PathPrefix(`/aas-gui/`)"
      - "traefik.http.routers.aas-gui.service=aas-gui"
#      - "traefik.http.routers.aas-gui.middlewares=aas-gui"
#      - "traefik.http.middlewares.aas-gui.stripprefix.prefixes=/aas-gui"
      - "traefik.http.services.aas-gui.loadbalancer.server.port=3000"
      - "traefik.docker.network=default"
    networks:
      - default

networks:
  default:

volumes:
  aas-database:

with traefik_config.yml:

global:
  checkNewVersion: false
  sendAnonymousUsage: false
entryPoints:
  web:
    address: :80

  websecure:
    address: :443
api:
  insecure: true
  dashboard: true
providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"

Expected behavior

When opening http://localhost/aas-gui aas-gui should be visible

What really happens

When opening http://localhost/aas-gui aas-gui is not loading and console is showing error messages:

image

image

Possible reason why it fails

AAS GUI tries to load /src/main.ts and /@vite/client from http://localhost and not from http://localhost/aas-gui and therefore requests for those files do not reach aas-gui because traefik has no routing rules for "/src" and "/@Vite" path.

Env variable VITE_BASE_PATH=/aas-gui does not fix the problem.

Workaround (for now)

Add additional traefik routing routes, so requests to "/src", "/@Vite", "/node_modules" and "/@id" are also forwarded to aas-gui container:

labels:
        - "traefik.http.routers.aas-gui.rule=PathPrefix(`/aas-gui/`) || PathPrefix(`/@vite/client`) || PathPrefix(`/src`) || PathPrefix(`/node_modules`) || PathPrefix(`/@id`)"

Opening http://localhost/aas-gui/ works with workaround:

image

Additional observation

Host/Path rewrite

AAS GUI rewrites hostname/path in address bar of browser (maybe this is part of the problem):

this:

image

turns into this:

image

VITE_BASE_PATH behaviour

Looks like env var VITE_BASE_PATH works for some parts of the App but not all. Loading the logo does not work when setting VITE_BASE_PATH=/aas-gui and do not strip path prefix via traefik.

image
image

When enabeling stripping path prefix in traefik, loading the logo works:

- "traefik.http.routers.aas-gui.middlewares=aas-gui"
- "traefik.http.middlewares.aas-gui.stripprefix.prefixes=/aas-gui"

Could not reach Asset Administration Shell

Hi, when using the gui and trying to open an AAS, it doesn't show unfortunately the sumodels. By clicking on the AAS it says "Could not reach Asset Adminstration Shell!" Do you have any idea how to fix this problem? I activated in both context.properties (server and registry) accessControlAllowOrigin=* and here is a screenshot:

Screenshot GUI

Default Font Color in Light Theme

The default font color of the graph visualization is (very close to) white and therefore not visible by default.
It will be changed after switching the themes, but reloading the site defaults back to the bright font color.
(This can be reproduced by using the white theme as a default when accessing the site.)

Here is an example screenshot.
image

. bootstrap.sh Befehl evtl. falsch dokumentiert

Im Readme ist die Rede vom Befehl . bootstrap.sh zur Ausführung der GUI unter z.B. Windows. Er funktioniert bei mir jedoch nur mit der Schreibweise .\bootstrap.sh - siehe Screenshot. Ist im Readme ein Schreibfehler? Ansonsten liegt der Fehler bei mir.
image

Submodel URL can not be resolved

I create a docker-compose file with an aas-environment, an aas-registry and an aas-gui. I can register an AAS in the gui but when I click on my AAS the failure occur "Submodel URL can not be resolved". I have uploaded my AAS as json-file in the server, as at this time the aasx-file can not be upladed because of problems in serialization.

To reproduce:

Widget-related getAllWidgets endpoints causing errors

I suspect these endpoints are deprecated, as I can't find a reference to widgets in basyx-java-server-sdk.
There's some widget related endpoints and code in the aas-gui, which are causing some errors.
(In my use-case, also errors in CORS, and due to these errors, the UI seems to be reloading - each reload of the UI is for some reason, downloading approximately 8.2MB each time)

Is there a particular reason to keep them? If not, I could create a PR to remove them.
This is in AppNavigation and MainMenu, with references in a few places to widgets as a concept.

// Function to check if Widget API is available and set the Widget Feature Activation Status in the store
checkWidgetApi() {
    let WidgetApiURL = this.registryURL.split(':') as any;
    WidgetApiURL[2] = '4000';
    // join the array to a string
    WidgetApiURL = WidgetApiURL.join(':');
    // check if the Widget API is available
    let path = WidgetApiURL + '/api/getallwidgets';
    let context = 'trying to connect to Widget API';
    let disableMessage = true;
    // Send Request to get all Widgets
    this.getRequest(path, context, disableMessage).then((response: any) => {
        if (response.success) {
            this.navigationStore.dispatchWidgetApiURL(WidgetApiURL); // save the Widget API URL in the NavigationStore
            this.widgetsStore.dispatchWidgetFeatureActive(true); // set the Widget Feature Activation Status to true
        } else {
            this.navigationStore.dispatchWidgetApiURL(''); // clear the Widget API URL in the NavigationStore
            this.widgetsStore.dispatchWidgetFeatureActive(false); // set the Widget Feature Activation Status to false
        }
    });
},

File MIME types not working

The MIME-types (contentType) of files are not read from AAS Metamodel v3 and images are therefore not displayed

Opening Submodel: Stuck with spinner

Connecting to Basyx registry works as expected, the shells are listed.
When clicking on a shell a spinner appears in the submodels column, but it is stuck there for all eternity. No result is produced. I cannot find any problems in logs, neither in GUI nor in registry,

[Feature Request] Support for submodel element Blob

Blob submodel elements currently only show a warning that this element type is not supported.

We have a use case where our submodel contains a base64 encrypted blob with mimetype img/jpg. It would be very nice to display this data as an image like a submodel element of type File with the same mime type.

Units are not displayed

Properties containing a DataSpecification IEC61360 are not showing the unit or symbol for the value.

RBAC integration for AAS-GUI

The RBAC in Basyx v2 is being developed currently, and is a pretty cool feature - thus I'm creating an issue here to track the client-side of the OpenID + OAuth2 side of the Basyx-GUI.

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.