12factor | Official fork now at : https : //github.com/heroku/12factor

 by   adamwiggins Ruby Version: Current License: MIT

kandi X-RAY | 12factor Summary

kandi X-RAY | 12factor Summary

12factor is a Ruby library. 12factor has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Official fork now at: https://github.com/heroku/12factor
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              12factor has a low active ecosystem.
              It has 356 star(s) with 599 fork(s). There are 14 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 8 open issues and 5 have been closed. On average issues are closed in 173 days. There are 6 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of 12factor is current.

            kandi-Quality Quality

              12factor has 0 bugs and 0 code smells.

            kandi-Security Security

              12factor has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              12factor code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              12factor is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              12factor releases are not available. You will need to build from source code and install.
              12factor saves you 109 person hours of effort in developing the same functionality from scratch.
              It has 276 lines of code, 3 functions and 6 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of 12factor
            Get all kandi verified functions for this library.

            12factor Key Features

            No Key Features are available at this moment for 12factor.

            12factor Examples and Code Snippets

            No Code Snippets are available at this moment for 12factor.

            Community Discussions

            QUESTION

            Admin Process for 12-factor in Java
            Asked 2021-Aug-14 at 05:21

            The 12-Factor blog suggests an App should 'Run admin/management tasks as one-off processes'.

            What does that mean in the context of a Java/ Spring-boot application? Can I get an example.

            https://12factor.net/admin-processes

            ...

            ANSWER

            Answered 2021-Aug-14 at 05:21

            The site does not suggest this. It says that developers may want to do this, and that if they do so, they should apply the same standards as other code:

            One-off admin processes should be run in an identical environment as the regular long-running processes of the app. They run against a release, using the same codebase and config as any process run against that release. Admin code must ship with application code to avoid synchronization issues.

            As an example from my application: Users may send invitations, to which the recipient must respond within 7 days or the invitation expires. This is implemented by having a timestamp on the invitation and executing a database query equivalent to DELETE FROM Invitations WHERE expiration < NOW().

            Now, we could have someone log in to the database and execute this query periodically. Instead, however, this "cleanup" operation is built into the application at a URL like /internal/admin/cleanInvitations, and that endpoint is executed by an external cron job. The scheduling is outside the main application, but all database configuration, connectivity, and logic are contained within it alongside our main business logic.

            Source https://stackoverflow.com/questions/68780484

            QUESTION

            How to define environment variable in a same folder for multiple projects in a WebStorm?
            Asked 2021-Mar-23 at 14:01

            I have a few projects which run simultaneously by using WebStorm's compound feature, see screenshot below:

            All these projects need the same environment variables which I'd like to define in a file .env. And I need multiple environments which I will switch between them constantly, let say .test1.env, .test2.env, .test3.env, etc... (I know that I shouldn't do this, but I have no choice right now)

            How can I define my project in a way that on startup it will take .env file, which name will be defined in a single place and define environment variables from it for all the projects?

            Thank you.

            ...

            ANSWER

            Answered 2021-Mar-23 at 12:25

            There is currently no way to do this, please follow IDEA-137820 and linked tickets for updates

            Source https://stackoverflow.com/questions/66751816

            QUESTION

            Why Google Cloud Storage isn't taking my GOOGLE_APPLICATION_CREDENTIALS environment variable [HEROKU]?
            Asked 2020-Sep-16 at 19:49

            I'm developing a POC website with Spring Boot to learn about GCP products, in specific Google Cloud Storage. The context is I am trying to save a profile picture when a user is registered.

            From Google documentation, I can use

            ...

            ANSWER

            Answered 2020-Sep-16 at 19:49

            In order to pass credentials you can do it via environment variables, that in fact is the one you are mentioning. To do it in Linux you should use the below command

            Source https://stackoverflow.com/questions/63925550

            QUESTION

            How to apply 12 Factor App to Linux driver developing?
            Asked 2020-Aug-24 at 06:47

            I'm an engineer currently developing Linux kernel-mode drivers and user-mode drivers. When I came across the theory of 12 Factor App, there is a strong voice echoing around my brain "THIS IS THE FUTURE OF DEVELOPING!".

            And I kept wondering how to apply this method to Linux KMD and UMD design and developing since this theory is much too web-app based (I'm a part-time open-source web developer).

            Current Developing language: C

            Current Testing automation: Custom Implemented Python testing framework (Progress based, NO unit test)

            Please give me some suggestions on this. Thanks and appreciated in advance.

            ...

            ANSWER

            Answered 2020-Aug-24 at 06:47

            As with most development guidelines, there is a gap between the guideline and the enforcement.

            For example, in your "12 factor app" methodology, one of the factors is:

            1. Codebase - One codebase tracked in revision control, many deploys

            Which sounds great, and would really simplify things. Until you get to the point of utility libraries. You see, when you find you are reusing code across multiple projects, you probably want:

            • Independent build and release chains for the multiple projects.

            This could mean two codebases, but the above states one codebase (perhaps one per project, perhaps one per company. Let's assume one per company first, which is easy to see as non-ideal; because, you would have commits unrelated to a project in the project's commit history. Ok, one per project, more sensible; but, what if projects need to share code? Like the libraries that format their communications and control the send / receive protocols? Well, we could create a third "protocol library" so that we have revisioning around the protocol; but, that violates the "one codebase (per project)" because now you have two codebases comprising the single releasable item.

            The decisions here are not simple. The other approach is to copy the protocol code into both projects and keep them in sync by some other means.

            1. Dependencies - Explicitly declare and isolate dependencies

            It's a great idea; and, one that makes development easier in many ways. Again, just to illustrate how a great idea can suffer without clear guidelines on how to implement the idea, what do you do when you are using a library that doesn't attempt to isolate the dependencies the library uses? Many of the more complex libraries themselves depend on other libraries, and generally they clearly declare their dependencies, as do the libraries used by the libraries; however, sometimes the base, core libraries used by multiple projects (logging, configuration, etc) wind up being used at different release versions. The isolation occurred on a per-library basis, but not on a per-project basis. You could fix it, provided you wanted (or could) fork and clone the libraries, restructuring them to properly isolate their dependencies for overall coordination of version numbers; but, generally you will lack the time to work on other people's projects.

            In general, the advice under "12 factor app" methodology is good; but, it leaves you up to performing the work of translating the guidelines into development protocols. Enforcement then becomes a matter of interpertation, and the means of enforcement (as well as the interpertation) fall on you to implement.

            And some of the guidelines look dangerously over-simlpified:

            1. Concurrency - Scale out via the process model

            While this is an easier way to go, it's not how any single high performance web server works. They all use threading, thread pools, and other more complex constructs to avoid process switching. These constructs (which are admittedly harder to use) were created specifically due to the limitations of a traditional process model. After all, it's not common to launch a process per web request, nor would you generally "tune a program for better performance" by starting a second copy on the same machine. Certainly, there are architectures where this could work; but, so far these architectures haven't outperformed their competition.

            Between machines, I wholeheartedly agree. Process scalaing is the only way to go in a distrubuted environment; but, there's not much in this methodology that talks about distributed algorithms, or even distributed computing approaches; so, again it's another thing left up to the implementor.

            Finally, their process commentary seems really out-of-place for writing a command line tool. The push to daemonize things works really well for microservices; however, you can't microservice away even the clients. Eventually you'll have to write something that isn't "managed by systemd", due to starting execution and ending execution without having an always-on service.

            So, it's a good framework, which might not work for some things, even if it is excellent for many things; but, in my opinion, the tooling to enforce it would have to be built by the organization using it because the interpretations one organization might make could differ from another organization.

            Source https://stackoverflow.com/questions/63555620

            QUESTION

            Django: How to ignore tasks with Celery?
            Asked 2020-Feb-22 at 17:00

            Without changing the code itself, Is there a way to ignore tasks in Celery?

            For example, when using Django mails, there is a Dummy Backend setting. This is perfect since it allows me, from a .env file to deactivate mail sending in some environments (like testing, or staging). The code itself that handles mail sending is not changed with if statements or decorators.

            For celery tasks, I know I could do it in code using mocks or decorators, but I'd like to do it in a clean way that is 12factors compliant, like with Django mails. Any idea?

            EDIT to explain why I want to do this:

            One of the main motivation behind this, is that it creates coupling between Django web server and Celery tasks. For example, when running unit tests, if the broker server (Redis for me) is not running, then if delay() method is called, it freezes forever, because there is no timeout when Celery tries to send a task to Redis. From an architecture view, this is very bad. I'd like my unit tests can run properly without the requirement to run a Celery broker!

            Thanks!

            ...

            ANSWER

            Answered 2020-Feb-22 at 17:00

            As far as the coupling is concerned, your Django application would still be tied to celery if you use a dummy backend. Just your tasks won't execute. Maybe this is acceptable in your case but in my opinion, it can cause some problems. For example, if the piece of code you are trying to test, submits a task to celery, and in a later part, tries to retrieve the result for that task, it will fail. Because dummy backend will never execute the task.

            For unit testing, as you mentioned in your question, you can use task_always_eager setting. If you turn it on, your Django app will no longer depend upon a running worker. It will execute tasks in the same thread in a synchronous fashion and return the result.

            Source https://stackoverflow.com/questions/60353595

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install 12factor

            You can download it from GitHub.
            On a UNIX-like operating system, using your system’s package manager is easiest. However, the packaged Ruby version may not be the newest one. There is also an installer for Windows. Managers help you to switch between multiple Ruby versions on your system. Installers can be used to install a specific or multiple Ruby versions. Please refer ruby-lang.org for more information.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/adamwiggins/12factor.git

          • CLI

            gh repo clone adamwiggins/12factor

          • sshUrl

            git@github.com:adamwiggins/12factor.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Ruby Libraries

            rails

            by rails

            jekyll

            by jekyll

            discourse

            by discourse

            fastlane

            by fastlane

            huginn

            by huginn

            Try Top Libraries by adamwiggins

            clockwork

            by adamwigginsRuby

            rush

            by adamwigginsRuby

            scanty

            by adamwigginsRuby

            pony

            by adamwigginsRuby

            yaml_db

            by adamwigginsRuby