{"id":31654195,"url":"https://github.com/glueops/autoglue","last_synced_at":"2026-03-08T03:01:49.127Z","repository":{"id":307873127,"uuid":"1030955225","full_name":"GlueOps/autoglue","owner":"GlueOps","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-04T15:20:05.000Z","size":86507,"stargazers_count":0,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-04T21:55:25.497Z","etag":null,"topics":["allow-auto-merge"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GlueOps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2025-08-02T17:33:37.000Z","updated_at":"2026-03-04T15:08:11.000Z","dependencies_parsed_at":"2025-08-17T13:13:19.184Z","dependency_job_id":"11ca5c5f-8660-415c-9da0-bce852e9719b","html_url":"https://github.com/GlueOps/autoglue","commit_stats":null,"previous_names":["glueops/autoglue"],"tags_count":67,"template":false,"template_full_name":null,"purl":"pkg:github/GlueOps/autoglue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlueOps%2Fautoglue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlueOps%2Fautoglue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlueOps%2Fautoglue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlueOps%2Fautoglue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GlueOps","download_url":"https://codeload.github.com/GlueOps/autoglue/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlueOps%2Fautoglue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30243534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allow-auto-merge"],"created_at":"2025-10-07T11:44:43.003Z","updated_at":"2026-03-08T03:01:49.110Z","avatar_url":"https://github.com/GlueOps.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Autoglue\n\n## Setup Env\ncreate .env file:\n```bash\ncp .env.example .env\n```\n\n## Bring up Database:\n```bash\ndocker compose up -d\n```\n\n## Generate JWT tokens used for auth in the DB\nPrivate Key is encrypted by `JWT_PRIVATE_ENC_KEY`\nIf this is not set, the private key is stored in plain text in the DB - its never exposed at any rate\n\n```bash\ngo run . keys generate\n```\n\n## Generate master encryption key \nThe master encryption key is used to generate the org encryption keys - without it there will be failures\n```bash\ngo run . encrypt create-master\n```\n\n## Ensure your swagger and SDKs are up to date with the api spec\n```bash\nmake swagger\nmake sdk-all\n```\n\n## Build terraform provider\nCurrently, the terraform provider consumes the go sdk through an alias\nOnce the SDK is published to its own repo, the alias can be removed. but this is why its imperative to ensure the SDK is up to date\n\nThe command below builds the provider binary, and installs it where terraform expects it to be placed if it were downloaded from a registry\n```bash\ncd terraform-provider-autoglue\nmake dev\n```\n\n## See UI \u0026 terraform in action\nFrom the project root\n## UI \u0026 API - required for the terraform\nStart the API \u0026 UI (the env embeds it with a dev proxy)\n\nif you witness a failure here, run `make ui`\n\nThis is most likely the SPA handler trying to embed ui files that dont exist\n```bash\ngo run .\n```\n\nFrom your GLUEOPS profiled browser - http://localhost:8080\nLogin - this is restricted to glueops.dev at the minute (in google workspace settings - outside of the API)\n\nCreate your org (http://localhost:8080/me) - you should be redirected here after initial login\n\nOnce you have an org - create a set of api keys for your org:\nThey will be in the format of:\nExample values only; these are not real secrets.\n```text\nOrg Key: org_lnJwmyyWH7JC-JgZo5v3Kw\nOrg Secret: fqd9yebGMfK6h5HSgWn4sXrwr9xlFbvbIYtNylRElMQ\n```\n\nuse them in terraform/envs/dev/terraform.tfvars\n\nin my example here, i also create ssh keys in my example:\n```terraform\norg_key = \"org_lnJwmyyWH7JC-JgZo5v3Kw\"\norg_secret = \"fqd9yebGMfK6h5HSgWn4sXrwr9xlFbvbIYtNylRElMQ\"\n\nssh_keys = {\n  bastionKey = {\n    name            = \"Bastion Key\"\n    comment         = \"deploy@autoglue\"\n    type            = \"rsa\"\n    bits            = 4096\n    enable_download = true\n    download_part   = \"both\"\n    download_dir    = \"out/bastionKey\"\n  }\n  clusterKey = {\n    name    = \"Cluster Key\"\n    comment = \"bastion@autoglue\"\n    type    = \"ed25519\"           # bits ignored\n    enable_download = true\n    download_part   = \"both\"\n    download_dir    = \"out/clusterKey\"\n  }\n}\n\n```\n\nexplore `main.tf` for how the module ssh-keys module is used\nalso you will see there how to create servers using the servers module\n\nin `terraform/envs/dev`\n```bash\nrm -rf .terraform*\ntofu init -upgrade\n\ntofu plan\n\ntofu apply -auto-approve\n```\n\nIf everything went to plan, you'll have an `out` directory containting 2 zip file - one for each of the ssh keys\n\nIn the UI you will also see the SSH Keys on its page,\nyou will also see the servers created on its page.\n\n## \u003cspan style=\"color:red\"\u003eWARNING\u003c/span\u003e\n\u003cspan style=\"color:red\"\u003e!!!!Terraform destroy deletes the keys from the api as well as deletes the local files!!!!\u003c/span\u003e\n```bash\ntofu destroy -auto-approve\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglueops%2Fautoglue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglueops%2Fautoglue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglueops%2Fautoglue/lists"}