BLE-only locators can't hold the MQTT/TLS connection themselves — a phone relays their data — so handing the phone a device's permanent client-cert key would export its identity to every phone it pairs with. Instead the device signs a server-issued nonce with its permanent key over BLE; once verified, the backend mints a short-lived session certificate for the phone's actual MQTT connection, keeping the permanent key on-device always. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { AppController } from './app.controller';
|
|
import { AppService } from './app.service';
|
|
import { StatusController } from './status.controller';
|
|
import { PrismaModule } from './prisma/prisma.module';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import { OrgsModule } from './orgs/orgs.module';
|
|
import { JobsModule } from './jobs/jobs.module';
|
|
import { PointsModule } from './points/points.module';
|
|
import { DevicesModule } from './devices/devices.module';
|
|
import { IngestModule } from './ingest/ingest.module';
|
|
import { RealtimeModule } from './realtime/realtime.module';
|
|
import { ApiKeysModule } from './api-keys/api-keys.module';
|
|
import { SimModule } from './sim/sim.module';
|
|
import { DeviceStatusModule } from './device-status/device-status.module';
|
|
import { CertificatesModule } from './certificates/certificates.module';
|
|
import { DeviceMqttAuthModule } from './device-mqtt-auth/device-mqtt-auth.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
PrismaModule,
|
|
AuthModule,
|
|
OrgsModule,
|
|
JobsModule,
|
|
PointsModule,
|
|
DevicesModule,
|
|
IngestModule,
|
|
RealtimeModule,
|
|
ApiKeysModule,
|
|
SimModule,
|
|
DeviceStatusModule,
|
|
CertificatesModule,
|
|
DeviceMqttAuthModule,
|
|
],
|
|
controllers: [AppController, StatusController],
|
|
providers: [AppService],
|
|
})
|
|
export class AppModule {}
|