brew install openfortivpn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com.exzeo.spock; | |
| import junit.framework.TestCase; | |
| import org.apache.commons.io.FileUtils; | |
| import org.apache.lucene.analysis.core.SimpleAnalyzer; | |
| import org.apache.lucene.document.*; | |
| import org.apache.lucene.index.*; | |
| import org.apache.lucene.search.*; | |
| import org.apache.lucene.search.grouping.GroupDocs; | |
| import org.apache.lucene.search.grouping.GroupingSearch; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| modelInfo.name = "TestMs" | |
| userTasks.getAddress { | |
| expectInputs { | |
| address { | |
| type = "string" | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| variableTasks.uiSettings.result = { | |
| settings: [ | |
| { | |
| name: "askAddress", | |
| icon: "", | |
| label: "Ask Address", | |
| order: 1 | |
| }, | |
| { | |
| name: "chooseAddress", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width"> | |
| <title>JS Bin</title> | |
| </head> | |
| <body> | |
| <div id='container'></div> | |
| <script id="jsbin-javascript"> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta name="description" content="dadasd"> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width"> | |
| <title>JS Bin</title> | |
| </head> | |
| <body> |
Think of it like your phone bill — you don't get charged for extra minutes the second you go over. The overage charge shows up on your next bill.
- During the month: Every time a carrier uploads PDFs, we keep a running count in our own database. If they go over their plan limit, we let them keep uploading (up to a max), but we're just keeping score internally.
- At the end of the billing cycle: When Stripe goes to generate their next invoice, it pings us saying "hey, I'm finalizing this invoice." That's when we look at how many PDFs they used, subtract their plan limit, and tell Stripe "this carrier went over by X files — add that to the bill."
The overage line item only appears on the invoice at the end of the billing period, not in real time.
Every PDF uploaded to the platform counts toward the carrier's quota. The system charges at upload time, then may refund after processing if the file didn't consume expensive resources. This document covers when quota is charged, when it is refunded, and how to verify each scenario.
No. All four have defaults baked into cmd/server/main.go. Safe to skip for the launch.
ASYNC_WORKERS=2- goroutines per pod pulling jobs off the queueASYNC_STANDARD_CAP=4- max in-flight PDFs a non-VIP carrier can have at onceASYNC_VIP_CAP=12- same, but for VIP carriersBATCH_WORKERS=8- workers for the sync batch endpoint (legacy, not used by the UI)