LAMP Consortium

Self-Hosting Deployment Questions with CENTOS

Hi,

In my CentOS 8 Linux system (romlp900a). I have installed Docker, Docker Swarm, Portainer and traefik in the system. Confirmed Portainer is working fine.

Followed the recommendation instructions from https://docs.lamp.digital/9550a87b186f4f3db60e1858f4c2f346 to deploy traefik.yml and lamp.yml

I do not have SSL certificate installed on the system. We do not have separate DNS for database or API Server now. I just wanted to test locally before I request for separate DNS for database and API Server and SSL certificate installed.

For security purpose I am using xxx - for database, XXXXXX - for PUSH API key here.

Here is my lamp.yml

version: ‘3.7’
services:
server:
image: bidmcdigitalpsychiatry/lamp-server:latest
environment:
HTTPS: ‘off’
ROOT_KEY: ‘fd804de0e9fb5bec33e888ad27c0ede41d39ff8e520c8a38fd8515618064ce24’
CDB: ‘http://admin:xxx@database:5984/
PUSH_API_GATEWAY: ‘https://app-gateway.lamp.digital/
PUSH_API_KEY: ‘XXXXXX’
networks:
- public
deploy:
mode: replicated
labels:
traefik.enable: ‘true’
traefik.http.routers.lamp_server.entryPoints: ‘websecure’
traefik.http.routers.lamp_server.rule: ‘Host(romlp900a)’
traefik.http.routers.lamp_server.tls.certresolver: ‘default’
traefik.http.services.lamp_server.loadbalancer.server.port: 3000
placement:
constraints:
- node.role == manager
database:
image: apache/couchdb:latest
volumes:
- /data/couchdb:/opt/couchdb/data
networks:
- public
environment:
COUCHDB_USER: ‘admin’
COUCHDB_PASSWORD: ‘xxx’
deploy:
mode: replicated
labels:
traefik.enable: ‘true’
traefik.http.routers.lamp_database.entryPoints: ‘websecure’
traefik.http.routers.lamp_database.rule: ‘Host(romlp900a)’
traefik.http.routers.lamp_database.tls.certresolver: ‘default’
traefik.http.services.lamp_database.loadbalancer.server.port: 5984
placement:
constraints:
- node.role == manager
networks:
public:
external: true

Once I deployed the lamp stack using portainer. I do not see any error or no log information in lamp_database service logs.

In the lamp_server service logs - i am getting

Initializing LAMP API server…

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(Use node --trace-warnings ... to show where the warning was created)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

(node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 5)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 7)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 8)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 9)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 10)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 11)

(node:1) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:6379

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)

Our unix administrator has created following folders in the server
/data/couchdb
/opt/couchdb/data

Our unix administrator has enabled following ports in the server
6379, 4369, 5984, 9100, 8081, 3000

Do I need to enable any other ports?

I am also trying to test CouchDB (based on instructions - https://docs.lamp.digital/09c491e86ad8418c8a0cea9230b7f2e8), when I run
$curl -k https://admin:xxx@romlp900a/giving me Bad Gateway error. or 404 page not found error

while testing API Server
$curl -k https:/romlp900a/ — giving me Bad Gateway error. or 404 page not found error

I am testing above commands from the romlp900a CentOS Linux Box.

I do not have any other services/containers except portainer, traefik and lamp_server, lamp_database.

Please let me know what I am doing wrong here. Thanks for your help!

Any help will be much appreciated, I am not sure what else needs to be done here.

How do I make sure lamp.yml deployment is successful? I have taken screenshot of my lamp.yml content, portainer screens, log output, firewall and network status, curl output attached as pdf file here. Please let me know what needs to be done to get this working. Thanks!

I am not able to communicate with couchdb or API server.
curl -v localhost:5984

  • Rebuilt URL to: localhost:5984/
  • Trying ::1…
  • TCP_NODELAY set
  • connect to ::1 port 5984 failed: Connection refused
  • Trying 127.0.0.1…
  • TCP_NODELAY set
  • connect to 127.0.0.1 port 5984 failed: Connection refused
  • Failed to connect to localhost port 5984: Connection refused
  • Closing connection 0
    curl: (7) Failed to connect to localhost port 5984: Connection refused

lampdeployment.pdf (904.4 KB)

Hi @jeyraman:

  1. To test JUST the API server locally, please set HTTPS=on in the server’s environment variables (this uses a self-signed certificate that may not be accepted by all browsers).
  2. It looks like you’re using romlp900a as the hostname for both the server and database which may not be possible?
  3. If you’re running into issues with Traefik and SSL, please take a look at their (very detailed) documentation on providing self-signed (or other) certificates.
  4. The ECONNREFUSED error is because you are missing Redis and NATS which are now required to support advanced features for the LAMP Platform including push notification scheduling. The lamp.yml has been updated in our documentation to reflect this so please take a look.
  5. You should ONLY need to expose port 443 from your server to the outside world. If you are using a single-node Swarm cluster you will not need to worry about other ports.
  6. You ONLY need /data/couchdb to be created on the host machine as /opt/couchdb/data is the folder that is mapped within the container’s filesystem.
  7. You will only be able to curl -v localhost:5984 when you are inside of (i.e. docker exec ... commands) a container within lamp.yml. I believe your issues may be coming from an invalid docker networking setup inside of the lamp.yml stack?

Hope these tips help you get started.

Thanks Aditya for your response.

I got the couchdb, lamp_cache, message queue and lamp server installed in Cent OS.

Issue I was running into was due to CouchDB. In CouchDB, bind_address needs to be updated to 0.0.0.0 and needs to restart the Couch DB modified container and I have to ask one of my unix administrator to bash shell into the couch db container to update the local.ini file and then I have to ask him to restart the container for me (It did not work for my login, could be issue with my permission, I do not have full admin permission).

Here are the steps we followed:

bash-4.4$ docker exec -it < CouchDB ContainerName > bash
bash-4.4$ cd /opt/couchdb/etc/
bash-4.4$ vi local.ini
– Update chttpd bind_address from 127.0.0.1 to 0.0.0.0
bash-4.4$ exit
Restart the container
bash-4.4$ docker restart < CouchDB ContainerName >

I was able to get the LAMP Server and Database working using just romlp900a as hostname without creating DNS name for LAMP Server and database. We are in the initial phase. We will setup the DNS name for LAMP server and database later.

Thanks for your responses.

I have one more question:

Once I login as admin user into the mindLAMP dashboard. I see the below dashboard main screen. I have added few researchers by clicking the plus icon. I see those researchers in the couchdb researcher database but not in the dashboard screen. Is there anything I am missing? How do I add participant to the system?

I see below log messages in the lamp_server container

GET /type/me/parent 400 - 3615.721 ms
GET /researcher 500 - 21.011 ms
GET /researcher 500 - 23.380 ms

I see below log messages in the couchdb container

[notice] 2021-01-07T18:08:16.963914Z nonode@nohost <0.21200.19> 818ef39964 database:5984 10.0.2.4 admin POST /credential/_find 200 ok 5
[notice] 2021-01-07T18:08:16.969472Z nonode@nohost <0.21198.19> b410ded888 database:5984 10.0.2.4 admin POST /credential/_find 200 ok 3
[notice] 2021-01-07T18:08:16.971799Z nonode@nohost <0.21206.19> 40f17ac2c3 database:5984 10.0.2.4 admin POST /researcher/_find 400 ok 1
[notice] 2021-01-07T18:08:31.961684Z nonode@nohost <0.21351.19> 0336db239a database:5984 10.0.2.4 admin POST /credential/_find 200 ok 3
[notice] 2021-01-07T18:08:36.966733Z nonode@nohost <0.21397.19> 28edcb2237 database:5984 10.0.2.4 admin POST /credential/_find 200 ok 2
[notice] 2021-01-07T18:08:41.972600Z nonode@nohost <0.21448.19> 6d88902c3c database:5984 10.0.2.4 admin POST /credential/_find 200 ok 3
[notice] 2021-01-07T18:08:41.976922Z nonode@nohost <0.21453.19> c5164b8318 database:5984 10.0.2.4 admin POST /credential/_find 200 ok 2
[notice] 2021-01-07T18:08:41.979259Z nonode@nohost <0.21450.19> 3565d32299 database:5984 10.0.2.4 admin POST /researcher/_find 400 ok 1

I am able to do GET request from Researcher couchdb database using curl command and see the data

bash-4.4$ curl -X GET http://admin:< password >@rofmlp901a:5984/researcher/gceqtt1sjc4qqd00mrep
{"_id":“gceqtt1sjc4qqd00mrep”,"_rev":“1-72b5d50715e4124c6d72c9e1f411bffd”,“timestamp”:1610040323124,“name”:“rama”}
bash-4.4$

But dashboard does not show newly added researchers.

Output from admin user verification:
bash-4.4$ curl -k https://rofmlp901a/researcher -H ‘Authorization: Basic admin:9a2f7c5926926bb4d445188373f72c16ce0762dbc3551ca94e0b9b186df88742’
{
“error”: “No index exists for this sort, try indexing by the sort fields.”
}bash-4.4$

Here is the screenshot of my dashboard:

Here is the screenshot of the my couchdb database

How do I add participant and other activities? Please let me know what am I missing here. Thanks for helping to setup!

@jeyraman Did you by any chance delete and re-create the databases in CouchDB? It looks like one of the required indices was not created correctly. Could you go to the researcher database and share the design documents (prefixed with _design) here so I may confirm that? It would be very easy to fix this if that’s the issue at hand.

Thanks Aditya for your response. I am not seeing any design documents for researcher or other databases in couchdb.

Here is the screen shot of the researcher database in couchdb.

I removed some of the mindLAMP databases from CouchDB and restarted the LAMP server container, restarting the container created the mindLAMP databases design documents.

Once mindLAMP databases are created with design documents, I was able to see researchers and patients through mindLAMP dashboard.

Thanks for your help!

BTW: To get the couchdb to work on our local CENTOS server with yaml services, we end up creating our own couchdb image with bind address 0.0.0.0.

Here are the steps followed:

Create CouchDB
bash-4.4$ docker run -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=< COUCHDB password >-d --name lampcouchdb couchdb

Get inside the container to modify the local.ini file
bash-4.4$ docker exec -it lampcouchdb bash
bash-4.4$ cd /opt/couchdb/etc/
bash-4.4$ grep ‘127.0.0.1’ local.ini
bash-4.4$ sed -i -e ‘s/;bind_address = 127.0.0.1/bind_address = 0.0.0.0/g’ local.ini
bash-4.4$ grep ‘127.0.0.1’ local.ini
bash-4.4$ grep ‘0.0.0.0’ local.ini

Exit from the container
bash-4.4$ exit

–wait for few seconds then restart again
Restart the container
bash-4.4$ docker restart lampcouchdb
–wait for few seconds then restart again
bash-4.4$ docker restart lampcouchdb

bash-4.4$curl localhost:5984
bash-4.4$curl 127.0.0.1:5984
bash-4.4$curl -k http://admin:@< Your HOSTNAME >:5984/

Save the newly created container as image with name mlpcouchdb

bash-4.4$ docker commit lampcouchdb mlpcouchdb

bash-4.4$ docker run -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=< COUCHDB password >-d --name lampcouchdb mlpcouchdb

Remove the old container lampcouchdb if exists and use the newly created image mlpcouchdb in the couchdb section of the lamp YAML file to install couchdb with bind address 0.0.0.0.

1 Like

@jeyraman Glad to hear that it works now! Interestingly, we have had no issues using the Apache-issued image? IIRC, you can also bind-mount or use docker configs for the ini file to avoid creating a new image.

Do you have a SOAP API or WSDL file for the LAMP API Server openapi 3.0.0 version?

As the API is REST/JSON-based (and not SOAP/XML-based), we only provide OpenAPI schema. You can find a more up-to-date version here.

Thanks Aditya!

Our Akana platform uses Swagger 2 or WSDL file or RAML or WADL API definition. I will look for converter to convert OpenAPI 3.0 schema to Akana artifacts API definition file. Thanks!

1 Like

Any of you had this problem? this blocks a admin/researcher/participant to login to the lamp dashboard. please advice. Thanks!

Access to fetch at ‘https://xxx.api.xxxx.xxx/mlpapiservice/v1/type/me/parent’ from origin ‘https://dashboard.lamp.digital’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

2.a9d52aad.chunk.js:2 GET https://xxx.api.xxxx.xxx/mlpapiservice/v1/type/me/parent net::ERR_FAILED
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
i @ 2.a9d52aad.chunk.js:2
o @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
i @ 2.a9d52aad.chunk.js:2
e.get @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
r @ 2.a9d52aad.chunk.js:2
e.parent @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
i @ 2.a9d52aad.chunk.js:2
t.set_identity @ 2.a9d52aad.chunk.js:2
(anonymous) @ main.5f15ed35.chunk.js:1
s @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
r @ 2.a9d52aad.chunk.js:2
u @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ main.5f15ed35.chunk.js:1
(anonymous) @ main.5f15ed35.chunk.js:1
s @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
r @ 2.a9d52aad.chunk.js:2
u @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
(anonymous) @ main.5f15ed35.chunk.js:1
te @ main.5f15ed35.chunk.js:1
u @ 2.a9d52aad.chunk.js:2
p @ 2.a9d52aad.chunk.js:2
(anonymous) @ 2.a9d52aad.chunk.js:2
v @ 2.a9d52aad.chunk.js:2
ot @ 2.a9d52aad.chunk.js:2
it @ 2.a9d52aad.chunk.js:2
ut @ 2.a9d52aad.chunk.js:2
pt @ 2.a9d52aad.chunk.js:2
F @ 2.a9d52aad.chunk.js:2
U @ 2.a9d52aad.chunk.js:2
Qt @ 2.a9d52aad.chunk.js:2
Jt @ 2.a9d52aad.chunk.js:2
t.unstable_runWithPriority @ 2.a9d52aad.chunk.js:2
Wi @ 2.a9d52aad.chunk.js:2
N @ 2.a9d52aad.chunk.js:2
Xt @ 2.a9d52aad.chunk.js:2
Show 29 more frames
main.5f15ed35.chunk.js:1 error with auth request TypeError: Cannot read property ‘id’ of null
at main.5f15ed35.chunk.js:1

It looks like your firewall setup may not have CORS properly configured on it as I do not see any CORS headers when I test a request from your server manually; the LAMP API Server itself does enable CORS from anywhere.

Thanks Aditya, we are working with Akana team and Network operation team to look into the Akana proxy setup and firewall rules.

1 Like

Thanks Aditya. It was F5 setup issue. We have fixed it after working with few teams. Everything is working now!

If we need to enable Cognitive Tests, is there anything we need to enable? Currently we are not seeing anything under Cognitive tests, is there any template that we need to import? Thanks!

image

Hi @jeyraman,

It looks like the ActivitySpec index didn’t completely initialize for some reason; to fix this, please run the following command after saving the file contents below as spec.json. (Please replace all variables with your environment’s specific ones before running!)

That should fix it!

command:

curl \
  -XPOST \ 
  https://admin:YOUR_DB_PASSWORD_HERE@YOUR_DB_DOMAIN_HERE/activity_spec/_bulk_docs \
  -H 'Content-Type: application/json' \
  -d @spec.json

spec.json:

{
  "docs": [
    {
      "_id": "lamp.3d_figure_copy"
    },
    {
      "_id": "lamp.balloon_risk"
    },
    {
      "_id": "lamp.breathe"
    },
    {
      "_id": "lamp.cats_and_dogs"
    },
    {
      "_id": "lamp.cats_and_dogs_new"
    },
    {
      "_id": "lamp.dbt_diary_card"
    },
    {
      "_id": "lamp.digit_span"
    },
    {
      "_id": "lamp.jewels_a"
    },
    {
      "_id": "lamp.jewels_b"
    },
    {
      "_id": "lamp.journal"
    },
    {
      "_id": "lamp.nback"
    },
    {
      "_id": "lamp.nback_new"
    },
    {
      "_id": "lamp.pop_the_bubbles"
    },
    {
      "_id": "lamp.scratch_image"
    },
    {
      "_id": "lamp.serial7s"
    },
    {
      "_id": "lamp.simple_memory"
    },
    {
      "_id": "lamp.spatial_span"
    },
    {
      "_id": "lamp.spin_wheel"
    },
    {
      "_id": "lamp.survey"
    },
    {
      "_id": "lamp.temporal_order"
    },
    {
      "_id": "lamp.tips"
    },
    {
      "_id": "lamp.trails_b"
    },
    {
      "_id": "lamp.trails_b_dot_touch"
    },
    {
      "_id": "lamp.trails_b_new"
    },
    {
      "_id": "lamp.visual_association"
    }
  ]
}

Thanks Aditya, after loading data, I could see and access Cognitive Tests. Thanks for sharing the ActivitySpec documents.

1 Like

Hi,

We noticed delay in loading data in mindLAMP app, so we have increased the RAM size from 4 GB to 8 GB in our CENT OS server.

I have noticed few calls to attachment API endpoint method, they are returning 404 error, is there any way to avoid this data error with attachment API method. Does all our requests go through mindLAMP dashboard application ( https://dashboard.lamp.digital) ?

https://<our API server>/attachment/lamp.dashboard.disable_data
{
“error”: “404.object-not-found”
}

Thanks!

1 Like

Hi @jeyraman,

Actually, these 404 errors are expected in this case. Nothing to worry about!

Hope this helps.