Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 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

Repository files navigation

#Agi (Medidata Application Deployment Console)

Agi is hosted on GitHUb

"Agi provides a Web UI to Medidata's Opscode Chef-based deployment system and AWS-based infrastructure."

Agi provides a role-based, authenticated user interface for deploying Medidata project code and for configuring IaaS/PaaS infrastructures for that code to run on. Agi is intended as a front end for specific REST-based services which isolate external PaaS/SaaS REST-based API calls and maintain access control and auditing records.

##Owners J.B. Zimmerman (jzimmerman@mdsol.com) Rodrigo Estebanez-Larzo (restebanez@mdsol.com) Johnlouis Petitbon (jpetitbon@mdsol.com) DevOps Team (devops@mdsol.com)

##SLT

##Description Agi is a replacement for the Medistrano console which will slowly assume responsibilities for the various Medistrano functions. It is a front-end, and does not interact with infrastructures or infrastructure providers directly; rather, it maintains application configuration data and uses intermediate services to ensure that each application is properly configured on the various IaaS/PaaS services which support it.

All users of Agi must have valid iMedidata accounts to log on, and all users will have roles assigned within Agi which determine their access privileges.

Agi does not maintain live state information. As a result, Agi is not required for configured infrastructures and applications to continue functioning; only to make changes to them or create new ones. Agi is not a point of failure for running applications.

Agi is a Ruby on Rails application. It can be run on any Rails-compliant machine, and its only basic requirement is a connection to the Internet so as to be able to reach the API endpoint for Opscode's hosted Chef service. All other functions are carried out using intermediate services which can be used as proxies for internet access to their respective endpoints.

##Code

##App Support

##Keywords console application medistrano infrastructure devops

##AGIAPP configuration

Agi consumes Agifog for every AWS call is made except for S3. In order to make Agi works we first have to configure Agifog.

Requirements:

  1. Fetch the code and bundle up:

    git clone git@github.com:restebanez/agi.git agiapp cd agiapp # press y to accept the .rvmrc file bundle

  2. Add AWS credentails for S3:

    cp config/amazon_s3.yml-example config/amazon_s3.yml

now you have to edit config/amazon_s3.yml replacing the X with valid set of aws credentials, you can leave the X in the test section:

development:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
test:
access_key_id: XXXXXXXXXXXXXXXXXXXX
secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bucket_name: columbo-portal-test/application-iqs
medistrano_pir_bucket_name: columbo-portal-current
  1. create the database:

    bundle exec rake db:create

  2. create the tables:

    bundle exec rake db:migrate

  3. run the service:

    rails s

  4. test it opening a browser to http://localhost:3000, it will redirect you to the sing-up page, just create an account

  5. Verifies that it can talk to Agifog

Go to http://localhost:3000/admin/rds/servers

by default it will look for agifog in localhost:3001, in case you want to edit it, the cofiguration lives on config/agifog.yml

development:
hostname: localhost
port: 3001
dynectzone: imedidata.net
test:
hostname: localhost
port: 3001
dynectzone: imedidata.net%

the S3 credentials and pdftk will be tested when an app is deployed

Current errors

New relic development is not configured. You'll see the error:

cannot find or read /Users/xxxxxx/my_git_repos/agiapp/config/newrelic.yml

*) Factory Girl deprecation warnings. factory_girl gem was update but the syntax of the factories wasn't. You'll see the error:

DEPRECATION WARNING: Factory.define is deprecated; use the FactoryGirl.define block syntax to declare your factory.

*) Sign-up is disable. In order to enable it you have to edit:

app/models/user.rb

*) And add the word :registerable, it will look like this:

...
devise :database_authenticatable, :registerable
:recoverable, :rememberable, :trackable, :validatable
has_many :deployments
...

*) There is no spec rake task. Rspec tests have to be run like:

bundle exec rspec

About

Cloud Infrastructure mgmt console

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages