Skip to content

PretendoNetwork/BOSS

BOSS

Handles all BOSS (Background Online Storage Service) related tasks for the Pretendo network.

What does BOSS handle?

  • SpotPass on 3DS
  • Tasksheets and policy files for both WiiU and 3DS
  • Streetpass relay

Configuration

Configurations are loaded through environment variables. .env files are supported.

Environment variable Description Default
PN_BOSS_CONFIG_HTTP_PORT The HTTP port the server listens on None
PN_BOSS_CONFIG_LOG_FORMAT What logging format to use, possible options: pretty or json pretty
PN_BOSS_CONFIG_LOG_LEVEL What log level to use info
PN_BOSS_CONFIG_BOSS_WIIU_AES_KEY The BOSS WiiU AES key, needs to be dumped from a console None
PN_BOSS_CONFIG_BOSS_WIIU_HMAC_KEY The BOSS WiiU HMAC key, needs to be dumped from a console None
PN_BOSS_CONFIG_BOSS_3DS_AES_KEY The BOSS 3DS AES key, needs to be dumped from a console None
PN_BOSS_CONFIG_MONGO_CONNECTION_STRING MongoDB connection string None
PN_BOSS_CONFIG_GRPC_BOSS_SERVER_ADDRESS Address for the GRPC server to listen on None
PN_BOSS_CONFIG_GRPC_BOSS_SERVER_PORT Port for the GRPC server to listen on None
PN_BOSS_CONFIG_GRPC_BOSS_SERVER_API_KEY API key that services will use to connect to the BOSS GRPC server None
PN_BOSS_CONFIG_GRPC_ACCOUNT_SERVER_ADDRESS Address of the account GRPC server None
PN_BOSS_CONFIG_GRPC_ACCOUNT_SERVER_PORT Port of the account GRPC server None
PN_BOSS_CONFIG_GRPC_ACCOUNT_SERVER_API_KEY API key of the account GRPC server None
PN_BOSS_CONFIG_GRPC_FRIENDS_SERVER_ADDRESS Address of the friends GRPC server None
PN_BOSS_CONFIG_GRPC_FRIENDS_SERVER_PORT Port of the friends GRPC server None
PN_BOSS_CONFIG_GRPC_FRIENDS_SERVER_API_KEY API key of the friends GRPC server None
PN_BOSS_CONFIG_S3_ENDPOINT S3 server endpoint None
PN_BOSS_CONFIG_S3_REGION S3 server region None
PN_BOSS_CONFIG_S3_BUCKET S3 server bucket None
PN_BOSS_CONFIG_S3_ACCESS_KEY S3 access key None
PN_BOSS_CONFIG_S3_ACCESS_SECRET S3 access key secret None
PN_BOSS_CONFIG_CDN_DISK_PATH Storage path for the CDN, use as alternative for S3 None
PN_BOSS_CONFIG_STREETPASS_RELAY_ENABLED Should Streetpass Relay be enabled? false
PN_BOSS_CONFIG_STREETPASS_RELAY_CLEAN_OLD_DATA Should old Streetpass Relay data be automatically cleaned up? false
PN_BOSS_CONFIG_DOMAINS_NPDI What domain should the NPDI component use? npdi.cdn.pretendo.cc
PN_BOSS_CONFIG_DOMAINS_NPDL What domain should the NPDL component use? npdl.cdn.pretendo.cc
PN_BOSS_CONFIG_DOMAINS_NPFL What domain should the NPFL component use? npfl.c.app.pretendo.cc
PN_BOSS_CONFIG_DOMAINS_NPPL What domain should the NPPL component use? nppl.app.pretendo.cc,nppl.c.app.pretendo.cc
PN_BOSS_CONFIG_DOMAINS_NPTS What domain should the NPTS component use? npts.app.pretendo.cc
PN_BOSS_CONFIG_DOMAINS_SPR What domain should the SPR component use? service.spr.app.pretendo.cc

S3 server

The S3 server is optional, you can set PN_BOSS_CONFIG_CDN_DISK_PATH if you want to use a local folder as CDN source instead.

BOSS CLI

The CLI is a helper to interact with the content of the BOSS server.

npm run build
./boss --help

CLI configuration

Configurations are loaded through environment variables. .env files are supported.

Environment variable Description
PN_BOSS_CLI_GRPC_HOST The Host that the BOSS GRPC server is on. Example: localhost:5678 Required
PN_BOSS_CLI_GRPC_APIKEY Master API key of the BOSS GRPC server. Required
PN_BOSS_CLI_WIIU_AES_KEY The BOSS WiiU AES key, needs to be dumped from a console Optional
PN_BOSS_CLI_WIIU_HMAC_KEY The BOSS WiiU HMAC key, needs to be dumped from a console Optional
PN_BOSS_CLI_NPDI_URL The URL of the NPDI part the BOSS HTTP server, only needed when downloading Optional
PN_BOSS_CLI_NPDI_HOST The Host header for the NPDI requests. Use when you don't have NPDI exposed to the internet Optional

Common CLI operations

# Download taskfile and decrypt
./boss file ls <BOSS_APP_ID> <TASK_ID> # View list of files and their IDs
./boss file view --decrypt <BOSS_APP_ID> <TASK_ID> <DATA_ID> > output.txt # Download file and decrypt
# Update splatoon rotations
# Run the following for all of these BOSS app ids:
# - bb6tOEckvgZ50ciH
# - rjVlM7hUXPxmYQJh
# - zvGSM4kOrXpkKnpT
./boss file create <BOSS_APP_ID> schdat2 --name VSSetting.byaml --type AppData --notify-new app --file <FILE_PATH_FOR_VSSETTING>

About

Pretendo BOSS server implementation

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages