Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Energy App Middle Integration

v1.0.0

Use when integrating with the energy-app-middle BFF service - covers REST API endpoints, gRPC client setup, authentication headers, multi-tenancy, and downst...

0· 85·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for effort02/energy-app-middle-integration.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Energy App Middle Integration" (effort02/energy-app-middle-integration) from ClawHub.
Skill page: https://clawhub.ai/effort02/energy-app-middle-integration
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install energy-app-middle-integration

ClawHub CLI

Package manager switcher

npx clawhub@latest install energy-app-middle-integration
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The name/description and the SKILL.md align: this is an integration guide for the energy-app-middle BFF and enumerates REST/gRPC endpoints, headers, DTOs and downstream services. However the manifest declares no required env vars or credentials while the documentation explicitly references many sensitive environment variables (K8S_POD_NS, DB/TDEngine/RisingWave hosts, Pulsar URL, PowerJob server, and JWT/X-ACCESS-TOKEN usage). The absence of declared requirements is an incoherence: either this is purely read-only documentation (fine) or it expects runtime access to infrastructure (not declared).
Instruction Scope
The SKILL.md is instruction-only and stays on-topic: it documents endpoints, headers to include, DTOs, and common mistakes. It does not instruct the agent to read local files, alter other skills, or send data to unexpected external endpoints. However it assumes the agent will have network access to internal cluster DNS names and that callers will present JWTs and tenant headers — i.e., it assumes access to sensitive runtime context (tokens, internal network).
Install Mechanism
There is no install spec and no code files; this is instruction-only. That minimizes install-time risk (nothing downloaded or written).
!
Credentials
The document references many environment variables, database and message-broker endpoints, and an authentication token header, yet the registry metadata declares no required env vars or primary credential. This is disproportionate / inconsistent: if the skill expects to be used against real services it should declare which credentials and env vars it needs. If it is only documentation, the references are informational — but an agent invoking this skill autonomously could be prompted to use/require secrets not declared here.
Persistence & Privilege
The skill is not force-installed (always:false), has no install steps, and does not request persistent system modifications. Autonomous invocation is allowed by default but is not combined with other privilege escalation indicators in the manifest.
What to consider before installing
This is mainly a documentation-only integration guide for an internal BFF — useful if you or your agent are operating inside the same cluster/network. Before installing: 1) Confirm the skill's source and maintainer (there's no homepage). 2) Ask the author to declare which environment variables/credentials (if any) are required — right now the SKILL.md references many sensitive endpoints but the manifest declares none. 3) Do not supply JWTs, DB credentials, or internal network access to the agent unless you trust the skill and run it in the appropriate internal environment. 4) If you expect the skill to be used only as read-only documentation, prefer to keep it as a manual reference rather than enabling autonomous invocation. 5) If you need to install it into a production-capable agent, require the author to provide provenance (repo/homepage), and to update the manifest to explicitly list required env vars and the exact scope of network access.

Like a lobster shell, security has layers — review code before you run it.

latestvk9785p2q7ne5rzcg0x1dgzcx2185527r
85downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

energy-app-middle Integration Guide

Overview

energy-app-middle is a BFF + API aggregation layer for the distributed energy management platform. It exposes REST APIs to three client types (Owner / Provider / Platform) and orchestrates calls to IoT Core, IoT PaaS, IAM, algorithm services, and time-series databases.

Quick Reference

Client TypeBase PathAudience
Owner API/api/owner/*Energy asset owners
Provider API/api/provider/*Service providers
Platform API/platform-api/*Platform admins
gRPC Serverport 9090Internal services
Managementport 38081Actuator / metrics

1. Key REST Endpoints

Owner API (/api/owner/)

MethodPathDescription
GET/api/owner/der/control_record/{resourceId}DER control records (paginated)
GET/POST/api/owner/der/control_automation/{resourceId}DER automation settings
POST/api/owner/der/control_automation/{resourceId}/switchToggle automation on/off
POST/api/owner/der/control_automation/{resourceId}/deviceDevice automation properties
GET/POST/api/owner/project/price/{projectId}Electricity pricing
GET/api/owner/project/statistics/*Project electricity statistics
GET/api/owner/project/trend/*Project trend charts
GET/POST/api/owner/der/plan_prompt/*DER plan prompts

Provider API (/api/provider/)

MethodPathDescription
GET/api/provider/der/{resourceId}/billing_typeBilling type (TOU/Market)
GET/POST/api/provider/der/{resourceId}/market_price_configMarket price configs

Platform API (/platform-api/)

MethodPathDescription
GET/platform-api/market/config?marketCode={code}Market metric configurations
POST/platform-api/dataQuery market metric data

2. Authentication & Headers

Token validation is delegated to IAM via gRPC. All requests must carry:

HeaderDescription
X-ACCESS-TOKENJWT token (validated by IAM)
X-AppApp code
X-TenantTenant code
X-UIDUser UID (set by gateway)
X-PUIDParent UID (for sub-accounts)

All data is tenant-scoped — tenantCode is extracted from request context and applied to every query.

3. gRPC Integration (Internal Services)

Dependency

<dependency>
    <groupId>com.feilun</groupId>
    <artifactId>energy-app-middle-grpc-interface</artifactId>
</dependency>

Client Configuration

grpc:
  client:
    energy-app-middle:
      address: dns:///energy-app-middle.${K8S_POD_NS}.svc.cluster.local:9090
      negotiationType: PLAINTEXT
      enableKeepAlive: true

4. Downstream Dependencies

ServiceProtocolPurpose
iamgRPCToken validation, authorization
iot-coregRPCDevice management & queries
iot-paasgRPCDevice grouping, batch tasks
basicgRPCInfrastructure services
algorithm-der-power-forecastHTTPPV power forecasting
algorithm-dispatchHTTPDR dispatch planning
algorithm-bess-optHTTPBattery storage optimization
algorithm-bidHTTPVPP spot bidding
MySQLJDBCTransactional data
TDEngineJDBCTime-series device metrics
RisingWaveJDBCReal-time metric aggregation
Apache PulsarMessagingDevice events, market data
PowerJobHTTPDistributed job scheduling

5. Key DTOs

DerAutomationSettingsReq:
  dailyMaxImport/Export, dailyMinimalImport/Export (Double)
  maximumExportPower/ImportPower (Double)
  opportunityImportPrice/ExportPrice (Double)

DerControlRecordRes:
  resourceId, controlCode, status
  startTime, endTime, controlDate
  controlCurve (JSON array of power points)

MarketMetricDataReq:
  marketCode (AEMO_REGIONS: NSW1/QLD1/VIC1/SA1/TAS1)
  metrics (List<String>), targetId, startTime, endTime

6. Environment Variables

VariablePurpose
K8S_POD_NSKubernetes namespace (used in gRPC addresses)
BIZ_NAMEBusiness code (energy-app-middle)
SPRING_PROFILES_ACTIVEProfile (localdev / prod)
k8s.all.mysql.host/portMySQL connection
k8s.eam.mysql.databaseMySQL database name
k8s.all.tdengine.hostTDEngine host
k8s.all.risingwave.host/portRisingWave connection
k8s.all.pulsar.service-urlPulsar broker URL
k8s.all.powerjob.worker.server-addressPowerJob server

7. Common Mistakes

MistakeFix
Missing X-Tenant headerRequired for all requests — tenant isolation is enforced
Calling gRPC without X-UID/X-PUIDIoT PaaS interceptor requires both headers
Querying metrics without time rangeTDEngine/RisingWave queries require startTime + endTime
Wrong marketCodeAEMO regions: NSW1, QLD1, VIC1, SA1, TAS1 only

Comments

Loading comments...