Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

268 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Scalable Internet Services Utility Script

scalable_admin

Provides the functionality necessary to administrate github and AWS for the purposes of Scalable Internet Services classes.

Set up

Resolve python dependencies via:

# cd to the directory containing setup.py and run
pip install -e .

Configure AWS credentials by creating/editing the file ~/.aws/credentials so that it contains an admin section:

[scalableinternetservices-admin]
aws_access_key_id = ADMIN_USER_ACCESS_KEY
aws_secret_access_key = ADMIN_USER_SECRET_ACCESS_KEY

These credentials should correspond to a user that has full permission to the AWS API for the AWS account.

You will automatically be prompted for your github credentials the first time you issue a gh command. An access token will be saved to ~/.config/github_creds. The github account you use should have admin rights to the github organization.

Create/update $(HOME)/.config/scalable_admin.json

The file has the following keys that need to be set:

  • aws_account_alias: Set this value to the IAM alias configured for your AWS account.

  • aws_account_id: Set this value to your AWS account's numerical account ID.

  • aws_iam_group_name: Set this value to the IAM group name you'd like to associate with all your class accounts.

  • aws_region: Set this value to the AWS region that you'd like to grant access to.

  • github_archive_organization: Set this value to reflect the github organization that you'd like to archive projects to.

  • github_organization: Set this value to reflect your github organization.

Below is an example of the contents of the json file:

{
"aws_account_alias": "cs291a",
"aws_account_id": "123456789012",
"aws_iam_group_name": "scalableinternetservices",
"aws_region": "us-west-2",
"github_archive_organization": "scalableinternetservicesarchive",
"github_organization": "scalableinternetservices"
}

Commands

scalable_admin aws TEAM...

Use this command to configure the AWS permissions for one ore more teams. On first run for a team this command will create the account, outputting the newly created credentials, and create the team's keypair file: TEAM.pem.

Subsequent runs can be used to make updates to a team's permissions. This is only necessary if the permission settings have been modified in this package.

scalable_admin aws-purge TEAM...

Use this command to completely remove one or more teams' permissions. This command may fail if the AWS user for the team was manually modified through the IAM web interface.

scalable_admin aws-update-all

Use this command to update the permissions for all teams. The list of teams is dynamically determined from IAM users who belong to the group indicated by the config option aws_iam_group_name.

scalable_admin github TEAM USER...

Use this command to create a git repository, if it does not already exist, and add invite list of github USERs to the repository if they have not already been invited. Multiple users can be specified, and should be separated by spaces. Each USER should be the student's github account name.

Subsequent exections of the command is additive, thus it will not remove associated/invited accounts that are not specified on the command line.

About

Scripts to help manage github and AWS accounts for the various teams.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages