Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1f54552
feat: port original BOSS gRPC implementation into v1 folder
jonbarrow Oct 14, 2025
22f3016
fix: update cli create command to use bigint title ID
jonbarrow Oct 14, 2025
4186968
feat: begin gRPC 2.2.4 port. missing CTR
jonbarrow Oct 14, 2025
0078fbf
chore: bump @pretendonetwork/grpc
jonbarrow Oct 19, 2025
9be53c0
chore: bump @pretendonetwork/boss-crypto
jonbarrow Oct 19, 2025
436a8ed
chore: npm audit fix
jonbarrow Oct 19, 2025
4c07a01
feat: full upgrade to boss grpc v2
jonbarrow Oct 20, 2025
92f9c09
fix: npm run lint:fix
jonbarrow Oct 20, 2025
3bf0334
chore: update @pretendonetwork/boss-crypto and @pretendonetwork/grpc
jonbarrow Nov 1, 2025
3a55e46
fix(npfl): Query files from FileCTR
DaniElectra Nov 1, 2025
4d266e3
fix(database): Search for no countries or languages if not specified
DaniElectra Nov 1, 2025
43f03c8
feat(boss/v2): Expand list of known apps
DaniElectra Nov 2, 2025
257ef94
feat(npts): Implement attributes mode
DaniElectra Nov 2, 2025
9917326
fix(grpc/v2): Fix PIKMIN 3 name on EUR and JPN
DaniElectra Nov 2, 2025
e1bb1b2
chore: update @typegoose/auto-increment
jonbarrow Nov 3, 2025
7843355
chore: convert FileWUP model to use the same attribute structure as t…
jonbarrow Nov 3, 2025
6f8ae94
chore: remove BigInt casts in ListKnownBOSSApps gRPC methods
jonbarrow Nov 3, 2025
18b7179
chore: Update pretendonetwork/grpc to 2.3.4
DaniElectra Nov 9, 2025
767730e
fix(grpc/v1): Populate attributes on UploadFile
DaniElectra Nov 9, 2025
dd8ef4d
feat(cli): Update to gRPC v2
DaniElectra Nov 9, 2025
90f02ac
feat(cli): Implement 3DS support
DaniElectra Nov 9, 2025
f3f895e
chore: Update pretendonetwork/grpc to 2.3.5
DaniElectra Nov 9, 2025
35f23f7
feat: Store task interval
DaniElectra Nov 9, 2025
ce8f6a1
feat(npdl): Support edge cases for country and language-specific files
DaniElectra Nov 10, 2025
17bdbb2
chore: Update pretendonetwork/boss-crypto to 1.2.2
DaniElectra Nov 11, 2025
f3c57f9
feat(3ds): Add support for no payload contents
DaniElectra Nov 11, 2025
c17b68c
fix(cli): Allow download of files with no payload content
DaniElectra Nov 11, 2025
a950197
feat(grpc): allow the send/receive message sizes to be customized
jonbarrow Nov 23, 2025
b1f648a
fix(grpc): Mongoose FileCTR.create needs an array when using transact…
jonbarrow Dec 2, 2025
fa186e5
chore: update max send/receive grpc size config option names in the R…
jonbarrow Dec 2, 2025
3291696
Merge pull request #41 from PretendoNetwork/chore/grpc-2.2.4
jonbarrow Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 36 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,41 @@ Handles all BOSS (Background Online Storage Service) related tasks for the Prete

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` |

| 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_MAX_RECEIVE_MESSAGE_LENGTH_MB` | The maximum size, in megabytes, a message sent to the server can be | 4 |
| `PN_BOSS_CONFIG_GRPC_MAX_SEND_MESSAGE_LENGTH_MB` | The maximum size, in megabytes, a message sent to the client can be | 4 |
| `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.

Expand All @@ -61,7 +63,7 @@ npm run build
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 |
Expand Down
Loading