Loading go-apps/meep-iot-pltf/meep-acme-in-cse/Dockerfile +82 −36 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/Dockerfile: 82 added lines, 36 removed lines. Original line number Diff line number Diff line FROM python:3.11-slim FROM ubuntu:24.04 AS builder RUN DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ ca-certificates \ git \ libffi-dev \ libssl-dev \ pkg-config \ python3 \ python3-dev \ python3-pip \ python3-venv \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app # --depth 1: skip full git history, much faster/smaller clone RUN git clone --depth 1 https://github.com/ankraft/ACME-oneM2M-CSE.git ACME-oneM2M-CSE \ && rm -rf ACME-oneM2M-CSE/.git WORKDIR /usr/src/app/ACME-oneM2M-CSE # Isolated venv sidesteps Ubuntu 24.04's PEP 668 "externally-managed-environment" pip error RUN python3 -m venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" # Copy requirements first so this layer only rebuilds when deps actually change COPY ./data/requirements.txt ./requirements.txt RUN pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir -r requirements.txt COPY ./data ./ RUN cp -r ./acme/* ./acmecse/ \ && rm -rf ./acme \ && chmod +x entrypoint.sh # RUN chmod +x entrypoint.sh # ---------- Runtime stage ---------- FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive # Only what's needed to *run* the CSE, not build it RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ gettext \ git \ Loading @@ -9,49 +55,49 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update \ iputils-ping \ jq \ libedit2 \ libffi-dev \ libglib2.0-dev \ libssl-dev \ libglib2.0-0 \ lsof \ pkg-config \ python3 \ sudo \ tzdata \ && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \ && DEBIAN_FRONTEND=noninteractive apt-get autoclean \ && DEBIAN_FRONTEND=noninteractive apt-get clean \ && apt-get autoremove --purge -y \ && apt-get autoclean \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app RUN git clone -b development https://github.com/ankraft/ACME-oneM2M-CSE.git ACME-oneM2M-CSE RUN echo "meep-acme-mn-cse" > /etc/hostname WORKDIR /usr/src/app/ACME-oneM2M-CSE ENV MQTT_ENABLE="" ENV MQTT_HOST="" ENV MQTT_PORT="" ENV MQTT_USERNAME="" ENV MQTT_PASSWORD="" ENV SERVER_PORT="" ENV SERVER_TYPE="" ENV SERVER_IP="" ENV ENABLE_COAP="" ENV ENABLE_WS="" ENV CSE_BASE_NAME="" ENV CSE_BASE_RI="" ENV MEEP_MEP_NAME="" ENV MEC_SANDBOX_SERVER="" RUN echo "meep-acme-in-cse" > /etc/hostname COPY ./data/requirements.txt /usr/src/app/ACME-oneM2M-CSE/requirements.txt RUN pip3 install --no-cache-dir python-dotenv --break-system-packages RUN pip3 install --no-cache-dir -r requirements.txt --break-system-packages # Pull in the pre-built venv and the app code from the builder stage COPY --from=builder /opt/venv /opt/venv COPY --from=builder /usr/src/app/ACME-oneM2M-CSE ./ COPY ./data /usr/src/app/ACME-oneM2M-CSE RUN ln -sf /opt/venv/bin/python3 /usr/local/bin/python3 \ && ln -sf /opt/venv/bin/pip /usr/local/bin/pip RUN cp -r ./acme/* ./acmecse/ && rm -rf ./acme || true ENV PATH="/opt/venv/bin:$PATH" RUN chmod +x entrypoint.sh ENV SERVER_TYPE="" \ SERVER_IP="" \ SERVER_PORT="" \ CSE_BASE_NAME="" \ CSE_BASE_RI="" \ REMOTE_CSE_ID="" \ REMOTE_CSE_NAME="" \ REMOTE_CSE_HOST="" \ REMOTE_CSE_PORT="" \ MQTT_ENABLE="" \ MQTT_HOST="" \ MQTT_PORT="" \ MQTT_USERNAME="" \ MQTT_PASSWORD="" \ MEC_ENABLE="" \ MEC_HOST_URL="" \ MEC_PLATFORM="" \ MEC_SANDBOX_ID="" \ ENABLE_COAP="" \ ENABLE_WS="" \ ACME_IN_SERVICE_NAME="" ENTRYPOINT ["./entrypoint.sh"] No newline at end of file go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-dev.fcp 0 → 100644 +43 −0 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-dev.fcp: 43 added lines, 0 removed lines. Original line number Diff line number Diff line // Created by SDTTool // oneM2M Release: 4.12.0 // Domain: org.onem2m.common [ // MecDeviceClass: iotDevice { "type" : "mec:iotDev", "lname" : "iotDevice", "sdttype" : "mecdevice", "cnd" : "org.onem2m.common.mec.device.iotDevice", "attributes": [ // Property: deviceId { "sname" : "devId", "lname" : "deviceId", "type" : "string", "car" : "01", "oc" : "O" }, //0 Optional, 1..N, cardinality, oc: OnCreate Mandatory, Update, Optional, Np: Not provisioned // Property: gspi { "sname" : "gspi", "lname" : "gspi", "type" : "string", "car" : "01", "oc" : "O" }, // Property: pei { "sname" : "mpei", "lname" : "mec-pei", "type" : "string", "car" : "01", "oc" : "O" }, // Property: supi { "sname" : "supi", "lname" : "supi", "type" : "string", "car" : "01", "oc" : "O" }, // Property: msisdn { "sname" : "msisdn", "lname" : "msisdn", "type" : "string", "car" : "01", "oc" : "O" }, // Property: imei { "sname" : "imei", "lname" : "imei", "type" : "string", "car" : "01", "oc" : "O" }, // Property: imsi { "sname" : "imsi", "lname" : "imsi", "type" : "string", "car" : "01", "oc" : "O" }, // Property: iccid { "sname" : "iccid", "lname" : "iccid", "type" : "string", "car" : "01", "oc" : "O" }, // Property: requestedIotPlatformId { "sname" : "rIPId", "lname" : "requestedIotPlatformId", "type" : "string", "car" : "01" }, // Property: requestedUserTransportId { "sname" : "rUTId", "lname" : "requestedUserTransportId", "type" : "string", "car" : "01", "oc" : "O" }, // Property: requestedMecTrafficRule { "sname" : "rMTRe", "lname" : "requestedMecTrafficRule", "type" : "list", "car" : "01", "oc" : "O" }, // Property: enabled { "sname" : "enabd", "lname" : "enabled", "type" : "boolean", "car" : "1", "oc" : "M" } ], "children" : [ // Module class ] } ] go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-mc.fcp 0 → 100644 +328 −0 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-mc.fcp: 328 added lines, 0 removed lines. Original line number Diff line number Diff line // Created by SDTTool // oneM2M Release: 5.6.0 // Domain: org.etsi.mec [ // ModuleClass: ServiceInfo (SerIo) { "type" : "mec:SerIo", "lname" : "ServiceInfo", "cnd" : "org.etsi.mec.moduleclass.ServiceInfo", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: serInstanceId { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, // DataPoint: serName { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, // DataPoint: serVersion { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, // DataPoint: serState { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: serSerializer { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: scopeOfLocality { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, // DataPoint: consumedLocalOnly { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, // DataPoint: isLocal { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, // DataPoint: livenessInterval { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, // DataPoint: transportId { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" } ], "children" : [ "mec:SerIoInst" ] }, // ModuleClass Announced: ServiceInfoAnnc (SerIoAnnc) { "type" : "mec:SerIoAnnc", "lname" : "ServiceInfoAnnc", "cnd" : "org.etsi.mec.moduleclass.ServiceInfoAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: serInstanceId { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, // DataPoint: serName { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, // DataPoint: serVersion { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, // DataPoint: serState { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: serSerializer { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: scopeOfLocality { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, // DataPoint: consumedLocalOnly { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, // DataPoint: isLocal { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, // DataPoint: livenessInterval { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, // DataPoint: transportId { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" } ] }, // ModuleClass Instance: ServiceInfoInst (SerIoInst) { "type" : "mec:SerIoInst", "lname" : "ServiceInfoInst", "cnd" : "org.etsi.mec.moduleclass.ServiceInfoInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: serInstanceId { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, // DataPoint: serName { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, // DataPoint: serVersion { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, // DataPoint: serState { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: serSerializer { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: scopeOfLocality { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, // DataPoint: consumedLocalOnly { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, // DataPoint: isLocal { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, // DataPoint: livenessInterval { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, // DataPoint: transportId { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" } ] }, // ModuleClass: category (catey) { "type" : "mec:catey", "lname" : "category", "cnd" : "org.etsi.mec.moduleclass.category", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: href { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" } ], "children" : [ "mec:cateyInst" ] }, // ModuleClass Announced: categoryAnnc (cateyAnnc) { "type" : "mec:cateyAnnc", "lname" : "categoryAnnc", "cnd" : "org.etsi.mec.moduleclass.categoryAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: href { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" } ] }, // ModuleClass Instance: categoryInst (cateyInst) { "type" : "mec:cateyInst", "lname" : "categoryInst", "cnd" : "org.etsi.mec.moduleclass.categoryInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: href { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" } ] }, // ModuleClass: transport (trant) { "type" : "mec:trant", "lname" : "transport", "cnd" : "org.etsi.mec.moduleclass.transport", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: description { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, // DataPoint: type { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: protocol { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, // DataPoint: implSpecificInfo { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" } ], "children" : [ "mec:trantInst" ] }, // ModuleClass Announced: transportAnnc (trantAnnc) { "type" : "mec:trantAnnc", "lname" : "transportAnnc", "cnd" : "org.etsi.mec.moduleclass.transportAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: description { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, // DataPoint: type { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: protocol { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, // DataPoint: implSpecificInfo { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" } ] }, // ModuleClass Instance: transportInst (trantInst) { "type" : "mec:trantInst", "lname" : "transportInst", "cnd" : "org.etsi.mec.moduleclass.transportInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: description { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, // DataPoint: type { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: protocol { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, // DataPoint: implSpecificInfo { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" } ] }, // ModuleClass: endpoint (endpt) { "type" : "mec:endpt", "lname" : "endpoint", "cnd" : "org.etsi.mec.moduleclass.endpoint", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: uris { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, // DataPoint: addresses { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, // DataPoint: alternative { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" } ], "children" : [ "mec:endptInst" ] }, // ModuleClass Announced: endpointAnnc (endptAnnc) { "type" : "mec:endptAnnc", "lname" : "endpointAnnc", "cnd" : "org.etsi.mec.moduleclass.endpointAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: uris { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, // DataPoint: addresses { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, // DataPoint: alternative { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" } ] }, // ModuleClass Instance: endpointInst (endptInst) { "type" : "mec:endptInst", "lname" : "endpointInst", "cnd" : "org.etsi.mec.moduleclass.endpointInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: uris { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, // DataPoint: addresses { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, // DataPoint: alternative { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" } ] }, // ModuleClass: MecServices (grouping container) { "type" : "mec:MecServices", "lname" : "MecServicesGroup", "cnd" : "org.etsi.mec.moduleclass.MecServicesGroup", "sdttype" : "moduleclass", "attributes": [], "children" : [ "mec:SerIo", "mec:SerIoAnnc", "mec:catey", "mec:cateyAnnc", "mec:trant", "mec:trantAnnc", "mec:endpt", "mec:endptAnnc" ] } ] No newline at end of file go-apps/meep-iot-pltf/meep-acme-in-cse/requirements.txt +33 −30 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/requirements.txt: 33 added lines, 30 removed lines. Original line number Diff line number Diff line # # This file is autogenerated by pip-compile with Python 3.11 # This file is autogenerated by pip-compile with Python 3.13 # by the following command: # # pip-compile Loading @@ -7,9 +7,9 @@ blinker==1.9.0 # via flask cachetools==6.1.0 # via acmecse-dev (setup.py) cbor2==5.6.5 # via acmecse-dev (setup.py) # via acmecse (setup.py) cbor2==5.9.0 # via acmecse (setup.py) certifi==2025.8.3 # via requests charset-normalizer==3.4.3 Loading @@ -17,25 +17,25 @@ charset-normalizer==3.4.3 click==8.2.1 # via flask coapthon3-acme-cse==1.1.4 # via acmecse-dev (setup.py) flask==3.1.1 # via acmecse (setup.py) flask==3.1.3 # via # acmecse-dev (setup.py) # acmecse (setup.py) # flask-cors flask-cors==6.0.1 # via acmecse-dev (setup.py) idna==3.10 # via acmecse (setup.py) idna==3.15 # via requests inquirerpy==0.3.4 # via acmecse-dev (setup.py) # via acmecse (setup.py) isodate==0.7.2 # via acmecse-dev (setup.py) # via acmecse (setup.py) itsdangerous==2.2.0 # via flask jinja2==3.1.6 # via flask kazoo==2.10.0 # via acmecse-dev (setup.py) # via acmecse (setup.py) linkify-it-py==2.0.3 # via markdown-it-py markdown-it-py[linkify,plugins]==4.0.0 Loading @@ -52,60 +52,63 @@ mdit-py-plugins==0.5.0 # via markdown-it-py mdurl==0.1.2 # via markdown-it-py numpy==2.3.2 # via shapely paho-mqtt==2.1.0 # via acmecse-dev (setup.py) # via acmecse (setup.py) pfzy==0.3.4 # via inquirerpy platformdirs==4.3.8 # via textual plotext==5.3.2 # via # acmecse-dev (setup.py) # acmecse (setup.py) # textual-plotext prompt-toolkit==3.0.51 # via inquirerpy psycopg2-binary==2.9.10 # via acmecse-dev (setup.py) pygments==2.19.2 # via acmecse (setup.py) pygments==2.20.0 # via # rich # textual pyparsing==3.2.3 # via rdflib pyperclip==1.9.0 # via acmecse-dev (setup.py) # via acmecse (setup.py) python-dotenv==1.2.2 # via acmecse (setup.py) rdflib==7.1.4 # via acmecse-dev (setup.py) requests==2.32.4 # via acmecse-dev (setup.py) # via acmecse (setup.py) requests==2.33.0 # via acmecse (setup.py) rich==14.1.0 # via # acmecse-dev (setup.py) # acmecse (setup.py) # textual shapely==2.1.1 # via acmecse-dev (setup.py) # via acmecse (setup.py) textual==5.2.0 # via # acmecse-dev (setup.py) # acmecse (setup.py) # textual-plotext textual-plotext==1.0.1 # via acmecse-dev (setup.py) # via acmecse (setup.py) tinydb==4.8.2 # via acmecse-dev (setup.py) # via acmecse (setup.py) typing-extensions==4.14.1 # via textual uc-micro-py==1.0.3 # via linkify-it-py urllib3==2.5.0 urllib3==2.7.0 # via requests waitress==3.0.2 # via acmecse-dev (setup.py) # via acmecse (setup.py) wcwidth==0.2.13 # via prompt-toolkit websockets==15.0.1 # via acmecse-dev (setup.py) werkzeug==3.1.3 # via acmecse (setup.py) werkzeug==3.1.6 # via # flask # flask-cors No newline at end of file go-apps/meep-iot-pltf/meep-acme-mn-cse/Dockerfile +80 −43 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
go-apps/meep-iot-pltf/meep-acme-in-cse/Dockerfile +82 −36 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/Dockerfile: 82 added lines, 36 removed lines. Original line number Diff line number Diff line FROM python:3.11-slim FROM ubuntu:24.04 AS builder RUN DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ ca-certificates \ git \ libffi-dev \ libssl-dev \ pkg-config \ python3 \ python3-dev \ python3-pip \ python3-venv \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app # --depth 1: skip full git history, much faster/smaller clone RUN git clone --depth 1 https://github.com/ankraft/ACME-oneM2M-CSE.git ACME-oneM2M-CSE \ && rm -rf ACME-oneM2M-CSE/.git WORKDIR /usr/src/app/ACME-oneM2M-CSE # Isolated venv sidesteps Ubuntu 24.04's PEP 668 "externally-managed-environment" pip error RUN python3 -m venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" # Copy requirements first so this layer only rebuilds when deps actually change COPY ./data/requirements.txt ./requirements.txt RUN pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir -r requirements.txt COPY ./data ./ RUN cp -r ./acme/* ./acmecse/ \ && rm -rf ./acme \ && chmod +x entrypoint.sh # RUN chmod +x entrypoint.sh # ---------- Runtime stage ---------- FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive # Only what's needed to *run* the CSE, not build it RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ gettext \ git \ Loading @@ -9,49 +55,49 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update \ iputils-ping \ jq \ libedit2 \ libffi-dev \ libglib2.0-dev \ libssl-dev \ libglib2.0-0 \ lsof \ pkg-config \ python3 \ sudo \ tzdata \ && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \ && DEBIAN_FRONTEND=noninteractive apt-get autoclean \ && DEBIAN_FRONTEND=noninteractive apt-get clean \ && apt-get autoremove --purge -y \ && apt-get autoclean \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app RUN git clone -b development https://github.com/ankraft/ACME-oneM2M-CSE.git ACME-oneM2M-CSE RUN echo "meep-acme-mn-cse" > /etc/hostname WORKDIR /usr/src/app/ACME-oneM2M-CSE ENV MQTT_ENABLE="" ENV MQTT_HOST="" ENV MQTT_PORT="" ENV MQTT_USERNAME="" ENV MQTT_PASSWORD="" ENV SERVER_PORT="" ENV SERVER_TYPE="" ENV SERVER_IP="" ENV ENABLE_COAP="" ENV ENABLE_WS="" ENV CSE_BASE_NAME="" ENV CSE_BASE_RI="" ENV MEEP_MEP_NAME="" ENV MEC_SANDBOX_SERVER="" RUN echo "meep-acme-in-cse" > /etc/hostname COPY ./data/requirements.txt /usr/src/app/ACME-oneM2M-CSE/requirements.txt RUN pip3 install --no-cache-dir python-dotenv --break-system-packages RUN pip3 install --no-cache-dir -r requirements.txt --break-system-packages # Pull in the pre-built venv and the app code from the builder stage COPY --from=builder /opt/venv /opt/venv COPY --from=builder /usr/src/app/ACME-oneM2M-CSE ./ COPY ./data /usr/src/app/ACME-oneM2M-CSE RUN ln -sf /opt/venv/bin/python3 /usr/local/bin/python3 \ && ln -sf /opt/venv/bin/pip /usr/local/bin/pip RUN cp -r ./acme/* ./acmecse/ && rm -rf ./acme || true ENV PATH="/opt/venv/bin:$PATH" RUN chmod +x entrypoint.sh ENV SERVER_TYPE="" \ SERVER_IP="" \ SERVER_PORT="" \ CSE_BASE_NAME="" \ CSE_BASE_RI="" \ REMOTE_CSE_ID="" \ REMOTE_CSE_NAME="" \ REMOTE_CSE_HOST="" \ REMOTE_CSE_PORT="" \ MQTT_ENABLE="" \ MQTT_HOST="" \ MQTT_PORT="" \ MQTT_USERNAME="" \ MQTT_PASSWORD="" \ MEC_ENABLE="" \ MEC_HOST_URL="" \ MEC_PLATFORM="" \ MEC_SANDBOX_ID="" \ ENABLE_COAP="" \ ENABLE_WS="" \ ACME_IN_SERVICE_NAME="" ENTRYPOINT ["./entrypoint.sh"] No newline at end of file
go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-dev.fcp 0 → 100644 +43 −0 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-dev.fcp: 43 added lines, 0 removed lines. Original line number Diff line number Diff line // Created by SDTTool // oneM2M Release: 4.12.0 // Domain: org.onem2m.common [ // MecDeviceClass: iotDevice { "type" : "mec:iotDev", "lname" : "iotDevice", "sdttype" : "mecdevice", "cnd" : "org.onem2m.common.mec.device.iotDevice", "attributes": [ // Property: deviceId { "sname" : "devId", "lname" : "deviceId", "type" : "string", "car" : "01", "oc" : "O" }, //0 Optional, 1..N, cardinality, oc: OnCreate Mandatory, Update, Optional, Np: Not provisioned // Property: gspi { "sname" : "gspi", "lname" : "gspi", "type" : "string", "car" : "01", "oc" : "O" }, // Property: pei { "sname" : "mpei", "lname" : "mec-pei", "type" : "string", "car" : "01", "oc" : "O" }, // Property: supi { "sname" : "supi", "lname" : "supi", "type" : "string", "car" : "01", "oc" : "O" }, // Property: msisdn { "sname" : "msisdn", "lname" : "msisdn", "type" : "string", "car" : "01", "oc" : "O" }, // Property: imei { "sname" : "imei", "lname" : "imei", "type" : "string", "car" : "01", "oc" : "O" }, // Property: imsi { "sname" : "imsi", "lname" : "imsi", "type" : "string", "car" : "01", "oc" : "O" }, // Property: iccid { "sname" : "iccid", "lname" : "iccid", "type" : "string", "car" : "01", "oc" : "O" }, // Property: requestedIotPlatformId { "sname" : "rIPId", "lname" : "requestedIotPlatformId", "type" : "string", "car" : "01" }, // Property: requestedUserTransportId { "sname" : "rUTId", "lname" : "requestedUserTransportId", "type" : "string", "car" : "01", "oc" : "O" }, // Property: requestedMecTrafficRule { "sname" : "rMTRe", "lname" : "requestedMecTrafficRule", "type" : "list", "car" : "01", "oc" : "O" }, // Property: enabled { "sname" : "enabd", "lname" : "enabled", "type" : "boolean", "car" : "1", "oc" : "M" } ], "children" : [ // Module class ] } ]
go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-mc.fcp 0 → 100644 +328 −0 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-mc.fcp: 328 added lines, 0 removed lines. Original line number Diff line number Diff line // Created by SDTTool // oneM2M Release: 5.6.0 // Domain: org.etsi.mec [ // ModuleClass: ServiceInfo (SerIo) { "type" : "mec:SerIo", "lname" : "ServiceInfo", "cnd" : "org.etsi.mec.moduleclass.ServiceInfo", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: serInstanceId { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, // DataPoint: serName { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, // DataPoint: serVersion { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, // DataPoint: serState { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: serSerializer { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: scopeOfLocality { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, // DataPoint: consumedLocalOnly { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, // DataPoint: isLocal { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, // DataPoint: livenessInterval { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, // DataPoint: transportId { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" } ], "children" : [ "mec:SerIoInst" ] }, // ModuleClass Announced: ServiceInfoAnnc (SerIoAnnc) { "type" : "mec:SerIoAnnc", "lname" : "ServiceInfoAnnc", "cnd" : "org.etsi.mec.moduleclass.ServiceInfoAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: serInstanceId { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, // DataPoint: serName { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, // DataPoint: serVersion { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, // DataPoint: serState { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: serSerializer { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: scopeOfLocality { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, // DataPoint: consumedLocalOnly { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, // DataPoint: isLocal { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, // DataPoint: livenessInterval { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, // DataPoint: transportId { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" } ] }, // ModuleClass Instance: ServiceInfoInst (SerIoInst) { "type" : "mec:SerIoInst", "lname" : "ServiceInfoInst", "cnd" : "org.etsi.mec.moduleclass.ServiceInfoInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: serInstanceId { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, // DataPoint: serName { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, // DataPoint: serVersion { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, // DataPoint: serState { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: serSerializer { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: scopeOfLocality { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, // DataPoint: consumedLocalOnly { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, // DataPoint: isLocal { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, // DataPoint: livenessInterval { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, // DataPoint: transportId { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" } ] }, // ModuleClass: category (catey) { "type" : "mec:catey", "lname" : "category", "cnd" : "org.etsi.mec.moduleclass.category", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: href { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" } ], "children" : [ "mec:cateyInst" ] }, // ModuleClass Announced: categoryAnnc (cateyAnnc) { "type" : "mec:cateyAnnc", "lname" : "categoryAnnc", "cnd" : "org.etsi.mec.moduleclass.categoryAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: href { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" } ] }, // ModuleClass Instance: categoryInst (cateyInst) { "type" : "mec:cateyInst", "lname" : "categoryInst", "cnd" : "org.etsi.mec.moduleclass.categoryInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: href { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" } ] }, // ModuleClass: transport (trant) { "type" : "mec:trant", "lname" : "transport", "cnd" : "org.etsi.mec.moduleclass.transport", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: description { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, // DataPoint: type { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: protocol { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, // DataPoint: implSpecificInfo { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" } ], "children" : [ "mec:trantInst" ] }, // ModuleClass Announced: transportAnnc (trantAnnc) { "type" : "mec:trantAnnc", "lname" : "transportAnnc", "cnd" : "org.etsi.mec.moduleclass.transportAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: description { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, // DataPoint: type { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: protocol { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, // DataPoint: implSpecificInfo { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" } ] }, // ModuleClass Instance: transportInst (trantInst) { "type" : "mec:trantInst", "lname" : "transportInst", "cnd" : "org.etsi.mec.moduleclass.transportInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: id { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, // DataPoint: name { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, // DataPoint: description { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, // DataPoint: type { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, // DataPoint: protocol { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, // DataPoint: version { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, // DataPoint: implSpecificInfo { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" } ] }, // ModuleClass: endpoint (endpt) { "type" : "mec:endpt", "lname" : "endpoint", "cnd" : "org.etsi.mec.moduleclass.endpoint", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: uris { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, // DataPoint: addresses { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, // DataPoint: alternative { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" } ], "children" : [ "mec:endptInst" ] }, // ModuleClass Announced: endpointAnnc (endptAnnc) { "type" : "mec:endptAnnc", "lname" : "endpointAnnc", "cnd" : "org.etsi.mec.moduleclass.endpointAnnc", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: uris { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, // DataPoint: addresses { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, // DataPoint: alternative { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" } ] }, // ModuleClass Instance: endpointInst (endptInst) { "type" : "mec:endptInst", "lname" : "endpointInst", "cnd" : "org.etsi.mec.moduleclass.endpointInst", "sdttype" : "moduleclass", "attributes": [ // DataPoint: dataGenerationTime { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, // DataPoint: uris { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, // DataPoint: addresses { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, // DataPoint: alternative { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" } ] }, // ModuleClass: MecServices (grouping container) { "type" : "mec:MecServices", "lname" : "MecServicesGroup", "cnd" : "org.etsi.mec.moduleclass.MecServicesGroup", "sdttype" : "moduleclass", "attributes": [], "children" : [ "mec:SerIo", "mec:SerIoAnnc", "mec:catey", "mec:cateyAnnc", "mec:trant", "mec:trantAnnc", "mec:endpt", "mec:endptAnnc" ] } ] No newline at end of file
go-apps/meep-iot-pltf/meep-acme-in-cse/requirements.txt +33 −30 Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/requirements.txt: 33 added lines, 30 removed lines. Original line number Diff line number Diff line # # This file is autogenerated by pip-compile with Python 3.11 # This file is autogenerated by pip-compile with Python 3.13 # by the following command: # # pip-compile Loading @@ -7,9 +7,9 @@ blinker==1.9.0 # via flask cachetools==6.1.0 # via acmecse-dev (setup.py) cbor2==5.6.5 # via acmecse-dev (setup.py) # via acmecse (setup.py) cbor2==5.9.0 # via acmecse (setup.py) certifi==2025.8.3 # via requests charset-normalizer==3.4.3 Loading @@ -17,25 +17,25 @@ charset-normalizer==3.4.3 click==8.2.1 # via flask coapthon3-acme-cse==1.1.4 # via acmecse-dev (setup.py) flask==3.1.1 # via acmecse (setup.py) flask==3.1.3 # via # acmecse-dev (setup.py) # acmecse (setup.py) # flask-cors flask-cors==6.0.1 # via acmecse-dev (setup.py) idna==3.10 # via acmecse (setup.py) idna==3.15 # via requests inquirerpy==0.3.4 # via acmecse-dev (setup.py) # via acmecse (setup.py) isodate==0.7.2 # via acmecse-dev (setup.py) # via acmecse (setup.py) itsdangerous==2.2.0 # via flask jinja2==3.1.6 # via flask kazoo==2.10.0 # via acmecse-dev (setup.py) # via acmecse (setup.py) linkify-it-py==2.0.3 # via markdown-it-py markdown-it-py[linkify,plugins]==4.0.0 Loading @@ -52,60 +52,63 @@ mdit-py-plugins==0.5.0 # via markdown-it-py mdurl==0.1.2 # via markdown-it-py numpy==2.3.2 # via shapely paho-mqtt==2.1.0 # via acmecse-dev (setup.py) # via acmecse (setup.py) pfzy==0.3.4 # via inquirerpy platformdirs==4.3.8 # via textual plotext==5.3.2 # via # acmecse-dev (setup.py) # acmecse (setup.py) # textual-plotext prompt-toolkit==3.0.51 # via inquirerpy psycopg2-binary==2.9.10 # via acmecse-dev (setup.py) pygments==2.19.2 # via acmecse (setup.py) pygments==2.20.0 # via # rich # textual pyparsing==3.2.3 # via rdflib pyperclip==1.9.0 # via acmecse-dev (setup.py) # via acmecse (setup.py) python-dotenv==1.2.2 # via acmecse (setup.py) rdflib==7.1.4 # via acmecse-dev (setup.py) requests==2.32.4 # via acmecse-dev (setup.py) # via acmecse (setup.py) requests==2.33.0 # via acmecse (setup.py) rich==14.1.0 # via # acmecse-dev (setup.py) # acmecse (setup.py) # textual shapely==2.1.1 # via acmecse-dev (setup.py) # via acmecse (setup.py) textual==5.2.0 # via # acmecse-dev (setup.py) # acmecse (setup.py) # textual-plotext textual-plotext==1.0.1 # via acmecse-dev (setup.py) # via acmecse (setup.py) tinydb==4.8.2 # via acmecse-dev (setup.py) # via acmecse (setup.py) typing-extensions==4.14.1 # via textual uc-micro-py==1.0.3 # via linkify-it-py urllib3==2.5.0 urllib3==2.7.0 # via requests waitress==3.0.2 # via acmecse-dev (setup.py) # via acmecse (setup.py) wcwidth==0.2.13 # via prompt-toolkit websockets==15.0.1 # via acmecse-dev (setup.py) werkzeug==3.1.3 # via acmecse (setup.py) werkzeug==3.1.6 # via # flask # flask-cors No newline at end of file
go-apps/meep-iot-pltf/meep-acme-mn-cse/Dockerfile +80 −43 File changed.Preview size limit exceeded, changes collapsed. Show changes