32 lines
961 B
TypeScript
Executable File
32 lines
961 B
TypeScript
Executable File
#!/bin/sh
|
|
//bin/true; exec deno run --unstable-kv -A "$0" "$@"
|
|
import {
|
|
AntiDuplicationPolicy,
|
|
HellthreadPolicy,
|
|
PipePolicy,
|
|
readStdin,
|
|
writeStdout,
|
|
} from 'jsr:@nostrify/policies';
|
|
import { strfry } from 'jsr:@nostrify/strfry';
|
|
import { LdapConfig, LdapPolicy } from './ldap-policy.ts';
|
|
import { load } from "https://deno.land/std@0.224.0/dotenv/mod.ts";
|
|
|
|
const dirname = new URL('.', import.meta.url).pathname;
|
|
await load({ envPath: `${dirname}/.env`, export: true });
|
|
|
|
const ldapConfig: LdapConfig = {
|
|
url: Deno.env.get("LDAP_URL"),
|
|
bindDN: Deno.env.get("LDAP_BIND_DN"),
|
|
password: Deno.env.get("LDAP_PASSWORD"),
|
|
searchDN: Deno.env.get("LDAP_SEARCH_DN"),
|
|
whitelistPubkeys: Deno.env.get("WHITELIST_PUBKEYS")?.split(',')
|
|
}
|
|
|
|
const policy = new PipePolicy([
|
|
new HellthreadPolicy({ limit: 10 }),
|
|
new AntiDuplicationPolicy({ kv: await Deno.openKv(), expireIn: 60000, minLength: 50 }),
|
|
new LdapPolicy(ldapConfig)
|
|
]);
|
|
|
|
await strfry(policy);
|