.
โโโ Dockerfile #software version, hardcoded credentials
โโโ Gemfile #software versions
โโโ Gemfile.lock #software versions
โโโ app
โย ย โโโ assets # images, video etc
โย ย โโโ controllers #all application logic located here
โย ย โย ย โโโ admin_controller.rb
โย ย โย ย โโโ users_controller.rb
โย ย โโโ helpers #helper - method that is (mostly) used to share reusable code
โย ย โย ย โโโ admin_helper.rb
โย ย โโโ mailers #allows send emails from your application using mailer classes
โย ย โย ย โโโ user_mailer.rb
โย ย โโโ models #Ruby class that is used to represent data
โย ย โย ย โโโ user.rb
โย ย โโโ views # HTML templates
โย ย โโโ admin
โย ย โย ย โโโ get_all_users.html.erb
โโโ config #app configuration, should be reviewed because developers can disable security features
โย ย โโโ application.rb #application configuration
โย ย โโโ boot.rb
โย ย โโโ database.yml #database config, may contain hard-coded creds
โย ย โโโ environment.rb
โย ย โโโ environments
โย ย โย ย โโโ development.rb #application configuration
โย ย โโโ initializers
โย ย โย ย โโโ constants.rb #hardcoded credentials
โย ย โย ย โโโ filter_parameter_logging.rb #logging
โย ย โย ย โโโ html_entities.rb #Enables or disables the escaping of HTML entities in JSON serialization
โย ย โย ย โโโ key.rb #hardcoded credentials
โย ย โย ย โโโ secret_token.rb #cookie signing
โย ย โย ย โโโ session_store.rb #how session store is organized
โย ย โโโ locales
โย ย โย ย โโโ en.yml #hardcoded credentials
โย ย โโโ routes.rb #First thing to investigate, application routing
โย ย โโโ secrets.yml #Is credentials/secrets encrypted?
โย ย โโโ secrets2.yml #Is credentials/secrets encrypted?
โโโ db
โย ย โโโ schema.rb #database schema
โย ย โโโ seeds.rb #database data, may contain hard-coded creds
โโโ lib #extended modules
โย ย โโโ encryption.rb #encryption
โโโ log #log files
โโโ public #static files and compiled assets
โย ย โโโ 404.html
โย ย โโโ robots.txt
โโโ script
โโโ spec #for testing purposes
โโโ vendor #third-party code
Points d'interet
/config/database.ymlย -ย ย Peut contenir des identifiants de production
/config/initializers/secret_token.rbย -ย Contient les secrets utilisรฉs pour hash les cookies
/db/seeds.rbย -ย Peut contenir des donnรฉes de dรฉpart, y compris l'utilisateur administrateur bootstrap.
/db/development.sqlite3ย -ย ย Peut contenir des donnรฉes sensibles
Routing
Permet de mapper des routes avec ses gestionnaires pour comprendre la structure API de l'application. Le routeur dรฉtermine quel type de contrรดleur et d'action doit rรฉellement exรฉcuter le code. Le routage des applications est dรฉcrit dans le fichier /config/routes.rb.
Un modรจle est une classe Ruby utilisรฉe pour reprรฉsenter des donnรฉes. De plus, les modรจles peuvent interagir avec la base de donnรฉes de l'application via une fonctionnalitรฉ de Rails appelรฉe Active Record.